tx · 4eBu2boFdduc9ZT99y4hwaEBtMBeQ9pCpzvQTPrBwsgh

3NARWzNaChSw8Mpf8CZYavL4QWQvk3KUU8b:  -0.01400000 Waves

2019.08.20 00:13 [638570] smart account 3NARWzNaChSw8Mpf8CZYavL4QWQvk3KUU8b > SELF 0.00000000 Waves

{ "type": 13, "id": "4eBu2boFdduc9ZT99y4hwaEBtMBeQ9pCpzvQTPrBwsgh", "fee": 1400000, "feeAssetId": null, "timestamp": 1566249208797, "version": 1, "sender": "3NARWzNaChSw8Mpf8CZYavL4QWQvk3KUU8b", "senderPublicKey": "848RkjzRcJfyWuhGbq8NUFoLMpeDW8NbKu36H3SouHzF", "proofs": [ "3LPvZBq4edvbd6KbGortaqrLY32Moc5BqteCECMGunvYR2JpWEQX7UDWA6we6ubjhQLFxYkUA7NKiSQv3zYneKtz" ], "script": "base64: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", "chainId": 84, "height": 638570, "spentComplexity": 0 } View: original | compacted Prev: BU9GXXcaaYGgXHsLbVRQuJyTZLdZDgvQrPiH8uh4E3Fh Next: DjvNYJZfyVgzGAzF9UMbZBmFCryP4LunBVUDPq2heewU Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let ownerKey = "owner"
5-
64 let wavesToken = unit
75
86 func paymentOf (key) = ("payment_of_" + key)
119 func statusOf (key) = ("status_of_" + key)
1210
1311
14-let owner = addressFromStringValue(value(getString(this, ownerKey)))
12+let owner = addressFromStringValue("3NARWzNaChSw8Mpf8CZYavL4QWQvk3KUU8b")
1513
1614 func isPaymentPending (key) = match getString(this, statusOf(key)) {
1715 case s: String =>
2220
2321
2422 @Callable(i)
25-func init (owner,token) = if ((i.caller == this))
26- then WriteSet([DataEntry(ownerKey, owner)])
27- else throw("only dapp itself can init")
28-
29-
30-
31-@Callable(i)
3223 func setWaitToPayment (key,payment) = WriteSet([DataEntry(statusOf(key), "pending"), DataEntry(paymentOf(key), payment)])
3324
3425
3526
3627 @Callable(i)
37-func pay (key) = match i.payment {
38- case a: AttachedPayment =>
39- if ((a.assetId == wavesToken))
40- then {
41- let datas = WriteSet([DataEntry(statusOf(key), "paid")])
42- let payment = getIntegerValue(this, paymentOf(key))
43- ScriptResult(datas, TransferSet([ScriptTransfer(owner, payment, wavesToken)]))
44- }
45- else throw(("can only WAVES, but got " + toBase58String(value(a.assetId))))
46- case _ =>
47- throw("payment in assetTokens must be attached")
48-}
28+func pay (key) = if (isPaymentPending(key))
29+ then match i.payment {
30+ case a: AttachedPayment =>
31+ if ((a.assetId == wavesToken))
32+ then {
33+ let datas = WriteSet([DataEntry(statusOf(key), "paid")])
34+ let payment = getIntegerValue(this, paymentOf(key))
35+ ScriptResult(datas, TransferSet([ScriptTransfer(owner, payment, wavesToken)]))
36+ }
37+ else throw(("can only WAVES, but got " + toBase58String(value(a.assetId))))
38+ case _ =>
39+ throw("payment in assetTokens must be attached")
40+ }
41+ else throw("Order already has been payed or rejected")
4942
5043
5144
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let ownerKey = "owner"
5-
64 let wavesToken = unit
75
86 func paymentOf (key) = ("payment_of_" + key)
97
108
119 func statusOf (key) = ("status_of_" + key)
1210
1311
14-let owner = addressFromStringValue(value(getString(this, ownerKey)))
12+let owner = addressFromStringValue("3NARWzNaChSw8Mpf8CZYavL4QWQvk3KUU8b")
1513
1614 func isPaymentPending (key) = match getString(this, statusOf(key)) {
1715 case s: String =>
1816 (s == "pending")
1917 case _ =>
2018 false
2119 }
2220
2321
2422 @Callable(i)
25-func init (owner,token) = if ((i.caller == this))
26- then WriteSet([DataEntry(ownerKey, owner)])
27- else throw("only dapp itself can init")
28-
29-
30-
31-@Callable(i)
3223 func setWaitToPayment (key,payment) = WriteSet([DataEntry(statusOf(key), "pending"), DataEntry(paymentOf(key), payment)])
3324
3425
3526
3627 @Callable(i)
37-func pay (key) = match i.payment {
38- case a: AttachedPayment =>
39- if ((a.assetId == wavesToken))
40- then {
41- let datas = WriteSet([DataEntry(statusOf(key), "paid")])
42- let payment = getIntegerValue(this, paymentOf(key))
43- ScriptResult(datas, TransferSet([ScriptTransfer(owner, payment, wavesToken)]))
44- }
45- else throw(("can only WAVES, but got " + toBase58String(value(a.assetId))))
46- case _ =>
47- throw("payment in assetTokens must be attached")
48-}
28+func pay (key) = if (isPaymentPending(key))
29+ then match i.payment {
30+ case a: AttachedPayment =>
31+ if ((a.assetId == wavesToken))
32+ then {
33+ let datas = WriteSet([DataEntry(statusOf(key), "paid")])
34+ let payment = getIntegerValue(this, paymentOf(key))
35+ ScriptResult(datas, TransferSet([ScriptTransfer(owner, payment, wavesToken)]))
36+ }
37+ else throw(("can only WAVES, but got " + toBase58String(value(a.assetId))))
38+ case _ =>
39+ throw("payment in assetTokens must be attached")
40+ }
41+ else throw("Order already has been payed or rejected")
4942
5043
5144
5245 @Callable(i)
5346 func reject (key) = if (isPaymentPending(key))
5447 then WriteSet([DataEntry(statusOf(key), "rejected")])
5548 else throw("Order already has been payed or rejected")
5649
5750

github/deemru/w8io/3ef1775 
43.36 ms