tx · BRtswwF8yTWd1ggCvDoanT9mNh1mvGsNkJNK3fr6L1Wq 3MvGMtmdY1eSW4iY922zj5bx8hBfyP1qgHo: -0.04000000 Waves 2021.09.05 20:13 [1690041] smart account 3MvGMtmdY1eSW4iY922zj5bx8hBfyP1qgHo > SELF 0.00000000 Waves
{ "type": 13, "id": "BRtswwF8yTWd1ggCvDoanT9mNh1mvGsNkJNK3fr6L1Wq", "fee": 4000000, "feeAssetId": null, "timestamp": 1630861997545, "version": 2, "chainId": 84, "sender": "3MvGMtmdY1eSW4iY922zj5bx8hBfyP1qgHo", "senderPublicKey": "CD4N2SBeZVBUwmtsqwfmQ3ZKnBP3AxpZCvJ5QkHytUed", "proofs": [ "5bYQhUJWgWwBWzDJC6QMLwioqJRLMCpA87BjdDgsz6SF1WTBtSTYrPAtX3D2sAnqsiVpoqdgW31akXgw6DoVzRnJ" ], "script": "base64:AAIFAAAAAAAAADMIAhIDCgEIEgUKAwgIARIECgIIGBIDCgEIEgMKAQgSBAoCCAQSAwoBCBIDCgEIEgMKAQgAAAAMAAAAAAZjb25maWcJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMCAAAABmNvbmZpZwIAAAAAAAAAAAVhZG1pbgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAGY29uZmlnAgAAAAVhZG1pbgIAAAAAAAAAAAVwb29scwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwIAAAAFcG9vbHMCAAAAAAEAAAAHaXNBZG1pbgAAAAEAAAANY2FsbGVyQWRkcmVzcwMJAAAAAAAAAgUAAAANY2FsbGVyQWRkcmVzcwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAFYWRtaW4GBwEAAAAJY2hlY2tQb29sAAAAAQAAAAdwb29sQWRkAwkBAAAACGNvbnRhaW5zAAAAAgUAAAAFcG9vbHMFAAAAB3Bvb2xBZGQGBwEAAAALd3JpdGVTdHJpbmcAAAACAAAAA2tleQAAAAtzdHJpbmdWYWx1ZQkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAADa2V5BQAAAAtzdHJpbmdWYWx1ZQEAAAAMd3JpdGVJbnRlZ2VyAAAAAgAAAANrZXkAAAAMaW50ZWdlclZhbHVlCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAADa2V5BQAAAAxpbnRlZ2VyVmFsdWUBAAAAEmNoZWNrUG9vbExpcXVpZGl0eQAAAAIAAAALcG9vbEFkZHJlc3MAAAAGYW1vdW50BAAAAAt0b3RhbFN1cHBseQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAALcG9vbEFkZHJlc3MCAAAAC3RvdGFsU3VwcGx5BAAAAAt0b3RhbEJvcnJvdwkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAALcG9vbEFkZHJlc3MCAAAAC3RvdGFsQm9ycm93BAAAABJhdmFpbGFibGVMaXF1aWRpdHkJAABlAAAAAgUAAAALdG90YWxTdXBwbHkFAAAAC3RvdGFsQm9ycm93AwkAAGcAAAACBQAAABJhdmFpbGFibGVMaXF1aWRpdHkFAAAABmFtb3VudAYHAQAAABJnZXRIZWFsdGhQYXJhbWV0ZXIAAAAGAAAABHVzZXIAAAALcG9vbEFkZHJlc3MAAAANbmV3RGVidEFtb3VudAAAAAluZXdEZWJ0SWQAAAAQY29sbGF0ZXJhbEFtb3VudAAAAAxjb2xsYXRlcmFsSWQEAAAABnJlc3VsdAkAA/wAAAAECQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAAAtwb29sQWRkcmVzcwIAAAAWZ2V0VXNlckhlYWx0aFBhcmFtZXRlcgkABEwAAAACBQAAAAR1c2VyCQAETAAAAAIFAAAAEGNvbGxhdGVyYWxBbW91bnQJAARMAAAAAgUAAAAMY29sbGF0ZXJhbElkCQAETAAAAAIFAAAADW5ld0RlYnRBbW91bnQJAARMAAAAAgUAAAAJbmV3RGVidElkBQAAAANuaWwFAAAAA25pbAQAAAAHJG1hdGNoMAUAAAAGcmVzdWx0AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAooSW50LCBJbnQpBAAAAAF0BQAAAAckbWF0Y2gwBQAAAAF0CQAAAgAAAAECAAAAJFJldHVybiB2YWx1ZSBoYXMgdGhlIHdyb25nIGRhdGEgdHlwZQEAAAAQY2FsY0hlYWx0aEZhY3RvcgAAAAIAAAAOYm9ycm93Q2FwYWNpdHkAAAASYm9ycm93Q2FwYWNpdHlVc2VkCQAAawAAAAMJAABlAAAAAgUAAAAOYm9ycm93Q2FwYWNpdHkFAAAAEmJvcnJvd0NhcGFjaXR5VXNlZAAAAAAAAAAD6AUAAAAOYm9ycm93Q2FwYWNpdHkBAAAAE2NhbGNCb3Jyb3dDQm9ycm93Q1UAAAAFAAAABHVzZXIAAAANbmV3RGVidEFtb3VudAAAAAluZXdEZWJ0SWQAAAAQY29sbGF0ZXJhbEFtb3VudAAAAAxjb2xsYXRlcmFsSWQEAAAACHBvb2xMaXN0CQAEtQAA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", "height": 1690041, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FiGwZg5tEJAyQc7f5pKaVSUUqPGLwSFFHLshGDA59anM Next: 3j4sC8PjvcAqGKV9Znf6DEYrnNUiqTKC1sHnkfizoPcN Diff:
Old | New | Differences | |
---|---|---|---|
41 | 41 | let A = z | |
42 | 42 | A | |
43 | 43 | } | |
44 | - | else throw(" | |
44 | + | else throw("Return value has the wrong data type") | |
45 | 45 | } | |
46 | 46 | ||
47 | 47 | ||
97 | 97 | ||
98 | 98 | ||
99 | 99 | @Callable(V) | |
100 | - | func | |
100 | + | func repayTo (n) = if (f(n)) | |
101 | 101 | then { | |
102 | - | let X = getStringValue(addressFromStringValue(n), "assetId") | |
103 | - | if ((X == W)) | |
102 | + | let W = getStringValue(addressFromStringValue(n), "assetId") | |
103 | + | if ((fromBase58String(W) == V.payments[0].assetId)) | |
104 | + | then if ((size(V.payments) > 0)) | |
105 | + | then { | |
106 | + | let t = toBase58String(V.caller.bytes) | |
107 | + | let X = invoke(addressFromStringValue(n), "repay", [t], V.payments) | |
108 | + | if ((X == X)) | |
109 | + | then { | |
110 | + | let z = X | |
111 | + | if ($isInstanceOf(z, "String")) | |
112 | + | then { | |
113 | + | let A = z | |
114 | + | nil | |
115 | + | } | |
116 | + | else throw("Incorrect invoke result!") | |
117 | + | } | |
118 | + | else throw("Strict value is not equal to itself.") | |
119 | + | } | |
120 | + | else throw("No payment attached!") | |
121 | + | else throw("AssetIds does not match") | |
122 | + | } | |
123 | + | else throw("Pool address not found!") | |
124 | + | ||
125 | + | ||
126 | + | ||
127 | + | @Callable(V) | |
128 | + | func borrowFrom (n,Y,o) = if (f(n)) | |
129 | + | then { | |
130 | + | let W = getStringValue(addressFromStringValue(n), "assetId") | |
131 | + | if ((W == Y)) | |
104 | 132 | then if (m(n, o)) | |
105 | 133 | then { | |
106 | 134 | let t = toBase58String(V.caller.bytes) | |
107 | - | if (S(t, o, | |
135 | + | if (S(t, o, Y, 0, "")) | |
108 | 136 | then { | |
109 | - | let | |
110 | - | if (( | |
137 | + | let Z = invoke(addressFromStringValue(n), "borrow", [t, o], nil) | |
138 | + | if ((Z == Z)) | |
111 | 139 | then { | |
112 | - | let z = | |
140 | + | let z = Z | |
113 | 141 | if ($isInstanceOf(z, "Int")) | |
114 | 142 | then { | |
115 | 143 | let A = z | |
116 | - | if (( | |
144 | + | if ((W == "WAVES")) | |
117 | 145 | then [ScriptTransfer(V.caller, A, unit)] | |
118 | - | else [ScriptTransfer(V.caller, A, fromBase58String( | |
146 | + | else [ScriptTransfer(V.caller, A, fromBase58String(W))] | |
119 | 147 | } | |
120 | 148 | else if ($isInstanceOf(z, "String")) | |
121 | 149 | then { | |
136 | 164 | ||
137 | 165 | ||
138 | 166 | @Callable(V) | |
139 | - | func setup ( | |
167 | + | func setup (aa,c) = if (if (!(isDefined(getString(this, "config")))) | |
140 | 168 | then !(isDefined(getString(this, "pools"))) | |
141 | 169 | else false) | |
142 | - | then [h("config", | |
170 | + | then [h("config", aa), h("pools", makeString(c, ";"))] | |
143 | 171 | else throw("Admin and config address already definied!") | |
144 | 172 | ||
145 | 173 | ||
150 | 178 | let F = split(c, ";") | |
151 | 179 | if ((containsElement(F, n) == false)) | |
152 | 180 | then { | |
153 | - | let | |
154 | - | [h("pools", makeString( | |
181 | + | let ab = (F :+ n) | |
182 | + | [h("pools", makeString(ab, ";"))] | |
155 | 183 | } | |
156 | 184 | else throw("Pool already exists!") | |
157 | 185 | } | |
160 | 188 | ||
161 | 189 | ||
162 | 190 | @Callable(V) | |
163 | - | func updateConfig ( | |
164 | - | then [h("config", | |
191 | + | func updateConfig (aa) = if (d(V.caller)) | |
192 | + | then [h("config", aa)] | |
165 | 193 | else throw("Address does not match with admin address!") | |
166 | 194 | ||
167 | 195 | ||
168 | 196 | ||
169 | 197 | @Callable(V) | |
170 | - | func depositAt (n, | |
198 | + | func depositAt (n,ac) = if (f(n)) | |
171 | 199 | then if ((size(V.payments) > 0)) | |
172 | 200 | then { | |
173 | 201 | let t = toBase58String(V.caller.bytes) | |
174 | - | let | |
175 | - | if (( | |
202 | + | let Z = invoke(addressFromStringValue(n), "deposit", [t, ac], V.payments) | |
203 | + | if ((Z == Z)) | |
176 | 204 | then { | |
177 | - | let | |
178 | - | let z = | |
205 | + | let ad = getStringValue(addressFromStringValue(n), "dTokenId") | |
206 | + | let z = Z | |
179 | 207 | if ($isInstanceOf(z, "Int")) | |
180 | 208 | then { | |
181 | 209 | let A = z | |
182 | - | [ScriptTransfer(V.caller, A, fromBase58String( | |
210 | + | [ScriptTransfer(V.caller, A, fromBase58String(ad))] | |
183 | 211 | } | |
184 | 212 | else if ($isInstanceOf(z, "String")) | |
185 | 213 | then { | |
198 | 226 | @Callable(V) | |
199 | 227 | func withdrawFrom (n) = if (f(n)) | |
200 | 228 | then { | |
201 | - | let | |
202 | - | if ((fromBase58String( | |
229 | + | let ae = getStringValue(addressFromStringValue(n), "dTokenId") | |
230 | + | if ((fromBase58String(ae) == V.payments[0].assetId)) | |
203 | 231 | then if ((size(V.payments) > 0)) | |
204 | 232 | then { | |
205 | 233 | let t = toBase58String(V.caller.bytes) | |
206 | - | let | |
207 | - | if (( | |
234 | + | let Z = invoke(addressFromStringValue(n), "withdraw", [t], V.payments) | |
235 | + | if ((Z == Z)) | |
208 | 236 | then { | |
209 | - | let | |
210 | - | let z = | |
237 | + | let ad = getStringValue(addressFromStringValue(n), "assetId") | |
238 | + | let z = Z | |
211 | 239 | if ($isInstanceOf(z, "Int")) | |
212 | 240 | then { | |
213 | 241 | let A = z | |
214 | - | if (( | |
242 | + | if ((ad == "WAVES")) | |
215 | 243 | then [ScriptTransfer(V.caller, A, unit)] | |
216 | - | else [ScriptTransfer(V.caller, A, fromBase58String( | |
244 | + | else [ScriptTransfer(V.caller, A, fromBase58String(ad))] | |
217 | 245 | } | |
218 | 246 | else if ($isInstanceOf(z, "String")) | |
219 | 247 | then { | |
234 | 262 | @Callable(V) | |
235 | 263 | func lockAsCollateralAt (n) = if (f(n)) | |
236 | 264 | then { | |
237 | - | let | |
238 | - | if ((fromBase58String( | |
265 | + | let ae = getStringValue(addressFromStringValue(n), "dTokenId") | |
266 | + | if ((fromBase58String(ae) == V.payments[0].assetId)) | |
239 | 267 | then if ((size(V.payments) > 0)) | |
240 | 268 | then { | |
241 | 269 | let t = toBase58String(V.caller.bytes) | |
242 | - | let | |
243 | - | if (( | |
270 | + | let X = invoke(addressFromStringValue(n), "lockAsCollateral", [t], V.payments) | |
271 | + | if ((X == X)) | |
244 | 272 | then { | |
245 | - | let z = | |
273 | + | let z = X | |
246 | 274 | if ($isInstanceOf(z, "String")) | |
247 | 275 | then { | |
248 | 276 | let A = z |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = valueOrElse(getStringValue(this, "config"), "") | |
5 | 5 | ||
6 | 6 | let b = valueOrElse(getStringValue(addressFromStringValue(a), "admin"), "") | |
7 | 7 | ||
8 | 8 | let c = valueOrElse(getStringValue(this, "pools"), "") | |
9 | 9 | ||
10 | 10 | func d (e) = if ((e == addressFromStringValue(b))) | |
11 | 11 | then true | |
12 | 12 | else false | |
13 | 13 | ||
14 | 14 | ||
15 | 15 | func f (g) = if (contains(c, g)) | |
16 | 16 | then true | |
17 | 17 | else false | |
18 | 18 | ||
19 | 19 | ||
20 | 20 | func h (i,j) = StringEntry(i, j) | |
21 | 21 | ||
22 | 22 | ||
23 | 23 | func k (i,l) = IntegerEntry(i, l) | |
24 | 24 | ||
25 | 25 | ||
26 | 26 | func m (n,o) = { | |
27 | 27 | let p = getIntegerValue(addressFromStringValue(n), "totalSupply") | |
28 | 28 | let q = getIntegerValue(addressFromStringValue(n), "totalBorrow") | |
29 | 29 | let r = (p - q) | |
30 | 30 | if ((r >= o)) | |
31 | 31 | then true | |
32 | 32 | else false | |
33 | 33 | } | |
34 | 34 | ||
35 | 35 | ||
36 | 36 | func s (t,n,u,v,w,x) = { | |
37 | 37 | let y = invoke(addressFromStringValue(n), "getUserHealthParameter", [t, w, x, u, v], nil) | |
38 | 38 | let z = y | |
39 | 39 | if ($isInstanceOf(z, "(Int, Int)")) | |
40 | 40 | then { | |
41 | 41 | let A = z | |
42 | 42 | A | |
43 | 43 | } | |
44 | - | else throw(" | |
44 | + | else throw("Return value has the wrong data type") | |
45 | 45 | } | |
46 | 46 | ||
47 | 47 | ||
48 | 48 | func B (C,D) = fraction((C - D), 1000, C) | |
49 | 49 | ||
50 | 50 | ||
51 | 51 | func E (t,u,v,w,x) = { | |
52 | 52 | let F = split(c, ";") | |
53 | 53 | let G = size(F) | |
54 | 54 | func H (I,J) = { | |
55 | 55 | let K = s(t, J, u, v, w, x) | |
56 | 56 | let z = K | |
57 | 57 | if ($isInstanceOf(z, "(Int, Int)")) | |
58 | 58 | then { | |
59 | 59 | let A = z | |
60 | 60 | $Tuple2((I._1 + K._1), (I._2 + K._1)) | |
61 | 61 | } | |
62 | 62 | else { | |
63 | 63 | let L = z | |
64 | 64 | throw("Test") | |
65 | 65 | } | |
66 | 66 | } | |
67 | 67 | ||
68 | 68 | let M = F | |
69 | 69 | let N = size(M) | |
70 | 70 | let O = $Tuple2(0, 0) | |
71 | 71 | if ((N == 0)) | |
72 | 72 | then O | |
73 | 73 | else { | |
74 | 74 | let P = H(O, M[0]) | |
75 | 75 | if ((N == 1)) | |
76 | 76 | then P | |
77 | 77 | else { | |
78 | 78 | let Q = H(P, M[1]) | |
79 | 79 | if ((N == 2)) | |
80 | 80 | then Q | |
81 | 81 | else { | |
82 | 82 | let R = H(Q, M[2]) | |
83 | 83 | throw("List size exceed 2") | |
84 | 84 | } | |
85 | 85 | } | |
86 | 86 | } | |
87 | 87 | } | |
88 | 88 | ||
89 | 89 | ||
90 | 90 | func S (t,u,v,w,x) = { | |
91 | 91 | let T = E(t, u, v, w, x) | |
92 | 92 | let U = B(T._1, T._2) | |
93 | 93 | if ((U >= 0)) | |
94 | 94 | then true | |
95 | 95 | else false | |
96 | 96 | } | |
97 | 97 | ||
98 | 98 | ||
99 | 99 | @Callable(V) | |
100 | - | func | |
100 | + | func repayTo (n) = if (f(n)) | |
101 | 101 | then { | |
102 | - | let X = getStringValue(addressFromStringValue(n), "assetId") | |
103 | - | if ((X == W)) | |
102 | + | let W = getStringValue(addressFromStringValue(n), "assetId") | |
103 | + | if ((fromBase58String(W) == V.payments[0].assetId)) | |
104 | + | then if ((size(V.payments) > 0)) | |
105 | + | then { | |
106 | + | let t = toBase58String(V.caller.bytes) | |
107 | + | let X = invoke(addressFromStringValue(n), "repay", [t], V.payments) | |
108 | + | if ((X == X)) | |
109 | + | then { | |
110 | + | let z = X | |
111 | + | if ($isInstanceOf(z, "String")) | |
112 | + | then { | |
113 | + | let A = z | |
114 | + | nil | |
115 | + | } | |
116 | + | else throw("Incorrect invoke result!") | |
117 | + | } | |
118 | + | else throw("Strict value is not equal to itself.") | |
119 | + | } | |
120 | + | else throw("No payment attached!") | |
121 | + | else throw("AssetIds does not match") | |
122 | + | } | |
123 | + | else throw("Pool address not found!") | |
124 | + | ||
125 | + | ||
126 | + | ||
127 | + | @Callable(V) | |
128 | + | func borrowFrom (n,Y,o) = if (f(n)) | |
129 | + | then { | |
130 | + | let W = getStringValue(addressFromStringValue(n), "assetId") | |
131 | + | if ((W == Y)) | |
104 | 132 | then if (m(n, o)) | |
105 | 133 | then { | |
106 | 134 | let t = toBase58String(V.caller.bytes) | |
107 | - | if (S(t, o, | |
135 | + | if (S(t, o, Y, 0, "")) | |
108 | 136 | then { | |
109 | - | let | |
110 | - | if (( | |
137 | + | let Z = invoke(addressFromStringValue(n), "borrow", [t, o], nil) | |
138 | + | if ((Z == Z)) | |
111 | 139 | then { | |
112 | - | let z = | |
140 | + | let z = Z | |
113 | 141 | if ($isInstanceOf(z, "Int")) | |
114 | 142 | then { | |
115 | 143 | let A = z | |
116 | - | if (( | |
144 | + | if ((W == "WAVES")) | |
117 | 145 | then [ScriptTransfer(V.caller, A, unit)] | |
118 | - | else [ScriptTransfer(V.caller, A, fromBase58String( | |
146 | + | else [ScriptTransfer(V.caller, A, fromBase58String(W))] | |
119 | 147 | } | |
120 | 148 | else if ($isInstanceOf(z, "String")) | |
121 | 149 | then { | |
122 | 150 | let A = z | |
123 | 151 | nil | |
124 | 152 | } | |
125 | 153 | else throw("Incorrect invoke result!") | |
126 | 154 | } | |
127 | 155 | else throw("Strict value is not equal to itself.") | |
128 | 156 | } | |
129 | 157 | else throw("Borrow exceeds user health!") | |
130 | 158 | } | |
131 | 159 | else throw("Pool liquidity is not sufficient!") | |
132 | 160 | else throw("AssetIds does not match") | |
133 | 161 | } | |
134 | 162 | else throw("Pool address not found!") | |
135 | 163 | ||
136 | 164 | ||
137 | 165 | ||
138 | 166 | @Callable(V) | |
139 | - | func setup ( | |
167 | + | func setup (aa,c) = if (if (!(isDefined(getString(this, "config")))) | |
140 | 168 | then !(isDefined(getString(this, "pools"))) | |
141 | 169 | else false) | |
142 | - | then [h("config", | |
170 | + | then [h("config", aa), h("pools", makeString(c, ";"))] | |
143 | 171 | else throw("Admin and config address already definied!") | |
144 | 172 | ||
145 | 173 | ||
146 | 174 | ||
147 | 175 | @Callable(V) | |
148 | 176 | func addPool (n) = if (d(V.caller)) | |
149 | 177 | then { | |
150 | 178 | let F = split(c, ";") | |
151 | 179 | if ((containsElement(F, n) == false)) | |
152 | 180 | then { | |
153 | - | let | |
154 | - | [h("pools", makeString( | |
181 | + | let ab = (F :+ n) | |
182 | + | [h("pools", makeString(ab, ";"))] | |
155 | 183 | } | |
156 | 184 | else throw("Pool already exists!") | |
157 | 185 | } | |
158 | 186 | else throw("Address does not match with admin address!") | |
159 | 187 | ||
160 | 188 | ||
161 | 189 | ||
162 | 190 | @Callable(V) | |
163 | - | func updateConfig ( | |
164 | - | then [h("config", | |
191 | + | func updateConfig (aa) = if (d(V.caller)) | |
192 | + | then [h("config", aa)] | |
165 | 193 | else throw("Address does not match with admin address!") | |
166 | 194 | ||
167 | 195 | ||
168 | 196 | ||
169 | 197 | @Callable(V) | |
170 | - | func depositAt (n, | |
198 | + | func depositAt (n,ac) = if (f(n)) | |
171 | 199 | then if ((size(V.payments) > 0)) | |
172 | 200 | then { | |
173 | 201 | let t = toBase58String(V.caller.bytes) | |
174 | - | let | |
175 | - | if (( | |
202 | + | let Z = invoke(addressFromStringValue(n), "deposit", [t, ac], V.payments) | |
203 | + | if ((Z == Z)) | |
176 | 204 | then { | |
177 | - | let | |
178 | - | let z = | |
205 | + | let ad = getStringValue(addressFromStringValue(n), "dTokenId") | |
206 | + | let z = Z | |
179 | 207 | if ($isInstanceOf(z, "Int")) | |
180 | 208 | then { | |
181 | 209 | let A = z | |
182 | - | [ScriptTransfer(V.caller, A, fromBase58String( | |
210 | + | [ScriptTransfer(V.caller, A, fromBase58String(ad))] | |
183 | 211 | } | |
184 | 212 | else if ($isInstanceOf(z, "String")) | |
185 | 213 | then { | |
186 | 214 | let A = z | |
187 | 215 | nil | |
188 | 216 | } | |
189 | 217 | else throw("Incorrect invoke result!") | |
190 | 218 | } | |
191 | 219 | else throw("Strict value is not equal to itself.") | |
192 | 220 | } | |
193 | 221 | else throw("No payment attached!") | |
194 | 222 | else throw("Pool address not found!") | |
195 | 223 | ||
196 | 224 | ||
197 | 225 | ||
198 | 226 | @Callable(V) | |
199 | 227 | func withdrawFrom (n) = if (f(n)) | |
200 | 228 | then { | |
201 | - | let | |
202 | - | if ((fromBase58String( | |
229 | + | let ae = getStringValue(addressFromStringValue(n), "dTokenId") | |
230 | + | if ((fromBase58String(ae) == V.payments[0].assetId)) | |
203 | 231 | then if ((size(V.payments) > 0)) | |
204 | 232 | then { | |
205 | 233 | let t = toBase58String(V.caller.bytes) | |
206 | - | let | |
207 | - | if (( | |
234 | + | let Z = invoke(addressFromStringValue(n), "withdraw", [t], V.payments) | |
235 | + | if ((Z == Z)) | |
208 | 236 | then { | |
209 | - | let | |
210 | - | let z = | |
237 | + | let ad = getStringValue(addressFromStringValue(n), "assetId") | |
238 | + | let z = Z | |
211 | 239 | if ($isInstanceOf(z, "Int")) | |
212 | 240 | then { | |
213 | 241 | let A = z | |
214 | - | if (( | |
242 | + | if ((ad == "WAVES")) | |
215 | 243 | then [ScriptTransfer(V.caller, A, unit)] | |
216 | - | else [ScriptTransfer(V.caller, A, fromBase58String( | |
244 | + | else [ScriptTransfer(V.caller, A, fromBase58String(ad))] | |
217 | 245 | } | |
218 | 246 | else if ($isInstanceOf(z, "String")) | |
219 | 247 | then { | |
220 | 248 | let A = z | |
221 | 249 | nil | |
222 | 250 | } | |
223 | 251 | else throw("Incorrect invoke result!") | |
224 | 252 | } | |
225 | 253 | else throw("Strict value is not equal to itself.") | |
226 | 254 | } | |
227 | 255 | else throw("No payment attached!") | |
228 | 256 | else throw("AssetIds does not match") | |
229 | 257 | } | |
230 | 258 | else throw("Pool address not found!") | |
231 | 259 | ||
232 | 260 | ||
233 | 261 | ||
234 | 262 | @Callable(V) | |
235 | 263 | func lockAsCollateralAt (n) = if (f(n)) | |
236 | 264 | then { | |
237 | - | let | |
238 | - | if ((fromBase58String( | |
265 | + | let ae = getStringValue(addressFromStringValue(n), "dTokenId") | |
266 | + | if ((fromBase58String(ae) == V.payments[0].assetId)) | |
239 | 267 | then if ((size(V.payments) > 0)) | |
240 | 268 | then { | |
241 | 269 | let t = toBase58String(V.caller.bytes) | |
242 | - | let | |
243 | - | if (( | |
270 | + | let X = invoke(addressFromStringValue(n), "lockAsCollateral", [t], V.payments) | |
271 | + | if ((X == X)) | |
244 | 272 | then { | |
245 | - | let z = | |
273 | + | let z = X | |
246 | 274 | if ($isInstanceOf(z, "String")) | |
247 | 275 | then { | |
248 | 276 | let A = z | |
249 | 277 | nil | |
250 | 278 | } | |
251 | 279 | else throw("Incorrect invoke result!") | |
252 | 280 | } | |
253 | 281 | else throw("Strict value is not equal to itself.") | |
254 | 282 | } | |
255 | 283 | else throw("No payment attached!") | |
256 | 284 | else throw("AssetIds does not match") | |
257 | 285 | } | |
258 | 286 | else throw("Pool address not found!") | |
259 | 287 | ||
260 | 288 | ||
261 | 289 | ||
262 | 290 | @Callable(V) | |
263 | 291 | func deleteData (af) = [DeleteEntry(af)] | |
264 | 292 | ||
265 | 293 |
github/deemru/w8io/169f3d6 77.75 ms ◑