tx · 2DnrS96vgKjqCWTEvLHL6QZTJSszcKZCZewozravCtif

3MxorpV6jKdNhrzHSujnjVXu7fr8PCHhMwi:  -0.01400000 Waves

2019.10.04 23:27 [705481] smart account 3MxorpV6jKdNhrzHSujnjVXu7fr8PCHhMwi > SELF 0.00000000 Waves

{ "type": 13, "id": "2DnrS96vgKjqCWTEvLHL6QZTJSszcKZCZewozravCtif", "fee": 1400000, "feeAssetId": null, "timestamp": 1570220992233, "version": 1, "sender": "3MxorpV6jKdNhrzHSujnjVXu7fr8PCHhMwi", "senderPublicKey": "BZT5fzv8ZeHVn8xAGZVXZHUvoAkdRNCbtEuBn3pCuXEH", "proofs": [ "2CBizQ7Anc2TaFZgbG5Gtoe43CfMhtXMYXKNDUmH4JfbsyHnWGrjY3Qqrw1KxNA5iST1Y86K5oUGF7Juq7Y5oQXq" ], "script": "base64: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", "chainId": 84, "height": 705481, "spentComplexity": 0 } View: original | compacted Prev: CfvuBDr5qBpKmQPB6oWskCer12tFgsJTXmu9qGLLfs3r Next: 3Y61pD3A2KLV1vJA7MMu53hFE5xstD6iyNshVztvYg8e Diff:
OldNewDifferences
33 {-# CONTENT_TYPE DAPP #-}
44 let a = base58'BZT5fzv8ZeHVn8xAGZVXZHUvoAkdRNCbtEuBn3pCuXEH'
55
6-let b = "added data functionality (testphase)"
6+let b = fromBase58String("BZT5fzv8ZeHVn8xAGZVXZHUvoAkdRNCbtEuBn3pCuXEH")
77
8-func c (d) = {
9- let e = getStringValue(this, d)
10- e
8+let c = "added data functionality (testphase)"
9+
10+func d (e,f) = {
11+ let g = "rsaVerify(Sha256 ,message,pKey,pKey)"
12+ g
1113 }
1214
1315
14-func f (g) = {
15- let h = {
16- let i = getBinary(this, "lastPlay")
17- if ($isInstanceOf(i, "ByteVector"))
18- then {
19- let j = i
20- j
21- }
22- else if ($isInstanceOf(i, "Unit"))
23- then {
24- let k = i
25- base58'2ee4oFDYriWJ9EMeR'
26- }
27- else throw()
28- }
29- let l = (((((h + g.transactionId) + g.callerPublicKey) + lastBlock.generationSignature) + toBytes(lastBlock.timestamp)) + toBytes(lastBlock.height))
30- sha256(l)
16+func h () = {
17+ let i = toInt(sha256(toBytes(lastBlock.height)))
18+ i
3119 }
3220
3321
34-func m (n,o) = {
35- let p = "x"
36- p
22+func j (k) = {
23+ let l = h()
24+ let m = sigVerify(toBytes(l), toBytes(k), b)
25+ if (m)
26+ then {
27+ let n = (toInt(sha256(toBytes(k))) % 6)
28+ if ((0 > n))
29+ then ((-1 * n) + 1)
30+ else (n + 1)
31+ }
32+ else throw("Invalid RSA signature")
3733 }
3834
3935
40-func q (r,s,t) = {
41- let u = "placeholder"
42- u
36+func o (p,q) = {
37+ let r = "x"
38+ r
4339 }
4440
4541
46-@Callable(v)
42+func s (t,u,v) = {
43+ let w = "placeholder"
44+ w
45+ }
46+
47+
48+func x (y) = {
49+ let z = getStringValue(this, y)
50+ z
51+ }
52+
53+
54+@Callable(A)
4755 func dispense () = {
48- let w = extract(v.payment)
49- let x = "default message for now"
50- let y = toBase58String(extract(v.callerPublicKey))
51- let z = toBase58String(extract(v.caller.bytes))
52- let A = v.transactionId
53- let B = base58'6khhQRn6E7dsLqxnkGHnEKoZZJv9U7bhadzprWvjAi6m'
54- let C = if ((w.amount == 100000000))
56+ let B = extract(A.payment)
57+ let e = "default message for now"
58+ let C = toBase58String(extract(A.callerPublicKey))
59+ let D = toBase58String(extract(A.caller.bytes))
60+ let E = A.transactionId
61+ let F = base58'6khhQRn6E7dsLqxnkGHnEKoZZJv9U7bhadzprWvjAi6m'
62+ let G = if ((B.amount == 100000000))
5563 then "S"
56- else if ((w.amount == 200000000))
64+ else if ((B.amount == 200000000))
5765 then "M"
58- else if ((w.amount == 400000000))
66+ else if ((B.amount == 400000000))
5967 then "L"
6068 else "error"
61- let D = ((((((toBase58String(extract(v.callerPublicKey)) + ";") + toString(w.amount)) + ";") + toString(height)) + ";") + C)
62- if ((C == "error"))
69+ let H = ((((((((toBase58String(extract(A.callerPublicKey)) + ";") + toString(B.amount)) + ";") + toString(height)) + ";") + toString(j(toString(h())))) + ";") + G)
70+ if ((G == "error"))
6371 then throw("Prices are 1, 2, and 4 waves. Other amounts will be rejected by the smart contract")
6472 else {
65- let E = (w.amount * 3)
66- ScriptResult(WriteSet([DataEntry(y, D)]), TransferSet([ScriptTransfer(v.caller, E, B)]))
73+ let I = (B.amount * 3)
74+ ScriptResult(WriteSet([DataEntry(C, H)]), TransferSet([ScriptTransfer(A.caller, I, F)]))
6775 }
6876 }
6977
7078
71-@Verifier(F)
72-func G () = {
73- let i = F
74- if ($isInstanceOf(i, "SetScriptTransaction"))
79+@Verifier(J)
80+func K () = {
81+ let L = J
82+ if ($isInstanceOf(L, "SetScriptTransaction"))
7583 then {
76- let H = i
77- sigVerify(F.bodyBytes, F.proofs[0], a)
84+ let M = L
85+ sigVerify(J.bodyBytes, J.proofs[0], a)
7886 }
79- else if ($isInstanceOf(i, "DataTransaction"))
87+ else if ($isInstanceOf(L, "DataTransaction"))
8088 then {
81- let H = i
89+ let M = L
8290 true
8391 }
84- else if ($isInstanceOf(i, "TransferTransaction"))
92+ else if ($isInstanceOf(L, "TransferTransaction"))
8593 then {
86- let H = i
94+ let M = L
8795 true
8896 }
89- else if ($isInstanceOf(i, "IssueTransaction"))
97+ else if ($isInstanceOf(L, "IssueTransaction"))
9098 then {
91- let H = i
99+ let M = L
92100 true
93101 }
94- else if ($isInstanceOf(i, "ReissueTransaction"))
102+ else if ($isInstanceOf(L, "ReissueTransaction"))
95103 then {
96- let H = i
104+ let M = L
97105 true
98106 }
99107 else false
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = base58'BZT5fzv8ZeHVn8xAGZVXZHUvoAkdRNCbtEuBn3pCuXEH'
55
6-let b = "added data functionality (testphase)"
6+let b = fromBase58String("BZT5fzv8ZeHVn8xAGZVXZHUvoAkdRNCbtEuBn3pCuXEH")
77
8-func c (d) = {
9- let e = getStringValue(this, d)
10- e
8+let c = "added data functionality (testphase)"
9+
10+func d (e,f) = {
11+ let g = "rsaVerify(Sha256 ,message,pKey,pKey)"
12+ g
1113 }
1214
1315
14-func f (g) = {
15- let h = {
16- let i = getBinary(this, "lastPlay")
17- if ($isInstanceOf(i, "ByteVector"))
18- then {
19- let j = i
20- j
21- }
22- else if ($isInstanceOf(i, "Unit"))
23- then {
24- let k = i
25- base58'2ee4oFDYriWJ9EMeR'
26- }
27- else throw()
28- }
29- let l = (((((h + g.transactionId) + g.callerPublicKey) + lastBlock.generationSignature) + toBytes(lastBlock.timestamp)) + toBytes(lastBlock.height))
30- sha256(l)
16+func h () = {
17+ let i = toInt(sha256(toBytes(lastBlock.height)))
18+ i
3119 }
3220
3321
34-func m (n,o) = {
35- let p = "x"
36- p
22+func j (k) = {
23+ let l = h()
24+ let m = sigVerify(toBytes(l), toBytes(k), b)
25+ if (m)
26+ then {
27+ let n = (toInt(sha256(toBytes(k))) % 6)
28+ if ((0 > n))
29+ then ((-1 * n) + 1)
30+ else (n + 1)
31+ }
32+ else throw("Invalid RSA signature")
3733 }
3834
3935
40-func q (r,s,t) = {
41- let u = "placeholder"
42- u
36+func o (p,q) = {
37+ let r = "x"
38+ r
4339 }
4440
4541
46-@Callable(v)
42+func s (t,u,v) = {
43+ let w = "placeholder"
44+ w
45+ }
46+
47+
48+func x (y) = {
49+ let z = getStringValue(this, y)
50+ z
51+ }
52+
53+
54+@Callable(A)
4755 func dispense () = {
48- let w = extract(v.payment)
49- let x = "default message for now"
50- let y = toBase58String(extract(v.callerPublicKey))
51- let z = toBase58String(extract(v.caller.bytes))
52- let A = v.transactionId
53- let B = base58'6khhQRn6E7dsLqxnkGHnEKoZZJv9U7bhadzprWvjAi6m'
54- let C = if ((w.amount == 100000000))
56+ let B = extract(A.payment)
57+ let e = "default message for now"
58+ let C = toBase58String(extract(A.callerPublicKey))
59+ let D = toBase58String(extract(A.caller.bytes))
60+ let E = A.transactionId
61+ let F = base58'6khhQRn6E7dsLqxnkGHnEKoZZJv9U7bhadzprWvjAi6m'
62+ let G = if ((B.amount == 100000000))
5563 then "S"
56- else if ((w.amount == 200000000))
64+ else if ((B.amount == 200000000))
5765 then "M"
58- else if ((w.amount == 400000000))
66+ else if ((B.amount == 400000000))
5967 then "L"
6068 else "error"
61- let D = ((((((toBase58String(extract(v.callerPublicKey)) + ";") + toString(w.amount)) + ";") + toString(height)) + ";") + C)
62- if ((C == "error"))
69+ let H = ((((((((toBase58String(extract(A.callerPublicKey)) + ";") + toString(B.amount)) + ";") + toString(height)) + ";") + toString(j(toString(h())))) + ";") + G)
70+ if ((G == "error"))
6371 then throw("Prices are 1, 2, and 4 waves. Other amounts will be rejected by the smart contract")
6472 else {
65- let E = (w.amount * 3)
66- ScriptResult(WriteSet([DataEntry(y, D)]), TransferSet([ScriptTransfer(v.caller, E, B)]))
73+ let I = (B.amount * 3)
74+ ScriptResult(WriteSet([DataEntry(C, H)]), TransferSet([ScriptTransfer(A.caller, I, F)]))
6775 }
6876 }
6977
7078
71-@Verifier(F)
72-func G () = {
73- let i = F
74- if ($isInstanceOf(i, "SetScriptTransaction"))
79+@Verifier(J)
80+func K () = {
81+ let L = J
82+ if ($isInstanceOf(L, "SetScriptTransaction"))
7583 then {
76- let H = i
77- sigVerify(F.bodyBytes, F.proofs[0], a)
84+ let M = L
85+ sigVerify(J.bodyBytes, J.proofs[0], a)
7886 }
79- else if ($isInstanceOf(i, "DataTransaction"))
87+ else if ($isInstanceOf(L, "DataTransaction"))
8088 then {
81- let H = i
89+ let M = L
8290 true
8391 }
84- else if ($isInstanceOf(i, "TransferTransaction"))
92+ else if ($isInstanceOf(L, "TransferTransaction"))
8593 then {
86- let H = i
94+ let M = L
8795 true
8896 }
89- else if ($isInstanceOf(i, "IssueTransaction"))
97+ else if ($isInstanceOf(L, "IssueTransaction"))
9098 then {
91- let H = i
99+ let M = L
92100 true
93101 }
94- else if ($isInstanceOf(i, "ReissueTransaction"))
102+ else if ($isInstanceOf(L, "ReissueTransaction"))
95103 then {
96- let H = i
104+ let M = L
97105 true
98106 }
99107 else false
100108 }
101109

github/deemru/w8io/169f3d6 
52.34 ms