tx · H3BUf9BdPBDgD5G1ExH3jt4kCCE7MRh4j8oTBmAZxWEM

3NA1zc7miK3bRpabCkfdAy3ugT1abEH4XvC:  -0.01400000 Waves

2021.02.01 13:08 [1378964] smart account 3NA1zc7miK3bRpabCkfdAy3ugT1abEH4XvC > SELF 0.00000000 Waves

{ "type": 13, "id": "H3BUf9BdPBDgD5G1ExH3jt4kCCE7MRh4j8oTBmAZxWEM", "fee": 1400000, "feeAssetId": null, "timestamp": 1612174124614, "version": 2, "chainId": 84, "sender": "3NA1zc7miK3bRpabCkfdAy3ugT1abEH4XvC", "senderPublicKey": "FGEpfdbsnGgv2u4E4kJ7aJdEoww9djxfupn8jGYjrxYu", "proofs": [ "5XjMVPUkbVC6i7SMx6ZF2e5tbG4ygQQf52YTArocFD4BJXMZKMfnvUQb7VfKF4uQ7rzLb1XJuSpAiDxMCXownvic", "V8CWYKofiNcBXDeLtbzHHPRzWiwLC8LfVSWGAbjLy7hcbms7Mf7rLmh2w5WCSY8pmJqQcAgixrP5p5PSP57Urgx" ], "script": "base64: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BQAAAANmZWUCAAAAEyBmZWVBbW91bnQgaXMgd3JvbmcKAQAAAAlnZXRTdGF0dXMAAAABAAAAA2tleQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAAAtkaWdpbGlyYVBheQkAAlgAAAABBQAAAANrZXkAAAAAAAAAAAAEAAAAByRtYXRjaDAFAAAAAnR4AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABNUcmFuc2ZlclRyYW5zYWN0aW9uBAAAAAF3BQAAAAckbWF0Y2gwBAAAAAhteVN0YXR1cwkBAAAACWdldFN0YXR1cwAAAAEICAUAAAABdwAAAAZzZW5kZXIAAAAFYnl0ZXMEAAAAD3JlY2lwaWVudFN0YXR1cwkBAAAACWdldFN0YXR1cwAAAAEICQAEJAAAAAEIBQAAAAF3AAAACXJlY2lwaWVudAAAAAVieXRlcwQAAAALYXNzZXRTdGF0dXMJAQAAAAlnZXRTdGF0dXMAAAABCQEAAAALdmFsdWVPckVsc2UAAAACCAUAAAABdwAAAAdhc3NldElkBQAAAApwcm94eVdhdmVzBAAAABFkaWdpbGlyYVJlY2lwaWVudAkAAGYAAAACBQAAAA9yZWNpcGllbnRTdGF0dXMAAAAAAAAAAAAEAAAADm15U3RhdHVzQmFubmVkCQAAAAAAAAIFAAAACG15U3RhdHVzBQAAAAZiYW5uZWQEAAAAFXJlY2lwaWVudFN0YXR1c0Jhbm5lZAkAAAAAAAACBQAAAA9yZWNpcGllbnRTdGF0dXMFAAAABmJhbm5lZAQAAAARYXNzZXRTdGF0dXNCYW5uZWQJAAAAAAAAAgUAAAALYXNzZXRTdGF0dXMFAAAABmJhbm5lZAQAAAAPc29tZXRoaW5nQmFubmVkAwMFAAAADm15U3RhdHVzQmFubmVkBgUAAAAVcmVjaXBpZW50U3RhdHVzQmFubmVkBgUAAAARYXNzZXRTdGF0dXNCYW5uZWQEAAAAEmlzRmVlUmVjb3ZlcnlUb2tlbgkAAAAAAAACCAUAAAABdwAAAApmZWVBc3NldElkBQAAAA1yZWNvdmVyeVRva2VuBAAAABJpc1JlY2lwaWVudEdhdGV3YXkJAAAAAAAAAggFAAAAAXcAAAAJcmVjaXBpZW50CQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAAAdnYXRld2F5BAAAABFpc0ZlZVBheW1lbnRUb2tlbgkAAAAAAAACCAUAAAABdwAAAApmZWVBc3NldElkBQAAAAxwYXltZW50VG9rZW4EAAAAEWlzRmVlU3BvbnNvclRva2VuCQAAAAAAAAIIBQAAAAF3AAAACmZlZUFzc2V0SWQFAAAADHNwb25zb3JUb2tlbgQAAAAQaXNFeGNsdXNpdmVUb2tlbgkAAAAAAAACBQAAAA9kaWdpbGlyYVBheU9ubHkJAQAAAAt2YWx1ZU9yRWxzZQAAAAIFAAAAC2Fzc2V0U3RhdHVzAAAAAAAAAAAABAAAABZpc0RpZ2lsaXJhUGF5RXhjbHVzaXZlCQAAZgAAAAIFAAAAD2RpZ2lsaXJhUGF5T25seQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgUAAAALYXNzZXRTdGF0dXMAAAAAAAAAAAAEAAAAFnBlcm1pc3Npb25UcmFuc2ZlclRvRFADCQAAZgAAAAIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIFAAAAC2Fzc2V0U3RhdHVzBQAAAAZiYW5uZWQJAQAAAAt2YWx1ZU9yRWxzZQAAAAIFAAAAD3JlY2lwaWVudFN0YXR1cwAAAAAAAAAAAAYJAABmAAAAAgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgUAAAALYXNzZXRTdGF0dXMFAAAABmJhbm5lZAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgUAAAAIbXlTdGF0dXMAAAAAAAAAAAAEAAAAEXBlcm1pc3Npb25QYXltZW50AwkAAGYAAAACBQAAAAlmdW5kQmxvY2sJAQAAAAt2YWx1ZU9yRWxzZQAAAAIFAAAAC2Fzc2V0U3RhdHVzAAAAAAAAAAAACQAAZwAAAAIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIFAAAAC2Fzc2V0U3RhdHVzAAAAAAAAAAAABQAAAAxwYXltZW50QmxvY2sHBAAAABdwZXJtaXNzaW9uVHJhbnNmZXJOb3REUAMJAABmAAAAAgUAAAANdHJhbnNmZXJCbG9jawkBAAAAC3ZhbHVlT3JFbHNlAAAAAgUAAAALYXNzZXRTdGF0dXMAAAAAAAAAAAAGCQAAZwAAAAIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIFAAAAC2Fzc2V0U3RhdHVzAAAAAAAAAAAABQAAABBwYXltZW50RnVuZEJsb2NrBAAAAAppc1JlY292ZXJ5AwMDBQAAABFkaWdpbGlyYVJlY2lwaWVudAUAAAASaXNGZWVSZWNvdmVyeVRva2VuBwUAAAASaXNSZWNpcGllbnRHYXRld2F5BwUAAAAObXlTdGF0dXNCYW5uZWQHAwMFAAAACmlzUmVjb3ZlcnkJAQAAAAhyZWNvdmVyeQAAAAAHBgMFAAAAEWRpZ2lsaXJhUmVjaXBpZW50BAAAAAZwcm9sb2cCAAAAI1RyYW5zZmVyIHRvIERpZ2lsaXJhUGF5IHJlY2lwaWVudDogAwUAAAAObXlTdGF0dXNCYW5uZWQJAAACAAAAAQkAASwAAAACBQAAAAZwcm9sb2cCAAAAIFRoaXMgYWNjb3VudCBoYXMgYmVlbiBzdXNwZW5kZWQuAwUAAAAVcmVjaXBpZW50U3RhdHVzQmFubmVkCQAAAgAAAAEJAAEsAAAAAgUAAAAGcHJvbG9nAgAAACdSZWNpcGllbnQncyBhY2NvdW50IGhhcyBiZWVuIHN1c3BlbmRlZC4DBQAAABFhc3NldFN0YXR1c0Jhbm5lZAkAAAIAAAABCQABLAAAAAIFAAAABnByb2xvZwIAAAAbQXNzZXQgY2Fubm90IGJlIHRyYW5zZmVyZWQuAwUAAAAWcGVybWlzc2lvblRyYW5zZmVyVG9EUAkAAAIAAAABCQABLAAAAAIFAAAABnByb2xvZwIAAAA9QXNzZXQgY2Fubm90IGJlIHRyYW5zZmVyZWQuIFJlY2lwaWVudC9TZW5kZXIgaXMgbm90IGVsaWdpYmxlLgMFAAAAFmlzRGlnaWxpcmFQYXlFeGNsdXNpdmUJAAACAAAAAQkAASwAAAACBQAAAAZwcm9sb2cCAAAAF05vbi1UcmFuc2ZlcmFibGUgVG9rZW4uAwUAAAASaXNSZWNpcGllbnRHYXRld2F5AwMFAAAAEXBlcm1pc3Npb25QYXltZW50BgUAAAAQaXNFeGNsdXNpdmVUb2tlbgkBAAAACGNoZWNrRmVlAAAAAQUAAAABdwkAAAIAAAABCQABLAAAAAIFAAAABnByb2xvZwIAAAAhQXNzZXQgY2Fubm90IGJlIHVzZWQgb24gcGF5bWVudHMuAwUAAAARaXNGZWVQYXltZW50VG9rZW4JAAACAAAAAQkAASwAAAACBQAAAAZwcm9sb2cCAAAAHVBheW1lbnQgVG9rZW4gY2Fubm90IGJlIHVzZWQuCQEAAAAIY2hlY2tGZWUAAAABBQAAAAF3BAAAAAZwcm9sb2cCAAAAJ1RyYW5zZmVyIHRvIG5vdCBEaWdpbGlyYVBheSByZWNpcGllbnQ6IAMFAAAAEWlzRmVlU3BvbnNvclRva2VuCQAAAgAAAAEJAAEsAAAAAgUAAAAGcHJvbG9nAgAAAB1TcG9uc29yIFRva2VuIGNhbm5vdCBiZSB1c2VkLgMFAAAAEWlzRmVlUGF5bWVudFRva2VuCQAAAgAAAAEJAAEsAAAAAgUAAAAGcHJvbG9nAgAAAB1QYXltZW50IFRva2VuIGNhbm5vdCBiZSB1c2VkLgMFAAAADm15U3RhdHVzQmFubmVkCQAAAgAAAAEJAAEsAAAAAgUAAAAGcHJvbG9nAgAAACBUaGlzIGFjY291bnQgaGFzIGJlZW4gc3VzcGVuZGVkLgMFAAAAF3Blcm1pc3Npb25UcmFuc2Zlck5vdERQCQAAAgAAAAEJAAEsAAAAAgUAAAAGcHJvbG9nAgAAACBUaGlzIGFzc2V0IGNhbm5vdCBiZSB0cmFuc2ZlcmVkLgkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXkDAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAA9EYXRhVHJhbnNhY3Rpb24GCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAFFNldFNjcmlwdFRyYW5zYWN0aW9uBAAAAAF0BQAAAAckbWF0Y2gwBAAAAAJzMQMJAAH0AAAAAwgFAAAAAXQAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAF0AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAXQAAAAPc2VuZGVyUHVibGljS2V5AAAAAAAAAAABAAAAAAAAAAAABAAAAAJzMgMJAAH0AAAAAwgFAAAAAXQAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAF0AAAABnByb29mcwAAAAAAAAAAAQUAAAALZGlnaWxpcmFQYXkAAAAAAAAAAAEAAAAAAAAAAAADCQAAAAAAAAIJAABkAAAAAgUAAAACczEFAAAAAnMyAAAAAAAAAAACBgkAAAIAAAABAgAAAAxVbmF1dGhvcml6ZWQJAQAAAAhyZWNvdmVyeQAAAAC5zE8q", "height": 1378964, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9mnGnSeyVCpPBest2zRM2Scz9jcmFPAQ2wz7AeJtiHF9 Next: DRqNbBA6C9nrbV7fukuLUU2CxVMwrzUHwzaRyfnLgqn4 Diff:
OldNewDifferences
7070 let myStatusBanned = (myStatus == banned)
7171 let recipientStatusBanned = (recipientStatus == banned)
7272 let assetStatusBanned = (assetStatus == banned)
73+ let somethingBanned = if (if (myStatusBanned)
74+ then true
75+ else recipientStatusBanned)
76+ then true
77+ else assetStatusBanned
7378 let isFeeRecoveryToken = (w.feeAssetId == recoveryToken)
7479 let isRecipientGateway = (w.recipient == addressFromPublicKey(gateway))
7580 let isFeePaymentToken = (w.feeAssetId == paymentToken)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# CONTENT_TYPE EXPRESSION #-}
33 let digiliraPay = base58'57EFni8M1XesEurFh3c4jnpLExP2PCPd5TRrwMjePAT4'
44 let gateway = base58'57EFni8M1XesEurFh3c4jnpLExP2PCPd5TRrwMjePAT4'
55 let sponsorToken = base58'7GnHzTaDe3YbDiCD9rueHiSfPB7hdanPpN4Ab79fJGtD'
66 let paymentToken = base58'FLsa9hfu1jvXC6jhDP2x6DHHQHK2qiKPtS7D74ZFNsE1'
77 let recoveryToken = base58'FLsa9hfu1jvXC6jhDP2x6DHHQHK2qiKPtS7D74ZFNsE1'
88 let proxyWaves = base58'WAVES'
99 let recovery1 = base58'57EFni8M1XesEurFh3c4jnpLExP2PCPd5TRrwMjePAT4'
1010 let recovery2 = base58'57EFni8M1XesEurFh3c4jnpLExP2PCPd5TRrwMjePAT4'
1111 let recovery3 = base58'57EFni8M1XesEurFh3c4jnpLExP2PCPd5TRrwMjePAT4'
1212 let banned = 403000
1313 let digiliraPayOnly = 99
1414 let transferBlock = 100
1515 let paymentBlock = 200
1616 let paymentFundBlock = 300
1717 let fundBlock = 400
1818 func recovery () = {
1919 let s1 = if (sigVerify(tx.bodyBytes, tx.proofs[0], recovery1))
2020 then 1
2121 else 0
2222 let s2 = if (sigVerify(tx.bodyBytes, tx.proofs[1], recovery2))
2323 then 1
2424 else 0
2525 let s3 = if (sigVerify(tx.bodyBytes, tx.proofs[2], recovery3))
2626 then 1
2727 else 0
2828 if ((((s1 + s2) + s3) >= 2))
2929 then true
3030 else throw("Unauthorized")
3131 }
3232
3333 func checkFee (w) = {
3434 let fee = w.fee
3535 let isFeePaymentToken = (w.feeAssetId == paymentToken)
3636 let isFeeSponsorToken = (w.feeAssetId == sponsorToken)
3737 let unScriptedFee = 5
3838 let scriptedFee = 9
3939 let isScripted = match assetInfo(valueOrElse(w.assetId, proxyWaves)) {
4040 case asset: Asset =>
4141 if (asset.scripted)
4242 then true
4343 else false
4444 case _ =>
4545 false
4646 }
4747 if (if (!(isFeePaymentToken))
4848 then !(isFeeSponsorToken)
4949 else false)
5050 then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
5151 else if (if (if (isScripted)
5252 then (fee == scriptedFee)
5353 else false)
5454 then true
5555 else if (!(isScripted))
5656 then (fee == unScriptedFee)
5757 else false)
5858 then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
5959 else throw((toString(fee) + " feeAmount is wrong"))
6060 }
6161
6262 func getStatus (key) = valueOrElse(getInteger(addressFromPublicKey(digiliraPay), toBase58String(key)), 0)
6363
6464 match tx {
6565 case w: TransferTransaction =>
6666 let myStatus = getStatus(w.sender.bytes)
6767 let recipientStatus = getStatus(addressFromRecipient(w.recipient).bytes)
6868 let assetStatus = getStatus(valueOrElse(w.assetId, proxyWaves))
6969 let digiliraRecipient = (recipientStatus > 0)
7070 let myStatusBanned = (myStatus == banned)
7171 let recipientStatusBanned = (recipientStatus == banned)
7272 let assetStatusBanned = (assetStatus == banned)
73+ let somethingBanned = if (if (myStatusBanned)
74+ then true
75+ else recipientStatusBanned)
76+ then true
77+ else assetStatusBanned
7378 let isFeeRecoveryToken = (w.feeAssetId == recoveryToken)
7479 let isRecipientGateway = (w.recipient == addressFromPublicKey(gateway))
7580 let isFeePaymentToken = (w.feeAssetId == paymentToken)
7681 let isFeeSponsorToken = (w.feeAssetId == sponsorToken)
7782 let isExclusiveToken = (digiliraPayOnly == valueOrElse(assetStatus, 0))
7883 let isDigiliraPayExclusive = (digiliraPayOnly > valueOrElse(assetStatus, 0))
7984 let permissionTransferToDP = if ((valueOrElse(assetStatus, banned) > valueOrElse(recipientStatus, 0)))
8085 then true
8186 else (valueOrElse(assetStatus, banned) > valueOrElse(myStatus, 0))
8287 let permissionPayment = if ((fundBlock > valueOrElse(assetStatus, 0)))
8388 then (valueOrElse(assetStatus, 0) >= paymentBlock)
8489 else false
8590 let permissionTransferNotDP = if ((transferBlock > valueOrElse(assetStatus, 0)))
8691 then true
8792 else (valueOrElse(assetStatus, 0) >= paymentFundBlock)
8893 let isRecovery = if (if (if (digiliraRecipient)
8994 then isFeeRecoveryToken
9095 else false)
9196 then isRecipientGateway
9297 else false)
9398 then myStatusBanned
9499 else false
95100 if (if (isRecovery)
96101 then recovery()
97102 else false)
98103 then true
99104 else if (digiliraRecipient)
100105 then {
101106 let prolog = "Transfer to DigiliraPay recipient: "
102107 if (myStatusBanned)
103108 then throw((prolog + "This account has been suspended."))
104109 else if (recipientStatusBanned)
105110 then throw((prolog + "Recipient's account has been suspended."))
106111 else if (assetStatusBanned)
107112 then throw((prolog + "Asset cannot be transfered."))
108113 else if (permissionTransferToDP)
109114 then throw((prolog + "Asset cannot be transfered. Recipient/Sender is not eligible."))
110115 else if (isDigiliraPayExclusive)
111116 then throw((prolog + "Non-Transferable Token."))
112117 else if (isRecipientGateway)
113118 then if (if (permissionPayment)
114119 then true
115120 else isExclusiveToken)
116121 then checkFee(w)
117122 else throw((prolog + "Asset cannot be used on payments."))
118123 else if (isFeePaymentToken)
119124 then throw((prolog + "Payment Token cannot be used."))
120125 else checkFee(w)
121126 }
122127 else {
123128 let prolog = "Transfer to not DigiliraPay recipient: "
124129 if (isFeeSponsorToken)
125130 then throw((prolog + "Sponsor Token cannot be used."))
126131 else if (isFeePaymentToken)
127132 then throw((prolog + "Payment Token cannot be used."))
128133 else if (myStatusBanned)
129134 then throw((prolog + "This account has been suspended."))
130135 else if (permissionTransferNotDP)
131136 then throw((prolog + "This asset cannot be transfered."))
132137 else sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
133138 }
134139 case t: DataTransaction|SetScriptTransaction =>
135140 let s1 = if (sigVerify(t.bodyBytes, t.proofs[0], t.senderPublicKey))
136141 then 1
137142 else 0
138143 let s2 = if (sigVerify(t.bodyBytes, t.proofs[1], digiliraPay))
139144 then 1
140145 else 0
141146 if (((s1 + s2) == 2))
142147 then true
143148 else throw("Unauthorized")
144149 case _ =>
145150 recovery()
146151 }

github/deemru/w8io/026f985 
34.69 ms