tx · Fpr1u8kfchjC5vGB45AddvGr6gsUJcBxHUVSZMSzAHYE

3NCpyPuNzUaB7LFS4KBzwzWVnXmjur582oy:  -1.00000000 Waves

2020.10.09 22:42 [1213471] smart asset 3NCpyPuNzUaB7LFS4KBzwzWVnXmjur582oy > SELF 0.00000000 D-BTC

{ "type": 15, "id": "Fpr1u8kfchjC5vGB45AddvGr6gsUJcBxHUVSZMSzAHYE", "fee": 100000000, "feeAssetId": null, "timestamp": 1602272555864, "version": 2, "chainId": 84, "sender": "3NCpyPuNzUaB7LFS4KBzwzWVnXmjur582oy", "senderPublicKey": "57EFni8M1XesEurFh3c4jnpLExP2PCPd5TRrwMjePAT4", "proofs": [ "41Lg86GqRGMbssVECHj8vnVDddEEbCk6ZhS8jSWx7snTm7nyJUoQveYYttYrdAftduc2ayighiExHof9wPsXsXQi" ], "assetId": "FjTB2DdymTfpYbCCdcFwoRbHQnEhQD11CUm6nAF7P1UD", "script": "base64:AgQAAAAFYWRtaW4JAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVT7U3zgWylABs9zUfyaAS1l4Zzgbt82QMAEAAAAB2dhdGV3YXkJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVT7U3zgWylABs9zUfyaAS1l4Zzgbt82QMAEAAAABmJhbm5lZAAAAAAAAAABkwQAAAAHS1lDVmVyMQAAAAAAAAAAAQQAAAAHS1lDVmVyMgAAAAAAAAAAAgQAAAAKS1lDUGVuZGluZwAAAAAAAAAAAAQAAAAJbWF4QW1vdW50AAAAAAAF9eEABAAAAAckbWF0Y2gwBQAAAAJ0eAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAATVHJhbnNmZXJUcmFuc2FjdGlvbgQAAAABdAUAAAAHJG1hdGNoMAQAAAAEZGF0YQkABBoAAAACBQAAAAVhZG1pbgkAAlgAAAABCAgFAAAAAXQAAAAGc2VuZGVyAAAABWJ5dGVzBAAAAAZhbW91bnQIBQAAAAF0AAAABmFtb3VudAQAAAAHYXNzZXRJZAkBAAAAB2V4dHJhY3QAAAABCAUAAAABdAAAAAdhc3NldElkAwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQUAAAAEZGF0YQkAAAIAAAABAgAAAERZb3UgYXJlIG5vdCBhIHJlZ2lzdGVyZWQgbWVtYmVyLiBZb3UgY2Fubm90IHRyYW5zZmVyIHRoaXMgU21hcnRBc3NldAMJAAAAAAAAAgUAAAAEZGF0YQAAAAAAAAAAAAkAAAIAAAABAgAAADBLWUMgUGVuZGluZy4gWW91IGNhbm5vdCB0cmFuc2ZlciB0aGlzIFNtYXJ0QXNzZXQDCQAAAAAAAAIFAAAABGRhdGEAAAAAAAAAAAEDCQAAAAAAAAIIBQAAAAF0AAAACXJlY2lwaWVudAUAAAAHZ2F0ZXdheQMJAABnAAAAAgUAAAAJbWF4QW1vdW50BQAAAAZhbW91bnQGCQAAAgAAAAECAAAAPkNhbm5vdCB0cmFuc2ZlciBwbGVhc2UgdmVyaWZ5IHlvdXIgYWNvdW50LiBBbW91bnQgaXMgdG9vIG11Y2ghCQAAAgAAAAECAAAANllvdSBhcmUgbm90IGF1dGhvcml6ZWQgdG8gdHJhbnNmZXIgdGhpcyBTbWFydEFzc2V0Li4gIQMJAAAAAAAAAgUAAAAEZGF0YQAAAAAAAAAAAgQAAAAGaXNVc2VyCQAEGgAAAAIFAAAABWFkbWluCQACWAAAAAEICQAEJAAAAAEIBQAAAAF0AAAACXJlY2lwaWVudAAAAAVieXRlcwMJAQAAAAlpc0RlZmluZWQAAAABBQAAAAZpc1VzZXIDCQAAAAAAAAIFAAAABmlzVXNlcgAAAAAAAAAAAQMJAABnAAAAAgUAAAAJbWF4QW1vdW50BQAAAAZhbW91bnQGCQAAAgAAAAECAAAAPkNhbm5vdCB0cmFuc2ZlciBwbGVhc2UgdmVyaWZ5IHlvdXIgYWNvdW50LiBBbW91bnQgaXMgdG9vIG11Y2ghAwkAAAAAAAACBQAAAAZpc1VzZXIAAAAAAAAAAAAJAAACAAAAAQIAAABLVGhlIHJlY2lwaWVudCBpcyBpbiBLWUMgcGVuZGluZyBzdGF0dXMuIFlvdSBjYW5ub3QgdHJhbnNmZXIgdGhpcyBTbWFydEFzc2V0AwkAAAAAAAACBQAAAAZpc1VzZXIAAAAAAAAAAAIGAwkAAAAAAAACBQAAAAZpc1VzZXIAAAAAAAAAAZMJAAACAAAAAQIAAAA8VGhlIHJlY2lwaWVudCBpcyBiYW5uZWQuIFlvdSBjYW5ub3QgdHJhbnNmZXIgdGhpcyBTbWFydEFzc2V0CQAAAgAAAAECAAAAFFVuZGVmaW5lZCBzaXR1YXRpb24hCQAAAgAAAAECAAAAO1RoZSByZWNpcGllbnQgaXMgbm90IGF1dGhvcml6ZWQgdG8gcG9zc2VzcyB0aGlzIFNtYXJ0QXNzZXQhAwkAAAAAAAACBQAAAARkYXRhAAAAAAAAAAGTCQAAAgAAAAECAAAAH1lvdXIgYWNvdW50IGhhcyBiZWVuIHN1c3BlbmRlZCEJAAACAAAAAQIAAAAUVW5kZWZpbmVkIHNpdHVhdGlvbiEDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAF01hc3NUcmFuc2ZlclRyYW5zYWN0aW9uBAAAAANtdHQFAAAAByRtYXRjaDAEAAAADmZpcnN0UmVjaXBpZW50CAkAAZEAAAACCAUAAAADbXR0AAAACXRyYW5zZmVycwAAAAAAAAAAAAAAAAlyZWNpcGllbnQEAAAAC2ZpcnN0QW1vdW50CAkAAZEAAAACCAUAAAADbXR0AAAACXRyYW5zZmVycwAAAAAAAAAAAAAAAAZhbW91bnQEAAAAB2Fzc2V0SWQJAQAAAAdleHRyYWN0AAAAAQgFAAAAA210dAAAAAdhc3NldElkBAAAABBpc3N1ZVRyYW5zYWN0aW9uCQAD6AAAAAEFAAAAB2Fzc2V0SWQEAAAAByRtYXRjaDEFAAAAEGlzc3VlVHJhbnNhY3Rpb24DCQAAAQAAAAIFAAAAByRtYXRjaDECAAAAEElzc3VlVHJhbnNhY3Rpb24EAAAAB2lzc3VlVHgFAAAAByRtYXRjaDEEAAAADWlzc3VlckFkZHJlc3MJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEIBQAAAAdpc3N1ZVR4AAAAD3NlbmRlclB1YmxpY0tleQQAAAAHdGF4U2l6ZQkBAAAAB2V4dHJhY3QAAAABCQAEGgAAAAIFAAAADWlzc3VlckFkZHJlc3MJAAJYAAAAAQUAAAAHYXNzZXRJZAMJAAAAAAAAAgUAAAAOZmlyc3RSZWNpcGllbnQFAAAADWlzc3VlckFkZHJlc3MJAABnAAAAAgUAAAALZmlyc3RBbW91bnQJAABoAAAAAgkAAGkAAAACCAUAAAADbXR0AAAAC3RvdGFsQW1vdW50AAAAAAAAAABkBQAAAAd0YXhTaXplBwcDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAE0V4Y2hhbmdlVHJhbnNhY3Rpb24EAAAAAmV4BQAAAAckbWF0Y2gwBwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAPQnVyblRyYW5zYWN0aW9uBAAAAAFiBQAAAAckbWF0Y2gwBwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAZU2V0QXNzZXRTY3JpcHRUcmFuc2FjdGlvbgQAAAAGc2NyaXB0BQAAAAckbWF0Y2gwAwkAAAAAAAACCAUAAAAGc2NyaXB0AAAABnNlbmRlcgUAAAAFYWRtaW4GCQAAAgAAAAECAAAAFkFkbWluIG9wZXJhdGlvbiBvbmx5Li4GLbJw3w==", "height": 1213471, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Fs6e4kv8qZjdjoiV4cHPE7fTBxzJrUW7JXEZteC142GR Next: 3sYizZC3fP5SwyNgRhTBxMywQsyGF18VGJfUwGfgB6pM Diff:
OldNewDifferences
4242 else if ((data == 403))
4343 then throw("Your acount has been suspended!")
4444 else throw("Undefined situation!")
45+ case mtt: MassTransferTransaction =>
46+ let firstRecipient = mtt.transfers[0].recipient
47+ let firstAmount = mtt.transfers[0].amount
48+ let assetId = extract(mtt.assetId)
49+ let issueTransaction = transactionById(assetId)
50+ match issueTransaction {
51+ case issueTx: IssueTransaction =>
52+ let issuerAddress = addressFromPublicKey(issueTx.senderPublicKey)
53+ let taxSize = extract(getInteger(issuerAddress, toBase58String(assetId)))
54+ if ((firstRecipient == issuerAddress))
55+ then (firstAmount >= ((mtt.totalAmount / 100) * taxSize))
56+ else false
57+ case _ =>
58+ false
59+ }
4560 case ex: ExchangeTransaction =>
4661 false
4762 case b: BurnTransaction =>
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 KYCPending = 0
99 let maxAmount = 100000000
1010 match tx {
1111 case t: TransferTransaction =>
1212 let data = getInteger(admin, toBase58String(t.sender.bytes))
1313 let amount = t.amount
1414 let assetId = extract(t.assetId)
1515 if (!(isDefined(data)))
1616 then throw("You are not a registered member. You cannot transfer this SmartAsset")
1717 else if ((data == 0))
1818 then throw("KYC Pending. You cannot transfer this SmartAsset")
1919 else if ((data == 1))
2020 then if ((t.recipient == gateway))
2121 then if ((maxAmount >= amount))
2222 then true
2323 else throw("Cannot transfer please verify your acount. Amount is too much!")
2424 else throw("You are not authorized to transfer this SmartAsset.. !")
2525 else if ((data == 2))
2626 then {
2727 let isUser = getInteger(admin, toBase58String(addressFromRecipient(t.recipient).bytes))
2828 if (isDefined(isUser))
2929 then if ((isUser == 1))
3030 then if ((maxAmount >= amount))
3131 then true
3232 else throw("Cannot transfer please verify your acount. Amount is too much!")
3333 else if ((isUser == 0))
3434 then throw("The recipient is in KYC pending status. You cannot transfer this SmartAsset")
3535 else if ((isUser == 2))
3636 then true
3737 else if ((isUser == 403))
3838 then throw("The recipient is banned. You cannot transfer this SmartAsset")
3939 else throw("Undefined situation!")
4040 else throw("The recipient is not authorized to possess this SmartAsset!")
4141 }
4242 else if ((data == 403))
4343 then throw("Your acount has been suspended!")
4444 else throw("Undefined situation!")
45+ case mtt: MassTransferTransaction =>
46+ let firstRecipient = mtt.transfers[0].recipient
47+ let firstAmount = mtt.transfers[0].amount
48+ let assetId = extract(mtt.assetId)
49+ let issueTransaction = transactionById(assetId)
50+ match issueTransaction {
51+ case issueTx: IssueTransaction =>
52+ let issuerAddress = addressFromPublicKey(issueTx.senderPublicKey)
53+ let taxSize = extract(getInteger(issuerAddress, toBase58String(assetId)))
54+ if ((firstRecipient == issuerAddress))
55+ then (firstAmount >= ((mtt.totalAmount / 100) * taxSize))
56+ else false
57+ case _ =>
58+ false
59+ }
4560 case ex: ExchangeTransaction =>
4661 false
4762 case b: BurnTransaction =>
4863 false
4964 case script: SetAssetScriptTransaction =>
5065 if ((script.sender == admin))
5166 then true
5267 else throw("Admin operation only..")
5368 case _ =>
5469 true
5570 }

github/deemru/w8io/6500d08 
31.07 ms