2021.02.01 15:58 [2442886] smart account 3P5j5X3pnCoekLdzEi9VnSp1EhtkSx7RFQa > SELF 0.00000000 Waves

{ "type": 13, "id": "AqSmfo8BYP1jAqN5CLDk6sdtuTnH34WxumtiyVKL61yW", "fee": 1400000, "feeAssetId": null, "timestamp": 1612184342000, "version": 1, "sender": "3P5j5X3pnCoekLdzEi9VnSp1EhtkSx7RFQa", "senderPublicKey": "9ggjtodAeBcEXiqKuN961nZDPNjdaojZxVakeDdCax95", "proofs": [ "4w1mQNC2uujTwo9D2s1atABrysMjuMavuqtekkCo2gLtK2nygBvMYnNqpVJQ1LJAoc3RfrL1H9uZRBdt1S26Z1nb" ], "script": "base64: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", "chainId": 87, "height": 2442886, "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'2tKRd22A8nkVNjtgT7JJxqSR8D9EA2RfsprJt35jw8Hr'
10+let recovery2 = base58'9cxzRSwiomyztUboaxherWQUUMGqZ3yX2nYrUa6XR9bT'
11+let recovery3 = base58'BCAaT65dW2nviLrwdqtoWFJP9D8z3576qFYKkHQ4wxPt'
12+let banned = 403000
13+let digiliraPayOnly = 99
14+let transferBlock = 100
15+let paymentBlock = 200
16+let paymentFundBlock = 300
17+let fundBlock = 400
18+func recovery (w) = {
19+ let s1 = if (sigVerify(tx.bodyBytes, tx.proofs[0], recovery1))
20+ then 1
21+ else 0
22+ let s2 = if (sigVerify(tx.bodyBytes, tx.proofs[1], recovery2))
23+ then 1
24+ else 0
25+ let s3 = if (sigVerify(tx.bodyBytes, tx.proofs[2], recovery3))
26+ then 1
27+ else 0
28+ if ((((s1 + s2) + s3) >= 2))
29+ then true
30+ else throw("Unauthorized")
31+ }
32+
33+match tx {
34+ case w: TransferTransaction =>
35+ let myStatus = getInteger(addressFromPublicKey(digiliraPay), toBase58String(w.sender.bytes))
36+ let isUser = getInteger(addressFromPublicKey(digiliraPay), toBase58String(addressFromRecipient(w.recipient).bytes))
37+ let isAsset = getInteger(addressFromPublicKey(digiliraPay), toBase58String(valueOrElse(w.assetId, proxyWaves)))
38+ if (isDefined(isUser))
39+ then if (if (if (if (if (if ((isUser == banned))
40+ then true
41+ else (isAsset == banned))
42+ then true
43+ else (myStatus == banned))
44+ then true
45+ else (valueOrElse(isAsset, banned) > valueOrElse(isUser, 0)))
46+ then true
47+ else (valueOrElse(isAsset, banned) > valueOrElse(myStatus, 0)))
48+ then true
49+ else (digiliraPayOnly > valueOrElse(isAsset, 0)))
50+ then if (if (if ((w.feeAssetId == recoveryToken))
51+ then (w.recipient == addressFromPublicKey(gateway))
52+ else false)
53+ then (myStatus == banned)
54+ else false)
55+ then recovery(w)
56+ else throw("Transfer is not available right now. User banned or permission denied")
57+ else if ((w.recipient == addressFromPublicKey(gateway)))
58+ then if (if ((fundBlock > valueOrElse(isAsset, 0)))
59+ then (valueOrElse(isAsset, 0) >= paymentBlock)
60+ else false)
61+ then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
62+ else throw("Transfer is not available right now. Asset cannot be used on payment transactions.")
63+ else if ((w.feeAssetId != paymentToken))
64+ then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
65+ else throw("Transfer is not available right now. Payment Fee Token")
66+ else if (if (if (if (if ((w.feeAssetId == sponsorToken))
67+ then true
68+ else (w.feeAssetId == paymentToken))
69+ then true
70+ else (myStatus == banned))
71+ then true
72+ else (transferBlock > valueOrElse(isAsset, 0)))
73+ then true
74+ else (valueOrElse(isAsset, 0) >= paymentFundBlock))
75+ then throw("Transfer is not available right now.")
76+ else sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
77+ case t: DataTransaction|SetScriptTransaction =>
78+ sigVerify(t.bodyBytes, t.proofs[1], digiliraPay)
79+ case _ =>
80+ false
81+}

github/deemru/w8io/786bc32 
36.29 ms