tx · 4mxEdVyNnHwct4Ji9LeP7CpzBYozo6tB4537HSejTu8p

3PDBFDdqkVALfGX3vZPvY5Tt34ZaiMefCnj:  -0.01400000 Waves

2021.01.27 07:18 [2435132] smart account 3PDBFDdqkVALfGX3vZPvY5Tt34ZaiMefCnj > SELF 0.00000000 Waves

{ "type": 13, "id": "4mxEdVyNnHwct4Ji9LeP7CpzBYozo6tB4537HSejTu8p", "fee": 1400000, "feeAssetId": null, "timestamp": 1611721168000, "version": 1, "sender": "3PDBFDdqkVALfGX3vZPvY5Tt34ZaiMefCnj", "senderPublicKey": "FiGG38dAPy9e2s5gN516DzF4LvVwMZwK2Uq49Z96Qvbd", "proofs": [ "3FgtfsxqJK8tCaogztRCTM76kagfPcBVQzvW6t3Wa2G7hNnvAGATPkr6ZPHk8Pnt8v7sFXrr1PeFU3sz5b8kQgZi" ], "script": "base64:BAQAAAALZGlnaWxpcmFQYXkBAAAAIDmVR3u/lZNrOpSSFxXLNtmTNVImj2b1GDQDKuAGDRolBAAAAAdnYXRld2F5AQAAACCO6r+3LgkpuiH8C5rOMI2/PNFUO7GqL1vKuVFNZDBuXgQAAAAMc3BvbnNvclRva2VuAQAAACDyxQcsnqlaXS/AKeKbGhUub9BxFmel2Oftrg3Rz2gc3QQAAAAMcGF5bWVudFRva2VuAQAAACDw2iKNQDJjGfbIVQ1tkK3gOKtCC1S+TyWTMj/j2m2ysAQAAAANcmVjb3ZlcnlUb2tlbgEAAAAg8pmg2pc9aaHJXVMcEXqzU0vW0id96e5Cg7Kfl9nQDSIEAAAACnByb3h5V2F2ZXMBAAAABBOr2TMEAAAACXJlY292ZXJ5MQEAAAAgOZVHe7+Vk2s6lJIXFcs22ZM1UiaPZvUYNAMq4AYNGiUEAAAACXJlY292ZXJ5MgEAAAAgjuq/ty4JKboh/AuazjCNvzzRVDuxqi9byrlRTWQwbl4EAAAACXJlY292ZXJ5MwEAAAAgl3EWKyJtoVUHwaD2oFWXbVNAr10G2Yfss7W/hHClHGsEAAAABmJhbm5lZAAAAAAAAAYmOAQAAAAKS1lDUGVuZGluZwAAAAAAAAAAAAQAAAAQbm9uRnVuZ2libGVCbG9jawAAAAAAAAAAMgQAAAANdHJhbnNmZXJCbG9jawAAAAAAAAAAZAQAAAAMcGF5bWVudEJsb2NrAAAAAAAAAADIBAAAAAlmdW5kQmxvY2sAAAAAAAAAASwEAAAAEHBheW1lbnRGdW5kQmxvY2sAAAAAAAAAAZAEAAAACnVwcGVyQmxvY2sAAAAAAAAAAfQEAAAAByRtYXRjaDAFAAAAAnR4AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABNUcmFuc2ZlclRyYW5zYWN0aW9uBAAAAAF3BQAAAAckbWF0Y2gwBAAAAAhteVN0YXR1cwkABBoAAAACCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAAAtkaWdpbGlyYVBheQkAAlgAAAABCAgFAAAAAXcAAAAGc2VuZGVyAAAABWJ5dGVzBAAAAAZpc1VzZXIJAAQaAAAAAgkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAALZGlnaWxpcmFQYXkJAAJYAAAAAQgJAAQkAAAAAQgFAAAAAXcAAAAJcmVjaXBpZW50AAAABWJ5dGVzBAAAAAhmZWVUb2tlbggFAAAAAXcAAAAKZmVlQXNzZXRJZAQAAAAJZmVlQW1vdW50CAUAAAABdwAAAANmZWUEAAAABWFzc2V0CQEAAAALdmFsdWVPckVsc2UAAAACCAUAAAABdwAAAAdhc3NldElkBQAAAApwcm94eVdhdmVzBAAAAAdpc0Fzc2V0CQAEGgAAAAIJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAAC2RpZ2lsaXJhUGF5CQACWAAAAAEFAAAABWFzc2V0AwkBAAAACWlzRGVmaW5lZAAAAAEFAAAABmlzVXNlcgMJAQAAAAlpc0RlZmluZWQAAAABBQAAAAhmZWVUb2tlbgMJAAAAAAAAAgUAAAAIZmVlVG9rZW4FAAAADHNwb25zb3JUb2tlbgMJAQAAAAlpc0RlZmluZWQAAAABBQAAAAdpc0Fzc2V0AwkAAAAAAAACBQAAAAdpc0Fzc2V0BQAAAAZiYW5uZWQJAAACAAAAAQIAAAAgVGhpcyBhc3NldCBjYW5ub3QgYmUgdHJhbnNmZXJlZC4DAwkAAGcAAAACCQEAAAALdmFsdWVPckVsc2UAAAACBQAAAAdpc0Fzc2V0BQAAAAZiYW5uZWQFAAAADXRyYW5zZmVyQmxvY2sJAABnAAAAAgUAAAAKdXBwZXJCbG9jawkBAAAAC3ZhbHVlT3JFbHNlAAAAAgUAAAAHaXNBc3NldAUAAAAGYmFubmVkBwMDCQAAZwAAAAIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIFAAAABmlzVXNlcgAAAAAAAAAAAAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgUAAAAHaXNBc3NldAUAAAAGYmFubmVkCQAAZwAAAAIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIFAAAACG15U3RhdHVzAAAAAAAAAAAACQEAAAALdmFsdWVPckVsc2UAAAACBQAAAAdpc0Fzc2V0BQAAAAZiYW5uZWQHBgkAAAIAAAABAgAAAD1UbyB0cmFuc2ZlciB0aGlzIGFzc2V0IHVzZXIgcGVybWlzc2lvbiBtdXN0IGJlIHNldCBjb3JyZWN0bHkuCQAAAgAAAAECAAAAJFRyYW5zZmVyIGlzIG5vdCBhdmFpbGFibGUgcmlnaHQgbm93LgYDCQAAAAAAAAIFAAAACGZlZVRva2VuBQAAAAxwYXltZW50VG9rZW4DCQAAAAAAAAIIBQAAAAF3AAAACXJlY2lwaWVudAkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAAHZ2F0ZXdheQMJAAAAAAAAAgUAAAAIbXlTdGF0dXMFAAAACktZQ1BlbmRpbmcJAAACAAAAAQIAAAALS1lDIFBlbmRpbmcDCQAAAAAAAAIFAAAACG15U3RhdHVzBQAAAAZiYW5uZWQJAAACAAAAAQIAAAAzQWNjb3VudCBoYXMgYmVlbiBiYW5uZWQgcGF5bWVudCBvcHRpb24gaXMgZGlzYWJsZWQuAwkAAGYAAAACBQAAAAlmZWVBbW91bnQAAAAAAAAAAAoJAAACAAAAAQIAAAALTm90IGFsbG93ZWQDCQAAAAAAAAIFAAAAB2lzQXNzZXQFAAAABmJhbm5lZAkAAAIAAAABAgAAABpUaGlzIGFzc2V0IGhhcyBiZWVuIGxvY2tlZAMDAwkAAGcAAAACCQEAAAALdmFsdWVPckVsc2UAAAACBQAAAAdpc0Fzc2V0BQAAAAZiYW5uZWQFAAAADHBheW1lbnRCbG9jawkAAGcAAAACBQAAAAlmdW5kQmxvY2sJAQAAAAt2YWx1ZU9yRWxzZQAAAAIFAAAAB2lzQXNzZXQFAAAABmJhbm5lZAcGAwkAAGcAAAACCQEAAAALdmFsdWVPckVsc2UAAAACBQAAAAdpc0Fzc2V0BQAAAAZiYW5uZWQFAAAAEHBheW1lbnRGdW5kQmxvY2sJAABnAAAAAgUAAAAKdXBwZXJCbG9jawkBAAAAC3ZhbHVlT3JFbHNlAAAAAgUAAAAHaXNBc3NldAUAAAAGYmFubmVkBwMJAABnAAAAAgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgUAAAAIbXlTdGF0dXMAAAAAAAAAAAAJAQAAAAt2YWx1ZU9yRWxzZQAAAAIFAAAAB2lzQXNzZXQFAAAABmJhbm5lZAYJAAACAAAAAQIAAAA7WW91IGNhbiBob2xkIHRoaXMgdG9rZW4gYnV0IHlvdSBjYW5ub3QgdXNlIGl0IGZvciBwYXltZW50cy4JAAACAAAAAQIAAAAnVGhpcyBhc3NldCBjYW5ub3QgYmUgdXNlZCBmb3IgcGF5bWVudHMuCQAAAgAAAAECAAAAQFVuZm9ydHVuYXRlbHkgeW91IGNhbiBvbmx5IHVzZSB0aGlzIHRva2VuIGZvciBwYXltZW50IHRyYW5zZmVycy4DCQAAAAAAAAIFAAAACGZlZVRva2VuBQAAAA1yZWNvdmVyeVRva2VuAwkAAAAAAAACCAUAAAABdwAAAAlyZWNpcGllbnQJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAAB2dhdGV3YXkDCQAAAAAAAAIFAAAACG15U3RhdHVzBQAAAAZiYW5uZWQEAAAAD3JlY292ZXJ5MVNpZ25lZAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAABQAAAAlyZWNvdmVyeTEAAAAAAAAAAAEAAAAAAAAAAAAEAAAAD3JlY292ZXJ5MlNpZ25lZAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAABBQAAAAlyZWNvdmVyeTIAAAAAAAAAAAEAAAAAAAAAAAAEAAAAD3JlY292ZXJ5M1NpZ25lZAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAACBQAAAAlyZWNvdmVyeTMAAAAAAAAAAAEAAAAAAAAAAAADCQAAZwAAAAIJAABkAAAAAgkAAGQAAAACBQAAAA9yZWNvdmVyeTFTaWduZWQFAAAAD3JlY292ZXJ5MlNpZ25lZAUAAAAPcmVjb3ZlcnkyU2lnbmVkAAAAAAAAAAACBgkAAAIAAAABAgAAAAxVbmF1dGhvcml6ZWQJAAACAAAAAQIAAAAMVW5hdXRob3JpemVkCQAAAgAAAAECAAAADFVuYXV0aG9yaXplZAMJAQAAAAlpc0RlZmluZWQAAAABBQAAAAdpc0Fzc2V0AwkAAAAAAAACBQAAAAdpc0Fzc2V0BQAAAAZiYW5uZWQJAAACAAAAAQIAAAAgVGhpcyBhc3NldCBjYW5ub3QgYmUgdHJhbnNmZXJlZC4DAwkAAGcAAAACCQEAAAALdmFsdWVPckVsc2UAAAACBQAAAAZpc1VzZXIAAAAAAAAAAAAJAQAAAAt2YWx1ZU9yRWxzZQAAAAIFAAAAB2lzQXNzZXQFAAAABmJhbm5lZAkAAGcAAAACCQEAAAALdmFsdWVPckVsc2UAAAACBQAAAAhteVN0YXR1cwAAAAAAAAAAAAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgUAAAAHaXNBc3NldAUAAAAGYmFubmVkBwYJAAACAAAAAQIAAABAWW91IGNhbiBob2xkIHRoaXMgdG9rZW4gYnV0IHlvdSBjYW5ub3QgdHJhbnNmZXIgdG8gYW5vdGhlciB1c2VyLgYDCQEAAAAJaXNEZWZpbmVkAAAAAQUAAAAHaXNBc3NldAMJAAAAAAAAAgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgUAAAAHaXNBc3NldAAAAAAAAAAAAAUAAAAGYmFubmVkCQAAAgAAAAECAAAAG0NhbiBub3QgdHJhbnNmZXIgdGhpcyBhc3NldAMDCQAAZwAAAAIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIFAAAABmlzVXNlcgAAAAAAAAAAAAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgUAAAAHaXNBc3NldAUAAAAGYmFubmVkCQAAZwAAAAIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIFAAAACG15U3RhdHVzAAAAAAAAAAAACQEAAAALdmFsdWVPckVsc2UAAAACBQAAAAdpc0Fzc2V0BQAAAAZiYW5uZWQHBgkAAAIAAAABAgAAAEBZb3UgY2FuIGhvbGQgdGhpcyB0b2tlbiBidXQgeW91IGNhbm5vdCB0cmFuc2ZlciB0byBhbm90aGVyIHVzZXIuBgMJAQAAAAlpc0RlZmluZWQAAAABBQAAAAdpc0Fzc2V0AwMJAABnAAAAAgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgUAAAAHaXNBc3NldAUAAAAGYmFubmVkBQAAAA10cmFuc2ZlckJsb2NrCQAAZwAAAAIFAAAACWZ1bmRCbG9jawkBAAAAC3ZhbHVlT3JFbHNlAAAAAgUAAAAHaXNBc3NldAUAAAAGYmFubmVkBwYJAAACAAAAAQIAAAA1Q2Fubm90IHRyYW5zZmVyIHRoaXMgdG9rZW4gdG8gbm9uZSBEaWdpbGlyYVBheSB1c2Vycy4DCQEAAAAJaXNEZWZpbmVkAAAAAQUAAAAIZmVlVG9rZW4DCQAAAAAAAAIFAAAACGZlZVRva2VuBQAAAAxzcG9uc29yVG9rZW4JAAACAAAAAQIAAAA7Q2Fubm90IHVzZSB0aGlzIHRva2VuIGZvciBub25lIERpZ2lsaXJhUGF5IHVzZXJzIHRyYW5zZmVycy4DCQAAAAAAAAIFAAAACGZlZVRva2VuBQAAAAxwYXltZW50VG9rZW4JAAACAAAAAQIAAAA2VW5mb3J0dW5hdGVseSB5b3UgY2FuIG9ubHkgdXNlIHRoaXMgdG9rZW4gZm9yIHBheW1lbnRzBgYDAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAVPcmRlcgYDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAEExlYXNlVHJhbnNhY3Rpb24GCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAD0J1cm5UcmFuc2FjdGlvbgQAAAABeAUAAAAHJG1hdGNoMAcDAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAA9EYXRhVHJhbnNhY3Rpb24GAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABNFeGNoYW5nZVRyYW5zYWN0aW9uBgkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABRTZXRTY3JpcHRUcmFuc2FjdGlvbgQAAAABdAUAAAAHJG1hdGNoMAkAAfQAAAADCAUAAAABdAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAXQAAAAGcHJvb2ZzAAAAAAAAAAABBQAAAAtkaWdpbGlyYVBheQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAXTWFzc1RyYW5zZmVyVHJhbnNhY3Rpb24EAAAAA210dAUAAAAHJG1hdGNoMAcGRx++gw==", "chainId": 87, "height": 2435132, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 4 #-}
2+{-# CONTENT_TYPE EXPRESSION #-}
3+let digiliraPay = base58'4snGCeL4Wjopx9awWd7pfdqUYyN1CLqbPz66bn7VY8oe'
4+let gateway = base58'ActWMpdeyp8YHRhLxXmwdJmr37VXGgb44m8DuSVJW3k1'
5+let sponsorToken = base58'HLfv6YiY1ZpDktcKL9R79FTcez9WdMjaeMWxhREGcAqr'
6+let paymentToken = base58'HDBmVe4MFyVdh1Jy48m9XqXiHAVuNbwFB8dPskVMHS6B'
7+let recoveryToken = base58'HL1XtTLSdKMxB8LrkRYszqwtiSRepGTBBdnyrCqgaEVX'
8+let proxyWaves = base58'WAVES'
9+let recovery1 = base58'4snGCeL4Wjopx9awWd7pfdqUYyN1CLqbPz66bn7VY8oe'
10+let recovery2 = base58'ActWMpdeyp8YHRhLxXmwdJmr37VXGgb44m8DuSVJW3k1'
11+let recovery3 = base58'BCAaT65dW2nviLrwdqtoWFJP9D8z3576qFYKkHQ4wxPt'
12+let banned = 403000
13+let KYCPending = 0
14+let nonFungibleBlock = 50
15+let transferBlock = 100
16+let paymentBlock = 200
17+let fundBlock = 300
18+let paymentFundBlock = 400
19+let upperBlock = 500
20+match tx {
21+ case w: TransferTransaction =>
22+ let myStatus = getInteger(addressFromPublicKey(digiliraPay), toBase58String(w.sender.bytes))
23+ let isUser = getInteger(addressFromPublicKey(digiliraPay), toBase58String(addressFromRecipient(w.recipient).bytes))
24+ let feeToken = w.feeAssetId
25+ let feeAmount = w.fee
26+ let asset = valueOrElse(w.assetId, proxyWaves)
27+ let isAsset = getInteger(addressFromPublicKey(digiliraPay), toBase58String(asset))
28+ if (isDefined(isUser))
29+ then if (isDefined(feeToken))
30+ then if ((feeToken == sponsorToken))
31+ then if (isDefined(isAsset))
32+ then if ((isAsset == banned))
33+ then throw("This asset cannot be transfered.")
34+ else if (if ((valueOrElse(isAsset, banned) >= transferBlock))
35+ then (upperBlock >= valueOrElse(isAsset, banned))
36+ else false)
37+ then if (if ((valueOrElse(isUser, 0) >= valueOrElse(isAsset, banned)))
38+ then (valueOrElse(myStatus, 0) >= valueOrElse(isAsset, banned))
39+ else false)
40+ then true
41+ else throw("To transfer this asset user permission must be set correctly.")
42+ else throw("Transfer is not available right now.")
43+ else true
44+ else if ((feeToken == paymentToken))
45+ then if ((w.recipient == addressFromPublicKey(gateway)))
46+ then if ((myStatus == KYCPending))
47+ then throw("KYC Pending")
48+ else if ((myStatus == banned))
49+ then throw("Account has been banned payment option is disabled.")
50+ else if ((feeAmount > 10))
51+ then throw("Not allowed")
52+ else if ((isAsset == banned))
53+ then throw("This asset has been locked")
54+ else if (if (if ((valueOrElse(isAsset, banned) >= paymentBlock))
55+ then (fundBlock >= valueOrElse(isAsset, banned))
56+ else false)
57+ then true
58+ else if ((valueOrElse(isAsset, banned) >= paymentFundBlock))
59+ then (upperBlock >= valueOrElse(isAsset, banned))
60+ else false)
61+ then if ((valueOrElse(myStatus, 0) >= valueOrElse(isAsset, banned)))
62+ then true
63+ else throw("You can hold this token but you cannot use it for payments.")
64+ else throw("This asset cannot be used for payments.")
65+ else throw("Unfortunately you can only use this token for payment transfers.")
66+ else if ((feeToken == recoveryToken))
67+ then if ((w.recipient == addressFromPublicKey(gateway)))
68+ then if ((myStatus == banned))
69+ then {
70+ let recovery1Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], recovery1))
71+ then 1
72+ else 0
73+ let recovery2Signed = if (sigVerify(tx.bodyBytes, tx.proofs[1], recovery2))
74+ then 1
75+ else 0
76+ let recovery3Signed = if (sigVerify(tx.bodyBytes, tx.proofs[2], recovery3))
77+ then 1
78+ else 0
79+ if ((((recovery1Signed + recovery2Signed) + recovery2Signed) >= 2))
80+ then true
81+ else throw("Unauthorized")
82+ }
83+ else throw("Unauthorized")
84+ else throw("Unauthorized")
85+ else if (isDefined(isAsset))
86+ then if ((isAsset == banned))
87+ then throw("This asset cannot be transfered.")
88+ else if (if ((valueOrElse(isUser, 0) >= valueOrElse(isAsset, banned)))
89+ then (valueOrElse(myStatus, 0) >= valueOrElse(isAsset, banned))
90+ else false)
91+ then true
92+ else throw("You can hold this token but you cannot transfer to another user.")
93+ else true
94+ else if (isDefined(isAsset))
95+ then if ((valueOrElse(isAsset, 0) == banned))
96+ then throw("Can not transfer this asset")
97+ else if (if ((valueOrElse(isUser, 0) >= valueOrElse(isAsset, banned)))
98+ then (valueOrElse(myStatus, 0) >= valueOrElse(isAsset, banned))
99+ else false)
100+ then true
101+ else throw("You can hold this token but you cannot transfer to another user.")
102+ else true
103+ else if (isDefined(isAsset))
104+ then if (if ((valueOrElse(isAsset, banned) >= transferBlock))
105+ then (fundBlock >= valueOrElse(isAsset, banned))
106+ else false)
107+ then true
108+ else throw("Cannot transfer this token to none DigiliraPay users.")
109+ else if (isDefined(feeToken))
110+ then if ((feeToken == sponsorToken))
111+ then throw("Cannot use this token for none DigiliraPay users transfers.")
112+ else if ((feeToken == paymentToken))
113+ then throw("Unfortunately you can only use this token for payments")
114+ else true
115+ else true
116+ case x: Order|LeaseTransaction|BurnTransaction =>
117+ false
118+ case t: DataTransaction|ExchangeTransaction|SetScriptTransaction =>
119+ sigVerify(t.bodyBytes, t.proofs[1], digiliraPay)
120+ case mtt: MassTransferTransaction =>
121+ false
122+ case _ =>
123+ true
124+}

github/deemru/w8io/6500d08 
25.32 ms