tx · BoesTkAs6iAyLwhJ5FU3p72f2HqtTWhweN91zykidsv5

3Mx66EFd8iB1tZ6vu7Xx5GMkzbKQc3Nrw81:  -0.01400000 Waves

2020.08.11 07:10 [1127346] smart account 3Mx66EFd8iB1tZ6vu7Xx5GMkzbKQc3Nrw81 > SELF 0.00000000 Waves

{ "type": 13, "id": "BoesTkAs6iAyLwhJ5FU3p72f2HqtTWhweN91zykidsv5", "fee": 1400000, "feeAssetId": null, "timestamp": 1597119082632, "version": 1, "sender": "3Mx66EFd8iB1tZ6vu7Xx5GMkzbKQc3Nrw81", "senderPublicKey": "7F9WJ2MEaCQTxjwqCQmL9jHicqJVc3uCmntzCMAK8yq6", "proofs": [ "DvVB5uzCRoMSH2AkAhFPqhwAF812xsqVWX6ZVmU8qZmQ5rgBR5WutQC75rHy3fBpbWQbcgKh2a3wB4wQ1XkKNi7" ], "script": "base64:AwQAAAAETk9ORQIAAAAEbm9uZQQAAAALdXNlcnNQdWJLZXkBAAAAIKeP6tgl4CP2PWCZbTcLVLGPExrT9u/W4PAFsxrOIcYHBAAAAAl1c2Vyc0FkZHIJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAAC3VzZXJzUHViS2V5BAAAAARidG5zAQAAACDFLOWBobFDqtyu6bkFDRsq16C369fJHs5Bnyp0LEWdcwQAAAAEYnRuZgEAAAAgAcfavlePt+AR+muoBefYqFrjn0Oc5fUH1esIaonljXkKAQAAAAh2ZXJpZmllcgAAAAEAAAAHYWNjb3VudAMJAAAAAAAAAgUAAAAHYWNjb3VudAUAAAAEdGhpcwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXkJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAABQAAAAt1c2Vyc1B1YktleQoBAAAACWdldFN0clZhcgAAAAEAAAADa2V5BAAAAANzdHIEAAAAByRtYXRjaDAFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFzBQAAAAckbWF0Y2gwBQAAAAFzBQAAAAROT05FBQAAAANzdHIKAQAAAAtjb250YWluQWRkcgAAAAIAAAABYQAAAAFiBAAAAARhZGRyCQAEJQAAAAEJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEJAAJZAAAAAQUAAAABYgMJAAAAAAAAAgUAAAAEYWRkcgUAAAABYQYDAwkAAAAAAAACBQAAAAFhBgkBAAAAAiE9AAAAAgUAAAAEYWRkcgUAAAABYQcGBQAAAAFhCgEAAAAOY29udGFpblRva2VuSWQAAAACAAAAAWEAAAABYgMJAAAAAAAAAgUAAAABYgUAAAABYQYDAwkAAAAAAAACBQAAAAFhBgkBAAAAAiE9AAAAAgUAAAABYgUAAAABYQcGBQAAAAFhCgEAAAAVYWxsb3dlZFRyYW5zZmVyVG9rZW5zAAAAAQAAAAdhc3NldElkBAAAAAx0b2tlbnNJZExpc3QJAAS1AAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAALdXNlcnNQdWJLZXkCAAAAEGFsbG93ZWRUcmFuc2ZlcnMCAAAAASwEAAAAB2NvbnRhaW4EAAAADSRsaXN0MTQ2NTE1MzYFAAAADHRva2Vuc0lkTGlzdAQAAAANJHNpemUxNDY1MTUzNgkAAZAAAAABBQAAAA0kbGlzdDE0NjUxNTM2BAAAAA0kYWNjMDE0NjUxNTM2CQACWAAAAAEJAQAAAAdleHRyYWN0AAAAAQUAAAAHYXNzZXRJZAMJAAAAAAAAAgUAAAANJHNpemUxNDY1MTUzNgAAAAAAAAAAAAUAAAANJGFjYzAxNDY1MTUzNgQAAAANJGFjYzExNDY1MTUzNgkBAAAADmNvbnRhaW5Ub2tlbklkAAAAAgUAAAANJGFjYzAxNDY1MTUzNgkAAZEAAAACBQAAAA0kbGlzdDE0NjUxNTM2AAAAAAAAAAAAAwkAAAAAAAACBQAAAA0kc2l6ZTE0NjUxNTM2AAAAAAAAAAABBQAAAA0kYWNjMTE0NjUxNTM2BAAAAA0kYWNjMjE0NjUxNTM2CQEAAAAOY29udGFpblRva2VuSWQAAAACBQAAAA0kYWNjMTE0NjUxNTM2CQABkQAAAAIFAAAADSRsaXN0MTQ2NTE1MzYAAAAAAAAAAAEDCQAAAAAAAAIFAAAADSRzaXplMTQ2NTE1MzYAAAAAAAAAAAIFAAAADSRhY2MyMTQ2NTE1MzYEAAAADSRhY2MzMTQ2NTE1MzYJAQAAAA5jb250YWluVG9rZW5JZAAAAAIFAAAADSRhY2MyMTQ2NTE1MzYJAAGRAAAAAgUAAAANJGxpc3QxNDY1MTUzNgAAAAAAAAAAAgMJAAAAAAAAAgUAAAANJHNpemUxNDY1MTUzNgAAAAAAAAAAAwUAAAANJGFjYzMxNDY1MTUzNgQAAAANJGFjYzQxNDY1MTUzNgkBAAAADmNvbnRhaW5Ub2tlbklkAAAAAgUAAAANJGFjYzMxNDY1MTUzNgkAAZEAAAACBQAAAA0kbGlzdDE0NjUxNTM2AAAAAAAAAAADAwkAAAAAAAACBQAAAA0kc2l6ZTE0NjUxNTM2AAAAAAAAAAAEBQAAAA0kYWNjNDE0NjUxNTM2BAAAAA0kYWNjNTE0NjUxNTM2CQEAAAAOY29udGFpblRva2VuSWQAAAACBQAAAA0kYWNjNDE0NjUxNTM2CQABkQAAAAIFAAAADSRsaXN0MTQ2NTE1MzYAAAAAAAAAAAQDCQAAAAAAAAIFAAAADSRzaXplMTQ2NTE1MzYAAAAAAAAAAAUFAAAADSRhY2M1MTQ2NTE1MzYEAAAADSRhY2M2MTQ2NTE1MzYJAQAAAA5jb250YWluVG9rZW5JZAAAAAIFAAAADSRhY2M1MTQ2NTE1MzYJAAGRAAAAAgUAAAANJGxpc3QxNDY1MTUzNgAAAAAAAAAABQkAAAIAAAABAgAAABJMaXN0IHNpemUgZXhjZWVkIDUDCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABBQAAAAdhc3NldElkBgMDCQEAAAAJaXNEZWZpbmVkAAAAAQUAAAAHYXNzZXRJZAkAAAAAAAACBQAAAAdjb250YWluBgcGAwMJAQAAAAlpc0RlZmluZWQAAAABBQAAAAdhc3NldElkCQEAAAACIT0AAAACBQAAAAdjb250YWluBgcJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAADlRoaXMgdG9rZW4gSUQgCQEAAAAJZ2V0U3RyVmFyAAAAAQUAAAAHY29udGFpbgIAAAAqIGlzIG5vdCBhbGxvd2VkIHRvIG9wZXJhdGUgaW4gdGhpcyBhY2NvdW50CQEAAAAIdmVyaWZpZXIAAAABBQAAAAl1c2Vyc0FkZHIKAQAAABdhbGxvd2VkQWRkclNwb25zb3JlZEZlZQAAAAEAAAAEYWRkcgQAAAAJYWRkcnNMaXN0CQAEtQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAAC3VzZXJzUHViS2V5AgAAABFhbGxvd2VkU3BvbnNvckZlZQIAAAABLAQAAAAHY29udGFpbgQAAAANJGxpc3QxOTcxMjAxOAUAAAAJYWRkcnNMaXN0BAAAAA0kc2l6ZTE5NzEyMDE4CQABkAAAAAEFAAAADSRsaXN0MTk3MTIwMTgEAAAADSRhY2MwMTk3MTIwMTgJAAQlAAAAAQUAAAAEYWRkcgMJAAAAAAAAAgUAAAANJHNpemUxOTcxMjAxOAAAAAAAAAAAAAUAAAANJGFjYzAxOTcxMjAxOAQAAAANJGFjYzExOTcxMjAxOAkBAAAAC2NvbnRhaW5BZGRyAAAAAgUAAAANJGFjYzAxOTcxMjAxOAkAAZEAAAACBQAAAA0kbGlzdDE5NzEyMDE4AAAAAAAAAAAAAwkAAAAAAAACBQAAAA0kc2l6ZTE5NzEyMDE4AAAAAAAAAAABBQAAAA0kYWNjMTE5NzEyMDE4BAAAAA0kYWNjMjE5NzEyMDE4CQEAAAALY29udGFpbkFkZHIAAAACBQAAAA0kYWNjMTE5NzEyMDE4CQABkQAAAAIFAAAADSRsaXN0MTk3MTIwMTgAAAAAAAAAAAEDCQAAAAAAAAIFAAAADSRzaXplMTk3MTIwMTgAAAAAAAAAAAIFAAAADSRhY2MyMTk3MTIwMTgEAAAADSRhY2MzMTk3MTIwMTgJAQAAAAtjb250YWluQWRkcgAAAAIFAAAADSRhY2MyMTk3MTIwMTgJAAGRAAAAAgUAAAANJGxpc3QxOTcxMjAxOAAAAAAAAAAAAgMJAAAAAAAAAgUAAAANJHNpemUxOTcxMjAxOAAAAAAAAAAAAwUAAAANJGFjYzMxOTcxMjAxOAQAAAANJGFjYzQxOTcxMjAxOAkBAAAAC2NvbnRhaW5BZGRyAAAAAgUAAAANJGFjYzMxOTcxMjAxOAkAAZEAAAACBQAAAA0kbGlzdDE5NzEyMDE4AAAAAAAAAAADAwkAAAAAAAACBQAAAA0kc2l6ZTE5NzEyMDE4AAAAAAAAAAAEBQAAAA0kYWNjNDE5NzEyMDE4BAAAAA0kYWNjNTE5NzEyMDE4CQEAAAALY29udGFpbkFkZHIAAAACBQAAAA0kYWNjNDE5NzEyMDE4CQABkQAAAAIFAAAADSRsaXN0MTk3MTIwMTgAAAAAAAAAAAQDCQAAAAAAAAIFAAAADSRzaXplMTk3MTIwMTgAAAAAAAAAAAUFAAAADSRhY2M1MTk3MTIwMTgEAAAADSRhY2M2MTk3MTIwMTgJAQAAAAtjb250YWluQWRkcgAAAAIFAAAADSRhY2M1MTk3MTIwMTgJAAGRAAAAAgUAAAANJGxpc3QxOTcxMjAxOAAAAAAAAAAABQkAAAIAAAABAgAAABJMaXN0IHNpemUgZXhjZWVkIDUDCQEAAAACIT0AAAACBQAAAAdjb250YWluBgkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAANVGhpcyBhZGRyZXNzIAkBAAAACWdldFN0clZhcgAAAAEFAAAAB2NvbnRhaW4CAAAAPCBpcyBub3QgYWxsb3dlZCB0byBvcGVyYXRlIHdpdGggdGhlIEJpdE5vZGVzIHNwb25zb3JlZCB0b2tlbgkBAAAACHZlcmlmaWVyAAAAAQUAAAAEdGhpcwQAAAAHJG1hdGNoMAUAAAACdHgDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAE1RyYW5zZmVyVHJhbnNhY3Rpb24EAAAAAXQFAAAAByRtYXRjaDADAwkBAAAAAiE9AAAAAggFAAAAAXQAAAAHYXNzZXRJZAUAAAAEYnRuZgkBAAAAAiE9AAAAAggFAAAAAXQAAAAKZmVlQXNzZXRJZAUAAAAEYnRuZgcJAQAAABVhbGxvd2VkVHJhbnNmZXJUb2tlbnMAAAABCAUAAAABdAAAAAdhc3NldElkAwMJAAAAAAAAAggFAAAAAXQAAAAHYXNzZXRJZAUAAAAEYnRuZgYJAAAAAAAAAggFAAAAAXQAAAAKZmVlQXNzZXRJZAUAAAAEYnRuZgkBAAAAF2FsbG93ZWRBZGRyU3BvbnNvcmVkRmVlAAAAAQkABCQAAAABCAUAAAABdAAAAAlyZWNpcGllbnQJAAACAAAAAQIAAABLT3BlcmHDp8OjbyBuw6NvIGF1dG9yaXphZGEgcGFyYSBjb250YXMgY2VudHJhbGl6YWRhcyBuYSBQbGF0YWZvcm1hIEJpdE5vZGVzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAVPcmRlcgQAAAABbwUAAAAHJG1hdGNoMAkAAAIAAAABCQABLAAAAAICAAAAASsJAAGlAAAAAQkBAAAAFWFsbG93ZWRUcmFuc2ZlclRva2VucwAAAAEICAUAAAABbwAAAAlhc3NldFBhaXIAAAAKcHJpY2VBc3NldAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAATRXhjaGFuZ2VUcmFuc2FjdGlvbgQAAAABZQUAAAAHJG1hdGNoMAYDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAD0J1cm5UcmFuc2FjdGlvbgQAAAAEYnVybgUAAAAHJG1hdGNoMAkBAAAACHZlcmlmaWVyAAAAAQUAAAAJdXNlcnNBZGRyAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAA9EYXRhVHJhbnNhY3Rpb24EAAAAAWQFAAAAByRtYXRjaDAJAQAAAAh2ZXJpZmllcgAAAAEFAAAACXVzZXJzQWRkcgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAUU2V0U2NyaXB0VHJhbnNhY3Rpb24EAAAAAXMFAAAAByRtYXRjaDAGAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABBMZWFzZVRyYW5zYWN0aW9uBAAAAAFsBQAAAAckbWF0Y2gwCQEAAAAXYWxsb3dlZEFkZHJTcG9uc29yZWRGZWUAAAABCQAEJAAAAAEIBQAAAAFsAAAACXJlY2lwaWVudAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAWTGVhc2VDYW5jZWxUcmFuc2FjdGlvbgQAAAABYwUAAAAHJG1hdGNoMAkBAAAACHZlcmlmaWVyAAAAAQUAAAAEdGhpcwZvomaI", "chainId": 84, "height": 1127346, "spentComplexity": 0 } View: original | compacted Prev: 7rKbF6bz2KNF91oRdudr3MJNa8DWFXLXgfqvbLp8P2v6 Next: 8fkU6HzHtxAyJ3itmin956TxCdBD6kZNNWxJuLo4Em5C Diff:
OldNewDifferences
134134
135135 match tx {
136136 case t: TransferTransaction =>
137- true
137+ if (if ((t.assetId != btnf))
138+ then (t.feeAssetId != btnf)
139+ else false)
140+ then allowedTransferTokens(t.assetId)
141+ else if (if ((t.assetId == btnf))
142+ then true
143+ else (t.feeAssetId == btnf))
144+ then allowedAddrSponsoredFee(addressFromRecipient(t.recipient))
145+ else throw("Operação não autorizada para contas centralizadas na Plataforma BitNodes")
138146 case o: Order =>
139- let price = allowedTransferTokens(o.assetPair.priceAsset)
140- if (!(price))
141- then throw("price não foi reconhecido")
142- else throw("price foi reconhecido")
147+ throw(("+" + toString(allowedTransferTokens(o.assetPair.priceAsset))))
143148 case e: ExchangeTransaction =>
144149 true
145150 case burn: BurnTransaction =>
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# CONTENT_TYPE EXPRESSION #-}
33 let NONE = "none"
44 let usersPubKey = base58'CH6NGp8BFPQ8gm6cPeVG9S3ZWp7m39eQnZU3eTdZgayU'
55 let usersAddr = addressFromPublicKey(usersPubKey)
66 let btns = base58'EGh2LufqeTEdihgaDz6iZosJtsyY98sqkHX2WP8Csnw4'
77 let btnf = base58'7xAHFCPLRSa7XfNNbnd9DMPd9SkgpNfrptFvE4pJE7J'
88 func verifier (account) = if ((account == this))
99 then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
1010 else sigVerify(tx.bodyBytes, tx.proofs[0], usersPubKey)
1111
1212 func getStrVar (key) = {
1313 let str = match key {
1414 case s: String =>
1515 s
1616 case _ =>
1717 NONE
1818 }
1919 str
2020 }
2121
2222 func containAddr (a,b) = {
2323 let addr = toString(addressFromPublicKey(fromBase58String(b)))
2424 if ((addr == a))
2525 then true
2626 else if (if ((a == true))
2727 then (addr != a)
2828 else false)
2929 then true
3030 else a
3131 }
3232
3333 func containTokenId (a,b) = if ((b == a))
3434 then true
3535 else if (if ((a == true))
3636 then (b != a)
3737 else false)
3838 then true
3939 else a
4040
4141 func allowedTransferTokens (assetId) = {
4242 let tokensIdList = split(getStringValue(addressFromPublicKey(usersPubKey), "allowedTransfers"), ",")
4343 let contain = {
4444 let $list14651536 = tokensIdList
4545 let $size14651536 = size($list14651536)
4646 let $acc014651536 = toBase58String(extract(assetId))
4747 if (($size14651536 == 0))
4848 then $acc014651536
4949 else {
5050 let $acc114651536 = containTokenId($acc014651536, $list14651536[0])
5151 if (($size14651536 == 1))
5252 then $acc114651536
5353 else {
5454 let $acc214651536 = containTokenId($acc114651536, $list14651536[1])
5555 if (($size14651536 == 2))
5656 then $acc214651536
5757 else {
5858 let $acc314651536 = containTokenId($acc214651536, $list14651536[2])
5959 if (($size14651536 == 3))
6060 then $acc314651536
6161 else {
6262 let $acc414651536 = containTokenId($acc314651536, $list14651536[3])
6363 if (($size14651536 == 4))
6464 then $acc414651536
6565 else {
6666 let $acc514651536 = containTokenId($acc414651536, $list14651536[4])
6767 if (($size14651536 == 5))
6868 then $acc514651536
6969 else {
7070 let $acc614651536 = containTokenId($acc514651536, $list14651536[5])
7171 throw("List size exceed 5")
7272 }
7373 }
7474 }
7575 }
7676 }
7777 }
7878 }
7979 if (!(isDefined(assetId)))
8080 then true
8181 else if (if (isDefined(assetId))
8282 then (contain == true)
8383 else false)
8484 then true
8585 else if (if (isDefined(assetId))
8686 then (contain != true)
8787 else false)
8888 then throw((("This token ID " + getStrVar(contain)) + " is not allowed to operate in this account"))
8989 else verifier(usersAddr)
9090 }
9191
9292 func allowedAddrSponsoredFee (addr) = {
9393 let addrsList = split(getStringValue(addressFromPublicKey(usersPubKey), "allowedSponsorFee"), ",")
9494 let contain = {
9595 let $list19712018 = addrsList
9696 let $size19712018 = size($list19712018)
9797 let $acc019712018 = toString(addr)
9898 if (($size19712018 == 0))
9999 then $acc019712018
100100 else {
101101 let $acc119712018 = containAddr($acc019712018, $list19712018[0])
102102 if (($size19712018 == 1))
103103 then $acc119712018
104104 else {
105105 let $acc219712018 = containAddr($acc119712018, $list19712018[1])
106106 if (($size19712018 == 2))
107107 then $acc219712018
108108 else {
109109 let $acc319712018 = containAddr($acc219712018, $list19712018[2])
110110 if (($size19712018 == 3))
111111 then $acc319712018
112112 else {
113113 let $acc419712018 = containAddr($acc319712018, $list19712018[3])
114114 if (($size19712018 == 4))
115115 then $acc419712018
116116 else {
117117 let $acc519712018 = containAddr($acc419712018, $list19712018[4])
118118 if (($size19712018 == 5))
119119 then $acc519712018
120120 else {
121121 let $acc619712018 = containAddr($acc519712018, $list19712018[5])
122122 throw("List size exceed 5")
123123 }
124124 }
125125 }
126126 }
127127 }
128128 }
129129 }
130130 if ((contain != true))
131131 then throw((("This address " + getStrVar(contain)) + " is not allowed to operate with the BitNodes sponsored token"))
132132 else verifier(this)
133133 }
134134
135135 match tx {
136136 case t: TransferTransaction =>
137- true
137+ if (if ((t.assetId != btnf))
138+ then (t.feeAssetId != btnf)
139+ else false)
140+ then allowedTransferTokens(t.assetId)
141+ else if (if ((t.assetId == btnf))
142+ then true
143+ else (t.feeAssetId == btnf))
144+ then allowedAddrSponsoredFee(addressFromRecipient(t.recipient))
145+ else throw("Operação não autorizada para contas centralizadas na Plataforma BitNodes")
138146 case o: Order =>
139- let price = allowedTransferTokens(o.assetPair.priceAsset)
140- if (!(price))
141- then throw("price não foi reconhecido")
142- else throw("price foi reconhecido")
147+ throw(("+" + toString(allowedTransferTokens(o.assetPair.priceAsset))))
143148 case e: ExchangeTransaction =>
144149 true
145150 case burn: BurnTransaction =>
146151 verifier(usersAddr)
147152 case d: DataTransaction =>
148153 verifier(usersAddr)
149154 case s: SetScriptTransaction =>
150155 true
151156 case l: LeaseTransaction =>
152157 allowedAddrSponsoredFee(addressFromRecipient(l.recipient))
153158 case c: LeaseCancelTransaction =>
154159 verifier(this)
155160 case _ =>
156161 true
157162 }

github/deemru/w8io/169f3d6 
29.46 ms