tx · 8YrzQ8Hshy32j7ypsapZXeTngsPWodcXRB9NEy5v3HdX

3NCpyPuNzUaB7LFS4KBzwzWVnXmjur582oy:  -1.40000000 Waves

2020.10.10 17:54 [1214615] smart asset 3NCpyPuNzUaB7LFS4KBzwzWVnXmjur582oy > SELF 0.00000000 D-BTC

{ "type": 15, "id": "8YrzQ8Hshy32j7ypsapZXeTngsPWodcXRB9NEy5v3HdX", "fee": 140000000, "feeAssetId": null, "timestamp": 1602341670618, "version": 2, "chainId": 84, "sender": "3NCpyPuNzUaB7LFS4KBzwzWVnXmjur582oy", "senderPublicKey": "57EFni8M1XesEurFh3c4jnpLExP2PCPd5TRrwMjePAT4", "proofs": [ "5ivdYM5pJBuhTCsKZdMagFpMAUnxyjrV2nHfgErq7YoePSK5aYEvD2HyCucYW4FpnUYnHVX2f6kXEAJtZZ8LEke2" ], "assetId": "FjTB2DdymTfpYbCCdcFwoRbHQnEhQD11CUm6nAF7P1UD", "script": "base64:AgQAAAAFYWRtaW4JAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVT7U3zgWylABs9zUfyaAS1l4Zzgbt82QMAEAAAAB2dhdGV3YXkJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVT7U3zgWylABs9zUfyaAS1l4Zzgbt82QMAEAAAABmJhbm5lZAAAAAAAAAABkwQAAAAHS1lDVmVyMQAAAAAAAAAAAQQAAAAHS1lDVmVyMgAAAAAAAAAAAgQAAAAKaXNNZXJjaGFudAAAAAAAAAAABQQAAAAKS1lDUGVuZGluZwAAAAAAAAAAAAQAAAAJbWF4QW1vdW50AAAAAAAF9eEABAAAAAckbWF0Y2gwBQAAAAJ0eAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAATVHJhbnNmZXJUcmFuc2FjdGlvbgQAAAABdAUAAAAHJG1hdGNoMAQAAAAEZGF0YQkABBoAAAACBQAAAAVhZG1pbgkAAlgAAAABCAgFAAAAAXQAAAAGc2VuZGVyAAAABWJ5dGVzBAAAAAZhbW91bnQIBQAAAAF0AAAABmFtb3VudAQAAAAHYXNzZXRJZAkBAAAAB2V4dHJhY3QAAAABCAUAAAABdAAAAAdhc3NldElkBAAAAAZpc1VzZXIJAAQaAAAAAgUAAAAFYWRtaW4JAAJYAAAAAQgJAAQkAAAAAQgFAAAAAXQAAAAJcmVjaXBpZW50AAAABWJ5dGVzAwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQUAAAAEZGF0YQkAAAIAAAABAgAAAEVZb3UgYXJlIG5vdCBhIHJlZ2lzdGVyZWQgbWVtYmVyLiBZb3UgY2Fubm90IHRyYW5zZmVyIHRoaXMgU21hcnRBc3NldCEDCQAAAAAAAAIFAAAABGRhdGEFAAAACktZQ1BlbmRpbmcJAAACAAAAAQIAAAAwS1lDIFBlbmRpbmcuIFlvdSBjYW5ub3QgdHJhbnNmZXIgdGhpcyBTbWFydEFzc2V0AwkAAAAAAAACBQAAAARkYXRhBQAAAAdLWUNWZXIxAwkAAAAAAAACCAUAAAABdAAAAAlyZWNpcGllbnQFAAAAB2dhdGV3YXkGAwMDCQAAAAAAAAIFAAAABmlzVXNlcgUAAAAHS1lDVmVyMQYJAAAAAAAAAgUAAAAGaXNVc2VyBQAAAAdLWUNWZXIyBgkAAAAAAAACBQAAAAZpc1VzZXIFAAAACmlzTWVyY2hhbnQDCQAAZwAAAAIFAAAACW1heEFtb3VudAUAAAAGYW1vdW50BgkAAAIAAAABAgAAAD5DYW5ub3QgdHJhbnNmZXIgcGxlYXNlIHZlcmlmeSB5b3VyIGFjb3VudC4gQW1vdW50IGlzIHRvbyBtdWNoIQMJAAAAAAAAAgUAAAAGaXNVc2VyBQAAAApLWUNQZW5kaW5nCQAAAgAAAAECAAAAS1RoZSByZWNpcGllbnQgaXMgaW4gS1lDIHBlbmRpbmcgc3RhdHVzLiBZb3UgY2Fubm90IHRyYW5zZmVyIHRoaXMgU21hcnRBc3NldAMJAAAAAAAAAgUAAAAGaXNVc2VyBQAAAAZiYW5uZWQJAAACAAAAAQIAAAA8VGhlIHJlY2lwaWVudCBpcyBiYW5uZWQuIFlvdSBjYW5ub3QgdHJhbnNmZXIgdGhpcyBTbWFydEFzc2V0CQAAAgAAAAECAAAAFFVuZGVmaW5lZCBzaXR1YXRpb24hAwkAAAAAAAACBQAAAARkYXRhBQAAAAdLWUNWZXIyAwkBAAAACWlzRGVmaW5lZAAAAAEFAAAABmlzVXNlcgMJAAAAAAAAAgUAAAAGaXNVc2VyBQAAAAdLWUNWZXIxAwkAAGcAAAACBQAAAAltYXhBbW91bnQFAAAABmFtb3VudAYJAAACAAAAAQIAAAA+Q2Fubm90IHRyYW5zZmVyIHBsZWFzZSB2ZXJpZnkgeW91ciBhY291bnQuIEFtb3VudCBpcyB0b28gbXVjaCEDCQAAAAAAAAIFAAAABmlzVXNlcgUAAAAKS1lDUGVuZGluZwkAAAIAAAABAgAAAEtUaGUgcmVjaXBpZW50IGlzIGluIEtZQyBwZW5kaW5nIHN0YXR1cy4gWW91IGNhbm5vdCB0cmFuc2ZlciB0aGlzIFNtYXJ0QXNzZXQDAwkAAAAAAAACBQAAAAZpc1VzZXIFAAAAB0tZQ1ZlcjIGCQAAAAAAAAIFAAAABmlzVXNlcgUAAAAKaXNNZXJjaGFudAYDCQAAAAAAAAIFAAAABmlzVXNlcgUAAAAGYmFubmVkCQAAAgAAAAECAAAAPFRoZSByZWNpcGllbnQgaXMgYmFubmVkLiBZb3UgY2Fubm90IHRyYW5zZmVyIHRoaXMgU21hcnRB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CQAAaAAAAAIJAABpAAAAAggFAAAAA210dAAAAAt0b3RhbEFtb3VudAAAAAAAAAAAZAUAAAAHdGF4U2l6ZQcHCQAAAgAAAAECAAAAPkNhbm5vdCB0cmFuc2ZlciBwbGVhc2UgdmVyaWZ5IHlvdXIgYWNvdW50LiBBbW91bnQgaXMgdG9vIG11Y2ghAwkAAAAAAAACBQAAAAZpc1VzZXIFAAAACktZQ1BlbmRpbmcJAAACAAAAAQIAAABLVGhlIHJlY2lwaWVudCBpcyBpbiBLWUMgcGVuZGluZyBzdGF0dXMuIFlvdSBjYW5ub3QgdHJhbnNmZXIgdGhpcyBTbWFydEFzc2V0AwkAAAAAAAACBQAAAAZpc1VzZXIFAAAABmJhbm5lZAkAAAIAAAABAgAAADxUaGUgcmVjaXBpZW50IGlzIGJhbm5lZC4gWW91IGNhbm5vdCB0cmFuc2ZlciB0aGlzIFNtYXJ0QXNzZXQJAAACAAAAAQIAAAAUVW5kZWZpbmVkIHNpdHVhdGlvbiEDCQAAAAAAAAIFAAAABGRhdGEFAAAAB0tZQ1ZlcjIDCQEAAAAJaXNEZWZpbmVkAAAAAQUAAAAGaXNVc2VyAwkAAAAAAAACBQAAAAZpc1VzZXIFAAAAB0tZQ1ZlcjEDCQAAZwAAAAIFAAAACW1heEFtb3VudAUAAAAGYW1vdW50BAAAAAckbWF0Y2gxBQAAABBpc3N1ZVRyYW5zYWN0aW9uAwkAAAEAAAACBQAAAAckbWF0Y2gxAgAAABBJc3N1ZVRyYW5zYWN0aW9uBAAAAAdpc3N1ZVR4BQAAAAckbWF0Y2gxBAAAAA1pc3N1ZXJBZGRyZXNzCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCAUAAAAHaXNzdWVUeAAAAA9zZW5kZXJQdWJsaWNLZXkEAAAAB3RheFNpemUJAQAAAAdleHRyYWN0AAAAAQkABBoAAAACBQAAAA1pc3N1ZXJBZGRyZXNzCQACWAAAAAEFAAAAB2Fzc2V0SWQDCQAAAAAAAAIFAAAADmZpcnN0UmVjaXBpZW50BQAAAA1pc3N1ZXJBZGRyZXNzCQAAZwAAAAIFAAAAC2ZpcnN0QW1vdW50CQAAaAAAAAIJAABpAAAAAggFAAAAA210dAAAAAt0b3RhbEFtb3VudAAAAAAAAAAAZAUAAAAHdGF4U2l6ZQcHCQAAAgAAAAECAAAAPkNhbm5vdCB0cmFuc2ZlciBwbGVhc2UgdmVyaWZ5IHlvdXIgYWNvdW50LiBBbW91bnQgaXMgdG9vIG11Y2ghAwkAAAAAAAACBQAAAAZpc1VzZXIFAAAAB0tZQ1ZlcjEJAAACAAAAAQIAAABLVGhlIHJlY2lwaWVudCBpcyBpbiBLWUMgcGVuZGluZyBzdGF0dXMuIFlvdSBjYW5ub3QgdHJhbnNmZXIgdGhpcyBTbWFydEFzc2V0AwkAAAAAAAACBQAAAAZpc1VzZXIFAAAAB0tZQ1ZlcjIEAAAAByRtYXRjaDEFAAAAEGlzc3VlVHJhbnNhY3Rpb24DCQAAAQAAAAIFAAAAByRtYXRjaDECAAAAEElzc3VlVHJhbnNhY3Rpb24EAAAAB2lzc3VlVHgFAAAAByRtYXRjaDEEAAAADWlzc3VlckFkZHJlc3MJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEIBQAAAAdpc3N1ZVR4AAAAD3NlbmRlclB1YmxpY0tleQQAAAAHdGF4U2l6ZQkBAAAAB2V4dHJhY3QAAAABCQAEGgAAAAIFAAAADWlzc3VlckFkZHJlc3MJAAJYAAAAAQUAAAAHYXNzZXRJZAMJAAAAAAAAAgUAAAAOZmlyc3RSZWNpcGllbnQFAAAADWlzc3VlckFkZHJlc3MJAABnAAAAAgUAAAALZmlyc3RBbW91bnQJAABoAAAAAgkAAGkAAAACCAUAAAADbXR0AAAAC3RvdGFsQW1vdW50AAAAAAAAAABkBQAAAAd0YXhTaXplBwcDCQAAAAAAAAIFAAAABmlzVXNlcgUAAAAGYmFubmVkCQAAAgAAAAECAAAAPFRoZSByZWNpcGllbnQgaXMgYmFubmVkLiBZb3UgY2Fubm90IHRyYW5zZmVyIHRoaXMgU21hcnRBc3NldAkAAAIAAAABAgAAABRVbmRlZmluZWQgc2l0dWF0aW9uIQkAAAIAAAABAgAAADtUaGUgcmVjaXBpZW50IGlzIG5vdCBhdXRob3JpemVkIHRvIHBvc3Nlc3MgdGhpcyBTbWFydEFzc2V0IQMJAAAAAAAAAgUAAAAEZGF0YQUAAAAGYmFubmVkCQAAAgAAAAECAAAAH1lvdXIgYWNvdW50IGhhcyBiZWVuIHN1c3BlbmRlZCEJAAACAAAAAQIAAAAUVW5kZWZpbmVkIHNpdHVhdGlvbiEDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAE0V4Y2hhbmdlVHJhbnNhY3Rpb24EAAAAAmV4BQAAAAckbWF0Y2gwBwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAPQnVyblRyYW5zYWN0aW9uBAAAAAFiBQAAAAckbWF0Y2gwBwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAZU2V0QXNzZXRTY3JpcHRUcmFuc2FjdGlvbgQAAAAGc2NyaXB0BQAAAAckbWF0Y2gwAwkAAAAAAAACCAUAAAAGc2NyaXB0AAAABnNlbmRlcgUAAAAFYWRtaW4GCQAAAgAAAAECAAAAFkFkbWluIG9wZXJhdGlvbiBvbmx5Li4GRmUJ2Q==", "height": 1214615, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6JEYCof68tyS27z3wYpBBpSUL3h2mtPCSrS5DYP4emo1 Next: EdQ9rQ2XB1wYTMJ9VSasH9g1UCwH15TbXyWdRUCoqPYR Diff:
OldNewDifferences
8282 then true
8383 else (isUser == KYCVer2))
8484 then if ((maxAmount >= amount))
85- then true
85+ then match issueTransaction {
86+ case issueTx: IssueTransaction =>
87+ let issuerAddress = addressFromPublicKey(issueTx.senderPublicKey)
88+ let taxSize = extract(getInteger(issuerAddress, toBase58String(assetId)))
89+ if ((firstRecipient == issuerAddress))
90+ then (firstAmount >= ((mtt.totalAmount / 100) * taxSize))
91+ else false
92+ case _ =>
93+ false
94+ }
8695 else throw("Cannot transfer please verify your acount. Amount is too much!")
8796 else if ((isUser == KYCPending))
8897 then throw("The recipient is in KYC pending status. You cannot transfer this SmartAsset")
93102 then if (isDefined(isUser))
94103 then if ((isUser == KYCVer1))
95104 then if ((maxAmount >= amount))
96- then true
105+ then match issueTransaction {
106+ case issueTx: IssueTransaction =>
107+ let issuerAddress = addressFromPublicKey(issueTx.senderPublicKey)
108+ let taxSize = extract(getInteger(issuerAddress, toBase58String(assetId)))
109+ if ((firstRecipient == issuerAddress))
110+ then (firstAmount >= ((mtt.totalAmount / 100) * taxSize))
111+ else false
112+ case _ =>
113+ false
114+ }
97115 else throw("Cannot transfer please verify your acount. Amount is too much!")
98116 else if ((isUser == KYCVer1))
99117 then throw("The recipient is in KYC pending status. You cannot transfer this SmartAsset")
100118 else if ((isUser == KYCVer2))
101- then true
119+ then match issueTransaction {
120+ case issueTx: IssueTransaction =>
121+ let issuerAddress = addressFromPublicKey(issueTx.senderPublicKey)
122+ let taxSize = extract(getInteger(issuerAddress, toBase58String(assetId)))
123+ if ((firstRecipient == issuerAddress))
124+ then (firstAmount >= ((mtt.totalAmount / 100) * taxSize))
125+ else false
126+ case _ =>
127+ false
128+ }
102129 else if ((isUser == banned))
103130 then throw("The recipient is banned. You cannot transfer this SmartAsset")
104131 else throw("Undefined situation!")
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 2 #-}
22 {-# CONTENT_TYPE EXPRESSION #-}
33 let admin = Address(base58'3NCpyPuNzUaB7LFS4KBzwzWVnXmjur582oy')
44 let gateway = Address(base58'3NCpyPuNzUaB7LFS4KBzwzWVnXmjur582oy')
55 let banned = 403
66 let KYCVer1 = 1
77 let KYCVer2 = 2
88 let isMerchant = 5
99 let KYCPending = 0
1010 let maxAmount = 100000000
1111 match tx {
1212 case t: TransferTransaction =>
1313 let data = getInteger(admin, toBase58String(t.sender.bytes))
1414 let amount = t.amount
1515 let assetId = extract(t.assetId)
1616 let isUser = getInteger(admin, toBase58String(addressFromRecipient(t.recipient).bytes))
1717 if (!(isDefined(data)))
1818 then throw("You are not a registered member. You cannot transfer this SmartAsset!")
1919 else if ((data == KYCPending))
2020 then throw("KYC Pending. You cannot transfer this SmartAsset")
2121 else if ((data == KYCVer1))
2222 then if ((t.recipient == gateway))
2323 then true
2424 else if (if (if ((isUser == KYCVer1))
2525 then true
2626 else (isUser == KYCVer2))
2727 then true
2828 else (isUser == isMerchant))
2929 then if ((maxAmount >= amount))
3030 then true
3131 else throw("Cannot transfer please verify your acount. Amount is too much!")
3232 else if ((isUser == KYCPending))
3333 then throw("The recipient is in KYC pending status. You cannot transfer this SmartAsset")
3434 else if ((isUser == banned))
3535 then throw("The recipient is banned. You cannot transfer this SmartAsset")
3636 else throw("Undefined situation!")
3737 else if ((data == KYCVer2))
3838 then if (isDefined(isUser))
3939 then if ((isUser == KYCVer1))
4040 then if ((maxAmount >= amount))
4141 then true
4242 else throw("Cannot transfer please verify your acount. Amount is too much!")
4343 else if ((isUser == KYCPending))
4444 then throw("The recipient is in KYC pending status. You cannot transfer this SmartAsset")
4545 else if (if ((isUser == KYCVer2))
4646 then true
4747 else (isUser == isMerchant))
4848 then true
4949 else if ((isUser == banned))
5050 then throw("The recipient is banned. You cannot transfer this SmartAsset")
5151 else throw("Undefined situation!")
5252 else throw("The recipient is not authorized to possess this SmartAsset!")
5353 else if ((data == banned))
5454 then throw("Your acount has been suspended!")
5555 else if ((data == isMerchant))
5656 then if ((t.recipient == gateway))
5757 then true
5858 else throw("Cannot transfer this asset to another account.")
5959 else throw("Undefined situation!")
6060 case mtt: MassTransferTransaction =>
6161 let data = getInteger(admin, toBase58String(mtt.sender.bytes))
6262 let amount = mtt.totalAmount
6363 let assetId = extract(mtt.assetId)
6464 let transferCount = mtt.transferCount
6565 let firstRecipient = mtt.transfers[0].recipient
6666 let secondRecipient = mtt.transfers[1].recipient
6767 let firstAmount = mtt.transfers[0].amount
6868 let issueTransaction = transactionById(assetId)
6969 let isUser = getInteger(admin, toBase58String(addressFromRecipient(secondRecipient).bytes))
7070 if (!(isDefined(isUser)))
7171 then false
7272 else if ((transferCount > 2))
7373 then throw("not allowed")
7474 else if (!(isDefined(data)))
7575 then throw("You are not a registered member. You cannot transfer this SmartAsset!")
7676 else if ((data == KYCPending))
7777 then throw("KYC Pending. You cannot transfer this SmartAsset")
7878 else if ((data == KYCVer1))
7979 then if ((firstRecipient != gateway))
8080 then throw("First recipient must be the issuer")
8181 else if (if ((isUser == KYCVer1))
8282 then true
8383 else (isUser == KYCVer2))
8484 then if ((maxAmount >= amount))
85- then true
85+ then match issueTransaction {
86+ case issueTx: IssueTransaction =>
87+ let issuerAddress = addressFromPublicKey(issueTx.senderPublicKey)
88+ let taxSize = extract(getInteger(issuerAddress, toBase58String(assetId)))
89+ if ((firstRecipient == issuerAddress))
90+ then (firstAmount >= ((mtt.totalAmount / 100) * taxSize))
91+ else false
92+ case _ =>
93+ false
94+ }
8695 else throw("Cannot transfer please verify your acount. Amount is too much!")
8796 else if ((isUser == KYCPending))
8897 then throw("The recipient is in KYC pending status. You cannot transfer this SmartAsset")
8998 else if ((isUser == banned))
9099 then throw("The recipient is banned. You cannot transfer this SmartAsset")
91100 else throw("Undefined situation!")
92101 else if ((data == KYCVer2))
93102 then if (isDefined(isUser))
94103 then if ((isUser == KYCVer1))
95104 then if ((maxAmount >= amount))
96- then true
105+ then match issueTransaction {
106+ case issueTx: IssueTransaction =>
107+ let issuerAddress = addressFromPublicKey(issueTx.senderPublicKey)
108+ let taxSize = extract(getInteger(issuerAddress, toBase58String(assetId)))
109+ if ((firstRecipient == issuerAddress))
110+ then (firstAmount >= ((mtt.totalAmount / 100) * taxSize))
111+ else false
112+ case _ =>
113+ false
114+ }
97115 else throw("Cannot transfer please verify your acount. Amount is too much!")
98116 else if ((isUser == KYCVer1))
99117 then throw("The recipient is in KYC pending status. You cannot transfer this SmartAsset")
100118 else if ((isUser == KYCVer2))
101- then true
119+ then match issueTransaction {
120+ case issueTx: IssueTransaction =>
121+ let issuerAddress = addressFromPublicKey(issueTx.senderPublicKey)
122+ let taxSize = extract(getInteger(issuerAddress, toBase58String(assetId)))
123+ if ((firstRecipient == issuerAddress))
124+ then (firstAmount >= ((mtt.totalAmount / 100) * taxSize))
125+ else false
126+ case _ =>
127+ false
128+ }
102129 else if ((isUser == banned))
103130 then throw("The recipient is banned. You cannot transfer this SmartAsset")
104131 else throw("Undefined situation!")
105132 else throw("The recipient is not authorized to possess this SmartAsset!")
106133 else if ((data == banned))
107134 then throw("Your acount has been suspended!")
108135 else throw("Undefined situation!")
109136 case ex: ExchangeTransaction =>
110137 false
111138 case b: BurnTransaction =>
112139 false
113140 case script: SetAssetScriptTransaction =>
114141 if ((script.sender == admin))
115142 then true
116143 else throw("Admin operation only..")
117144 case _ =>
118145 true
119146 }

github/deemru/w8io/6500d08 
38.74 ms