tx · EfWQ7CUKSC7EEC7YT23JzPyqyJyBNPkzTj1EEnJmjp1B

3MpKvUfNxrgF7QotPjFwi8thMagSveNScKe:  -0.01400000 Waves

2020.11.17 05:08 [1268742] smart account 3MpKvUfNxrgF7QotPjFwi8thMagSveNScKe > SELF 0.00000000 Waves

{ "type": 13, "id": "EfWQ7CUKSC7EEC7YT23JzPyqyJyBNPkzTj1EEnJmjp1B", "fee": 1400000, "feeAssetId": null, "timestamp": 1605578898599, "version": 2, "chainId": 84, "sender": "3MpKvUfNxrgF7QotPjFwi8thMagSveNScKe", "senderPublicKey": "9GE2xN4fms9YNDxR1hGg52RynqDd8125TA42g4X29ZV7", "proofs": [ "QSHMDskxJqX5z2Ng4R647YRn1btdCncNiqfF77ro9WYPPJFhV3dacCN75iC1Mor5yMoouZUsiB44GcHLLuYcvBZ" ], "script": "base64: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", "height": 1268742, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: xZLTLdg6yRMZ6osQ2mRkCHnjPpXnFNztw3JyhcN3jjC Next: 4qV9EVJ5ZQ2mwaVux3ysFBJV5aJUu8Mo82tqbkPRN1Mt Diff:
OldNewDifferences
2626
2727
2828 @Callable(l)
29+func opbrTest (d,m,n) = {
30+ let o = l.payments
31+ if ((d == "kjflkdsjf"))
32+ then throw("nada")
33+ else throw((d + toString((m + o[0].amount))))
34+ }
35+
36+
37+
38+@Callable(l)
2939 func opbrBuy (d,m,n) = {
30- let o = toBase58String(l.caller.bytes)
31- let p = l.payments
40+ let p = toBase58String(l.caller.bytes)
41+ let o = l.payments
3242 let q = c(d)
33- if ((size(p) == 0))
43+ if ((size(o) == 0))
3444 then throw("Payment for exchange is mandatory")
35- else if ((size(p) == 2))
45+ else if ((size(o) == 2))
3646 then throw("Only one payment per transaction is allowed")
37- else if (!(h((d + toString((m + p[0].amount))), n)))
47+ else if (!(h((d + toString((m + o[0].amount))), n)))
3848 then throw("Stop hacking me!")
39- else if (if (isDefined(p[0].assetId))
49+ else if (if (isDefined(o[0].assetId))
4050 then (q == false)
4151 else false)
4252 then throw("The used token is not accepted")
43- else if (if (isDefined(p[0].assetId))
44- then (fromBase58String(d) != p[0].assetId)
53+ else if (if (isDefined(o[0].assetId))
54+ then (fromBase58String(d) != o[0].assetId)
4555 else false)
4656 then throw("declared token is different from submitted token")
4757 else {
48- let r = fraction(1, p[0].amount, 100)
49-[ScriptTransfer(l.caller, m, b), ScriptTransfer(a, r, p[0].assetId)]
58+ let r = fraction(1, o[0].amount, 100)
59+[ScriptTransfer(l.caller, m, b), ScriptTransfer(a, r, o[0].assetId)]
5060 }
5161 }
5262
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = addressFromPublicKey(fromBase58String("J7vyoUA8Gd5QMq4YVtedpv19dwCYroZEYrN8bKgLzqV8"))
55
66 let b = base58'HMov2457acf5MEJr85fvXYL3vrTEevFpsEQkHh1yfdUT'
77
88 func c (d) = {
99 let e = {
1010 let f = getString(this, d)
1111 if ($isInstanceOf(f, "String"))
1212 then {
1313 let g = f
1414 g
1515 }
1616 else false
1717 }
1818 e
1919 }
2020
2121
2222 func h (i,j) = {
2323 let k = toBytes(toBase58String(keccak256(blake2b256(toBytes(i)))))
2424 sigVerify(k, fromBase58String(j), base58'C8jRoXECFheT6JPcAkcyWPadYbxBA6tSyAqXqjq5dicS')
2525 }
2626
2727
2828 @Callable(l)
29+func opbrTest (d,m,n) = {
30+ let o = l.payments
31+ if ((d == "kjflkdsjf"))
32+ then throw("nada")
33+ else throw((d + toString((m + o[0].amount))))
34+ }
35+
36+
37+
38+@Callable(l)
2939 func opbrBuy (d,m,n) = {
30- let o = toBase58String(l.caller.bytes)
31- let p = l.payments
40+ let p = toBase58String(l.caller.bytes)
41+ let o = l.payments
3242 let q = c(d)
33- if ((size(p) == 0))
43+ if ((size(o) == 0))
3444 then throw("Payment for exchange is mandatory")
35- else if ((size(p) == 2))
45+ else if ((size(o) == 2))
3646 then throw("Only one payment per transaction is allowed")
37- else if (!(h((d + toString((m + p[0].amount))), n)))
47+ else if (!(h((d + toString((m + o[0].amount))), n)))
3848 then throw("Stop hacking me!")
39- else if (if (isDefined(p[0].assetId))
49+ else if (if (isDefined(o[0].assetId))
4050 then (q == false)
4151 else false)
4252 then throw("The used token is not accepted")
43- else if (if (isDefined(p[0].assetId))
44- then (fromBase58String(d) != p[0].assetId)
53+ else if (if (isDefined(o[0].assetId))
54+ then (fromBase58String(d) != o[0].assetId)
4555 else false)
4656 then throw("declared token is different from submitted token")
4757 else {
48- let r = fraction(1, p[0].amount, 100)
49-[ScriptTransfer(l.caller, m, b), ScriptTransfer(a, r, p[0].assetId)]
58+ let r = fraction(1, o[0].amount, 100)
59+[ScriptTransfer(l.caller, m, b), ScriptTransfer(a, r, o[0].assetId)]
5060 }
5161 }
5262
5363
5464
5565 @Callable(l)
5666 func tokenList (d,s) = {
5767 let t = toBase58String(l.caller.bytes)
5868 if (if ((t != toString(this)))
5969 then (t != toString(a))
6070 else false)
6171 then throw("The address is not authorized to list tokens")
6272 else [StringEntry(d, s), ScriptTransfer(a, 1000000, unit)]
6373 }
6474
6575
6676
6777 @Callable(l)
6878 func tokenDelist (d) = {
6979 let t = toBase58String(l.caller.bytes)
7080 if (if ((t != toString(this)))
7181 then (t != toString(a))
7282 else false)
7383 then throw("The address is not authorized to delist tokens")
7484 else [DeleteEntry(d), ScriptTransfer(a, 10000000, unit)]
7585 }
7686
7787
7888 @Verifier(u)
7989 func v () = sigVerify(u.bodyBytes, u.proofs[0], u.senderPublicKey)
8090

github/deemru/w8io/3ef1775 
56.45 ms