tx · Nd8Uof2JkmGtcqYcmaYeQU8xi4DbWYQSTfa1sbhLnuL 3MyV9Fm9cwW9W68VCGfPvejLujx7xVpJiKW: -0.01400000 Waves 2019.12.21 10:33 [818429] smart account 3MyV9Fm9cwW9W68VCGfPvejLujx7xVpJiKW > SELF 0.00000000 Waves
{ "type": 13, "id": "Nd8Uof2JkmGtcqYcmaYeQU8xi4DbWYQSTfa1sbhLnuL", "fee": 1400000, "feeAssetId": null, "timestamp": 1576913604377, "version": 1, "sender": "3MyV9Fm9cwW9W68VCGfPvejLujx7xVpJiKW", "senderPublicKey": "8zVjiVAuhkkAyQsSHHvjkNNoN8WDKJAEBV5nSpiyyYWr", "proofs": [ "GZnrNzjSjWSTqAa5kAbKHHKjnXEdpsb7co2dK725wFPkatJx58gpumZuTQSfC3wXnBDjzzp3nANmM2jPsifABrc" ], "script": "base64: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", "chainId": 84, "height": 818429, "spentComplexity": 0 } View: original | compacted Prev: Ffc5ux1kh3Ms4cZUEirNEeUyCybKJaJhzcZADaoaghLA Next: FZP72VRUQTDTFsMEcka1Gqjh57mTSnjxkADJpjSFGyvC Diff:
Old | New | Differences | |
---|---|---|---|
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = base58'EtV3CXQ4wqm28WPB1KaBv5B9ke2bpXRZMutYNEJUQcXm' | |
5 | 5 | ||
6 | - | @Callable(b) | |
6 | + | let b = base58'WAVES' | |
7 | + | ||
8 | + | let c = base58'DWgwcZTMhSvnyYCoWLRUXXSH1RSkzThXLJhww9gwkqdn' | |
9 | + | ||
10 | + | @Callable(d) | |
7 | 11 | func par7deposit () = { | |
8 | - | let | |
9 | - | if (( | |
12 | + | let e = extract(d.payment) | |
13 | + | if ((e.assetId != a)) | |
10 | 14 | then throw("PAR7 only at the moment") | |
11 | 15 | else { | |
12 | - | let | |
13 | - | let | |
14 | - | let | |
15 | - | if ($isInstanceOf( | |
16 | + | let f = toBase58String(d.caller.bytes) | |
17 | + | let g = { | |
18 | + | let h = getInteger(this, f) | |
19 | + | if ($isInstanceOf(h, "Int")) | |
16 | 20 | then { | |
17 | - | let | |
18 | - | | |
21 | + | let i = h | |
22 | + | i | |
19 | 23 | } | |
20 | 24 | else 0 | |
21 | 25 | } | |
22 | - | let | |
23 | - | WriteSet([DataEntry( | |
26 | + | let j = (g + e.amount) | |
27 | + | WriteSet([DataEntry(f, j)]) | |
24 | 28 | } | |
25 | 29 | } | |
26 | 30 | ||
27 | 31 | ||
28 | 32 | ||
29 | - | @Callable( | |
30 | - | func par7withdraw ( | |
31 | - | let | |
32 | - | let | |
33 | - | let | |
34 | - | if ($isInstanceOf( | |
33 | + | @Callable(d) | |
34 | + | func par7withdraw (k) = { | |
35 | + | let f = toBase58String(d.caller.bytes) | |
36 | + | let g = { | |
37 | + | let h = getInteger(this, f) | |
38 | + | if ($isInstanceOf(h, "Int")) | |
35 | 39 | then { | |
36 | - | let | |
37 | - | | |
40 | + | let i = h | |
41 | + | i | |
38 | 42 | } | |
39 | 43 | else 0 | |
40 | 44 | } | |
41 | - | let | |
42 | - | if ((0 > | |
45 | + | let j = (g - k) | |
46 | + | if ((0 > k)) | |
43 | 47 | then throw("Can't withdraw negative amount") | |
44 | - | else if ((0 > | |
48 | + | else if ((0 > j)) | |
45 | 49 | then throw("Not enough balance") | |
46 | - | else ScriptResult(WriteSet([DataEntry( | |
50 | + | else ScriptResult(WriteSet([DataEntry(f, j)]), TransferSet([ScriptTransfer(d.caller, k, a)])) | |
47 | 51 | } | |
48 | 52 | ||
49 | 53 | ||
50 | - | @Verifier(j) | |
51 | - | func k () = { | |
52 | - | let f = j | |
53 | - | if ($isInstanceOf(f, "InvokeScriptTransaction")) | |
54 | + | ||
55 | + | @Callable(d) | |
56 | + | func wavesdeposit () = { | |
57 | + | let e = extract(d.payment) | |
58 | + | if ((e.assetId != b)) | |
59 | + | then throw("Waves only at the moment") | |
60 | + | else { | |
61 | + | let f = toBase58String(d.caller.bytes) | |
62 | + | let g = { | |
63 | + | let h = getInteger(this, f) | |
64 | + | if ($isInstanceOf(h, "Int")) | |
65 | + | then { | |
66 | + | let i = h | |
67 | + | i | |
68 | + | } | |
69 | + | else 0 | |
70 | + | } | |
71 | + | let j = (g + e.amount) | |
72 | + | WriteSet([DataEntry(f, j)]) | |
73 | + | } | |
74 | + | } | |
75 | + | ||
76 | + | ||
77 | + | ||
78 | + | @Callable(d) | |
79 | + | func waveswithdraw (k) = { | |
80 | + | let f = toBase58String(d.caller.bytes) | |
81 | + | let g = { | |
82 | + | let h = getInteger(this, f) | |
83 | + | if ($isInstanceOf(h, "Int")) | |
84 | + | then { | |
85 | + | let i = h | |
86 | + | i | |
87 | + | } | |
88 | + | else 0 | |
89 | + | } | |
90 | + | let j = (g - k) | |
91 | + | if ((0 > k)) | |
92 | + | then throw("Can't withdraw negative amount") | |
93 | + | else if ((0 > j)) | |
94 | + | then throw("Not enough balance") | |
95 | + | else ScriptResult(WriteSet([DataEntry(f, j)]), TransferSet([ScriptTransfer(d.caller, k, b)])) | |
96 | + | } | |
97 | + | ||
98 | + | ||
99 | + | ||
100 | + | @Callable(d) | |
101 | + | func btcdeposit () = { | |
102 | + | let e = extract(d.payment) | |
103 | + | if ((e.assetId != c)) | |
104 | + | then throw("btc only at the moment") | |
105 | + | else { | |
106 | + | let f = toBase58String(d.caller.bytes) | |
107 | + | let g = { | |
108 | + | let h = getInteger(this, f) | |
109 | + | if ($isInstanceOf(h, "Int")) | |
110 | + | then { | |
111 | + | let i = h | |
112 | + | i | |
113 | + | } | |
114 | + | else 0 | |
115 | + | } | |
116 | + | let j = (g + e.amount) | |
117 | + | WriteSet([DataEntry(f, j)]) | |
118 | + | } | |
119 | + | } | |
120 | + | ||
121 | + | ||
122 | + | ||
123 | + | @Callable(d) | |
124 | + | func btcwithdraw (k) = { | |
125 | + | let f = toBase58String(d.caller.bytes) | |
126 | + | let g = { | |
127 | + | let h = getInteger(this, f) | |
128 | + | if ($isInstanceOf(h, "Int")) | |
129 | + | then { | |
130 | + | let i = h | |
131 | + | i | |
132 | + | } | |
133 | + | else 0 | |
134 | + | } | |
135 | + | let j = (g - k) | |
136 | + | if ((0 > k)) | |
137 | + | then throw("Can't withdraw negative amount") | |
138 | + | else if ((0 > j)) | |
139 | + | then throw("Not enough balance") | |
140 | + | else ScriptResult(WriteSet([DataEntry(f, j)]), TransferSet([ScriptTransfer(d.caller, k, c)])) | |
141 | + | } | |
142 | + | ||
143 | + | ||
144 | + | @Verifier(l) | |
145 | + | func m () = { | |
146 | + | let h = l | |
147 | + | if ($isInstanceOf(h, "InvokeScriptTransaction")) | |
54 | 148 | then { | |
55 | - | let | |
149 | + | let n = h | |
56 | 150 | true | |
57 | 151 | } | |
58 | - | else sigVerify( | |
152 | + | else sigVerify(l.bodyBytes, l.proofs[0], l.senderPublicKey) | |
59 | 153 | } | |
60 | 154 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 3 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = base58'EtV3CXQ4wqm28WPB1KaBv5B9ke2bpXRZMutYNEJUQcXm' | |
5 | 5 | ||
6 | - | @Callable(b) | |
6 | + | let b = base58'WAVES' | |
7 | + | ||
8 | + | let c = base58'DWgwcZTMhSvnyYCoWLRUXXSH1RSkzThXLJhww9gwkqdn' | |
9 | + | ||
10 | + | @Callable(d) | |
7 | 11 | func par7deposit () = { | |
8 | - | let | |
9 | - | if (( | |
12 | + | let e = extract(d.payment) | |
13 | + | if ((e.assetId != a)) | |
10 | 14 | then throw("PAR7 only at the moment") | |
11 | 15 | else { | |
12 | - | let | |
13 | - | let | |
14 | - | let | |
15 | - | if ($isInstanceOf( | |
16 | + | let f = toBase58String(d.caller.bytes) | |
17 | + | let g = { | |
18 | + | let h = getInteger(this, f) | |
19 | + | if ($isInstanceOf(h, "Int")) | |
16 | 20 | then { | |
17 | - | let | |
18 | - | | |
21 | + | let i = h | |
22 | + | i | |
19 | 23 | } | |
20 | 24 | else 0 | |
21 | 25 | } | |
22 | - | let | |
23 | - | WriteSet([DataEntry( | |
26 | + | let j = (g + e.amount) | |
27 | + | WriteSet([DataEntry(f, j)]) | |
24 | 28 | } | |
25 | 29 | } | |
26 | 30 | ||
27 | 31 | ||
28 | 32 | ||
29 | - | @Callable( | |
30 | - | func par7withdraw ( | |
31 | - | let | |
32 | - | let | |
33 | - | let | |
34 | - | if ($isInstanceOf( | |
33 | + | @Callable(d) | |
34 | + | func par7withdraw (k) = { | |
35 | + | let f = toBase58String(d.caller.bytes) | |
36 | + | let g = { | |
37 | + | let h = getInteger(this, f) | |
38 | + | if ($isInstanceOf(h, "Int")) | |
35 | 39 | then { | |
36 | - | let | |
37 | - | | |
40 | + | let i = h | |
41 | + | i | |
38 | 42 | } | |
39 | 43 | else 0 | |
40 | 44 | } | |
41 | - | let | |
42 | - | if ((0 > | |
45 | + | let j = (g - k) | |
46 | + | if ((0 > k)) | |
43 | 47 | then throw("Can't withdraw negative amount") | |
44 | - | else if ((0 > | |
48 | + | else if ((0 > j)) | |
45 | 49 | then throw("Not enough balance") | |
46 | - | else ScriptResult(WriteSet([DataEntry( | |
50 | + | else ScriptResult(WriteSet([DataEntry(f, j)]), TransferSet([ScriptTransfer(d.caller, k, a)])) | |
47 | 51 | } | |
48 | 52 | ||
49 | 53 | ||
50 | - | @Verifier(j) | |
51 | - | func k () = { | |
52 | - | let f = j | |
53 | - | if ($isInstanceOf(f, "InvokeScriptTransaction")) | |
54 | + | ||
55 | + | @Callable(d) | |
56 | + | func wavesdeposit () = { | |
57 | + | let e = extract(d.payment) | |
58 | + | if ((e.assetId != b)) | |
59 | + | then throw("Waves only at the moment") | |
60 | + | else { | |
61 | + | let f = toBase58String(d.caller.bytes) | |
62 | + | let g = { | |
63 | + | let h = getInteger(this, f) | |
64 | + | if ($isInstanceOf(h, "Int")) | |
65 | + | then { | |
66 | + | let i = h | |
67 | + | i | |
68 | + | } | |
69 | + | else 0 | |
70 | + | } | |
71 | + | let j = (g + e.amount) | |
72 | + | WriteSet([DataEntry(f, j)]) | |
73 | + | } | |
74 | + | } | |
75 | + | ||
76 | + | ||
77 | + | ||
78 | + | @Callable(d) | |
79 | + | func waveswithdraw (k) = { | |
80 | + | let f = toBase58String(d.caller.bytes) | |
81 | + | let g = { | |
82 | + | let h = getInteger(this, f) | |
83 | + | if ($isInstanceOf(h, "Int")) | |
84 | + | then { | |
85 | + | let i = h | |
86 | + | i | |
87 | + | } | |
88 | + | else 0 | |
89 | + | } | |
90 | + | let j = (g - k) | |
91 | + | if ((0 > k)) | |
92 | + | then throw("Can't withdraw negative amount") | |
93 | + | else if ((0 > j)) | |
94 | + | then throw("Not enough balance") | |
95 | + | else ScriptResult(WriteSet([DataEntry(f, j)]), TransferSet([ScriptTransfer(d.caller, k, b)])) | |
96 | + | } | |
97 | + | ||
98 | + | ||
99 | + | ||
100 | + | @Callable(d) | |
101 | + | func btcdeposit () = { | |
102 | + | let e = extract(d.payment) | |
103 | + | if ((e.assetId != c)) | |
104 | + | then throw("btc only at the moment") | |
105 | + | else { | |
106 | + | let f = toBase58String(d.caller.bytes) | |
107 | + | let g = { | |
108 | + | let h = getInteger(this, f) | |
109 | + | if ($isInstanceOf(h, "Int")) | |
110 | + | then { | |
111 | + | let i = h | |
112 | + | i | |
113 | + | } | |
114 | + | else 0 | |
115 | + | } | |
116 | + | let j = (g + e.amount) | |
117 | + | WriteSet([DataEntry(f, j)]) | |
118 | + | } | |
119 | + | } | |
120 | + | ||
121 | + | ||
122 | + | ||
123 | + | @Callable(d) | |
124 | + | func btcwithdraw (k) = { | |
125 | + | let f = toBase58String(d.caller.bytes) | |
126 | + | let g = { | |
127 | + | let h = getInteger(this, f) | |
128 | + | if ($isInstanceOf(h, "Int")) | |
129 | + | then { | |
130 | + | let i = h | |
131 | + | i | |
132 | + | } | |
133 | + | else 0 | |
134 | + | } | |
135 | + | let j = (g - k) | |
136 | + | if ((0 > k)) | |
137 | + | then throw("Can't withdraw negative amount") | |
138 | + | else if ((0 > j)) | |
139 | + | then throw("Not enough balance") | |
140 | + | else ScriptResult(WriteSet([DataEntry(f, j)]), TransferSet([ScriptTransfer(d.caller, k, c)])) | |
141 | + | } | |
142 | + | ||
143 | + | ||
144 | + | @Verifier(l) | |
145 | + | func m () = { | |
146 | + | let h = l | |
147 | + | if ($isInstanceOf(h, "InvokeScriptTransaction")) | |
54 | 148 | then { | |
55 | - | let | |
149 | + | let n = h | |
56 | 150 | true | |
57 | 151 | } | |
58 | - | else sigVerify( | |
152 | + | else sigVerify(l.bodyBytes, l.proofs[0], l.senderPublicKey) | |
59 | 153 | } | |
60 | 154 |
github/deemru/w8io/873ac7e 32.89 ms ◑![]()