tx · C7qU4TSRUh2KTZYRMSNg95Fo2xyvBkpM9794Did3k7Xy 3MqK5oySL2rwyxNq5DxLH6KvkPeEXGKsjWN: -0.01000000 Waves 2019.08.05 17:55 [617758] smart account 3MqK5oySL2rwyxNq5DxLH6KvkPeEXGKsjWN > SELF 0.00000000 Waves
{ "type": 13, "id": "C7qU4TSRUh2KTZYRMSNg95Fo2xyvBkpM9794Did3k7Xy", "fee": 1000000, "feeAssetId": null, "timestamp": 1565016876914, "version": 1, "sender": "3MqK5oySL2rwyxNq5DxLH6KvkPeEXGKsjWN", "senderPublicKey": "5DLgJepYSqPyDXqzXTgnDaudXUmmd9E22yNPuEMRrU77", "proofs": [ "38B76aiKLTpZfB5duiq6UKsqooHpFPvwTnq7bQazDgh1bZ97ixzZBUaJpacoFXja7tqFa4nbyyp56Xm9bRFSKVeJ" ], "script": "base64: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AAdleHRyYWN0AAAAAQkABBoAAAACBQAAAAR0aGlzCQABLAAAAAICAAAAEWhvbGRlcl9hdmFpbGFibGVfCQABpAAAAAEFAAAADHJldHVybkluZGV4MQQAAAAJcmV0dXJuQ3IxCQEAAAAHZXh0cmFjdAAAAAEJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABBob2xkZXJfY3JlZGl0ZWRfCQABpAAAAAEFAAAADHJldHVybkluZGV4MQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACAgAAABFob2xkZXJfYXZhaWxhYmxlXwkAAaQAAAABBQAAAAxyZXR1cm5JbmRleDEJAABkAAAAAgkAAGQAAAACBQAAAAlyZXR1cm5BdjEFAAAABnRha2VuMQUAAAAHcHJvZml0MQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACAgAAABBob2xkZXJfY3JlZGl0ZWRfCQABpAAAAAEFAAAADHJldHVybkluZGV4MQkAAGUAAAACBQAAAAlyZXR1cm5DcjEFAAAABnRha2VuMQUAAAAIc3ViTGlzdDEFAAAAA25pbAQAAAAJcmV0dXJuQXYwCQEAAAAHZXh0cmFjdAAAAAEJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABFob2xkZXJfYXZhaWxhYmxlXwkAAaQAAAABBQAAAAxyZXR1cm5JbmRleDAEAAAACXJldHVybkNyMAkBAAAAB2V4dHJhY3QAAAABCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAQaG9sZGVyX2NyZWRpdGVkXwkAAaQAAAABBQAAAAxyZXR1cm5JbmRleDAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgIAAAARaG9sZGVyX2F2YWlsYWJsZV8JAAGkAAAAAQUAAAAMcmV0dXJuSW5kZXgwCQAAZAAAAAIJAABkAAAAAgUAAAAJcmV0dXJuQXYwBQAAAAZ0YWtlbjAFAAAAB3Byb2ZpdDAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgIAAAAQaG9sZGVyX2NyZWRpdGVkXwkAAaQAAAABBQAAAAxyZXR1cm5JbmRleDAJAABlAAAAAgUAAAAJcmV0dXJuQ3IwBQAAAAZ0YWtlbjAFAAAACHN1Ykxpc3QwBQAAAANuaWwJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAD2F2YWlsYWJsZV9mdW5kcwkAAGQAAAACBQAAAA5hdmFpbGFibGVGdW5kcwUAAAAMd2l0aEludGVyZXN0CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAA5jcmVkaXRlZF9mdW5kcwkAAGUAAAACBQAAAA1jcmVkaXRlZEZ1bmRzBQAAABVjdXJyZW50Q2FsbGVyQ3JlZGl0ZWQFAAAACGRhdGFMaXN0AAAAAGwQ4LM=", "chainId": 84, "height": 617758, "spentComplexity": 0 } View: original | compacted Prev: none Next: 9mc62ebM1mS5dvsTKztqfVUmEBz4U9S9wScdRYzQXb2U Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 3 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let creditInterest = 15 | |
5 | + | ||
6 | + | @Callable(i) | |
7 | + | func addHolder () = { | |
8 | + | let pmt = extract(i.payment) | |
9 | + | if (if (isDefined(pmt.assetId)) | |
10 | + | then true | |
11 | + | else (100000000 > pmt.amount)) | |
12 | + | then throw("can hodl waves only at the moment") | |
13 | + | else { | |
14 | + | let callerAddress = toBase58String(i.caller.bytes) | |
15 | + | let currentHoldersCount = match getInteger(this, "holder_count") { | |
16 | + | case i1: Int => | |
17 | + | i1 | |
18 | + | case _ => | |
19 | + | 0 | |
20 | + | } | |
21 | + | let dataList = match getInteger(this, (callerAddress + "_holder_index")) { | |
22 | + | case hi: Int => | |
23 | + | let holderAvailable = extract(getInteger(this, ("holder_available_" + toString(hi)))) | |
24 | + | [DataEntry(("holder_available_" + toString(hi)), (holderAvailable + pmt.amount))] | |
25 | + | case _ => | |
26 | + | [DataEntry(("holder_available_" + toString(currentHoldersCount)), pmt.amount), DataEntry(("holder_credited_" + toString(currentHoldersCount)), 0), DataEntry((callerAddress + "_holder_index"), currentHoldersCount), DataEntry("holder_count", (currentHoldersCount + 1))] | |
27 | + | } | |
28 | + | let availableFunds = match getInteger(this, "available_funds") { | |
29 | + | case i2: Int => | |
30 | + | i2 | |
31 | + | case _ => | |
32 | + | 0 | |
33 | + | } | |
34 | + | WriteSet(DataEntry("available_funds", (availableFunds + pmt.amount)) :: dataList) | |
35 | + | } | |
36 | + | } | |
37 | + | ||
38 | + | ||
39 | + | ||
40 | + | @Callable(i) | |
41 | + | func takeInvestedFunds (amount) = { | |
42 | + | let callerAddress = toBase58String(i.caller.bytes) | |
43 | + | let holderIndex = extract(getInteger(this, (callerAddress + "_holder_index"))) | |
44 | + | let currentHolderAvailable = extract(getInteger(this, ("holder_available_" + toString(holderIndex)))) | |
45 | + | let availableFunds = match getInteger(this, "available_funds") { | |
46 | + | case i3: Int => | |
47 | + | i3 | |
48 | + | case _ => | |
49 | + | 0 | |
50 | + | } | |
51 | + | if ((amount > currentHolderAvailable)) | |
52 | + | then throw("") | |
53 | + | else ScriptResult(WriteSet([DataEntry(("holder_available_" + toString(holderIndex)), (currentHolderAvailable - amount)), DataEntry("available_funds", (availableFunds - amount))]), TransferSet([ScriptTransfer(i.caller, amount, unit)])) | |
54 | + | } | |
55 | + | ||
56 | + | ||
57 | + | ||
58 | + | @Callable(i) | |
59 | + | func addDebitor (amount) = { | |
60 | + | let currentHoldersCount = match getInteger(this, "holder_count") { | |
61 | + | case i4: Int => | |
62 | + | i4 | |
63 | + | case _ => | |
64 | + | 0 | |
65 | + | } | |
66 | + | let creditId = toBase58String(i.transactionId) | |
67 | + | let dataList = if ((currentHoldersCount > 0)) | |
68 | + | then { | |
69 | + | let avValue0 = extract(getInteger(this, "holder_available_0")) | |
70 | + | let remaining0 = amount | |
71 | + | let taken0 = if ((0 >= remaining0)) | |
72 | + | then 0 | |
73 | + | else if ((remaining0 > avValue0)) | |
74 | + | then avValue0 | |
75 | + | else remaining0 | |
76 | + | let counter0 = if ((taken0 > 0)) | |
77 | + | then (0 + 1) | |
78 | + | else 0 | |
79 | + | let subList0 = if (((remaining0 - taken0) > 0)) | |
80 | + | then if ((counter0 >= 3)) | |
81 | + | then throw("Funds unavailable") | |
82 | + | else if ((currentHoldersCount > 1)) | |
83 | + | then { | |
84 | + | let avValue1 = extract(getInteger(this, "holder_available_1")) | |
85 | + | let remaining1 = (remaining0 - taken0) | |
86 | + | let taken1 = if ((0 >= remaining1)) | |
87 | + | then 0 | |
88 | + | else if ((remaining1 > avValue1)) | |
89 | + | then avValue1 | |
90 | + | else remaining1 | |
91 | + | let counter1 = if ((taken1 > 0)) | |
92 | + | then (counter0 + 1) | |
93 | + | else counter0 | |
94 | + | let subList1 = if (((remaining1 - taken1) > 0)) | |
95 | + | then if ((counter1 >= 3)) | |
96 | + | then throw("Funds unavailable") | |
97 | + | else if ((currentHoldersCount > 2)) | |
98 | + | then { | |
99 | + | let avValue2 = extract(getInteger(this, "holder_available_2")) | |
100 | + | let remaining2 = (remaining1 - taken1) | |
101 | + | let taken2 = if ((0 >= remaining2)) | |
102 | + | then 0 | |
103 | + | else if ((remaining2 > avValue2)) | |
104 | + | then avValue2 | |
105 | + | else remaining2 | |
106 | + | let counter2 = if ((taken2 > 0)) | |
107 | + | then (counter1 + 1) | |
108 | + | else counter1 | |
109 | + | let subList2 = if (((remaining2 - taken2) > 0)) | |
110 | + | then if ((counter2 >= 3)) | |
111 | + | then throw("Funds unavailable") | |
112 | + | else if ((currentHoldersCount > 3)) | |
113 | + | then { | |
114 | + | let avValue3 = extract(getInteger(this, "holder_available_3")) | |
115 | + | let remaining3 = (remaining2 - taken2) | |
116 | + | let taken3 = if ((0 >= remaining3)) | |
117 | + | then 0 | |
118 | + | else if ((remaining3 > avValue3)) | |
119 | + | then avValue3 | |
120 | + | else remaining3 | |
121 | + | let counter3 = if ((taken3 > 0)) | |
122 | + | then (counter2 + 1) | |
123 | + | else counter2 | |
124 | + | let subList3 = if (((remaining3 - taken3) > 0)) | |
125 | + | then if ((counter3 >= 3)) | |
126 | + | then throw("Funds unavailable") | |
127 | + | else if ((currentHoldersCount > 4)) | |
128 | + | then { | |
129 | + | let avValue4 = extract(getInteger(this, "holder_available_4")) | |
130 | + | let remaining4 = (remaining3 - taken3) | |
131 | + | let taken4 = if ((0 >= remaining4)) | |
132 | + | then 0 | |
133 | + | else if ((remaining4 > avValue4)) | |
134 | + | then avValue4 | |
135 | + | else remaining4 | |
136 | + | let counter4 = if ((taken4 > 0)) | |
137 | + | then (counter3 + 1) | |
138 | + | else counter3 | |
139 | + | let subList4 = if (((remaining4 - taken4) > 0)) | |
140 | + | then if ((counter4 >= 3)) | |
141 | + | then throw("Funds unavailable") | |
142 | + | else if ((currentHoldersCount > 5)) | |
143 | + | then { | |
144 | + | let avValue5 = extract(getInteger(this, "holder_available_5")) | |
145 | + | let remaining5 = (remaining4 - taken4) | |
146 | + | let taken5 = if ((0 >= remaining5)) | |
147 | + | then 0 | |
148 | + | else if ((remaining5 > avValue5)) | |
149 | + | then avValue5 | |
150 | + | else remaining5 | |
151 | + | let counter5 = if ((taken5 > 0)) | |
152 | + | then (counter4 + 1) | |
153 | + | else counter4 | |
154 | + | let subList5 = if (((remaining5 - taken5) > 0)) | |
155 | + | then if ((counter5 >= 3)) | |
156 | + | then throw("Funds unavailable") | |
157 | + | else if ((currentHoldersCount > 6)) | |
158 | + | then { | |
159 | + | let avValue6 = extract(getInteger(this, "holder_available_6")) | |
160 | + | let remaining6 = (remaining5 - taken5) | |
161 | + | let taken6 = if ((0 >= remaining6)) | |
162 | + | then 0 | |
163 | + | else if ((remaining6 > avValue6)) | |
164 | + | then avValue6 | |
165 | + | else remaining6 | |
166 | + | let counter6 = if ((taken6 > 0)) | |
167 | + | then (counter5 + 1) | |
168 | + | else counter5 | |
169 | + | let subList6 = if (((remaining6 - taken6) > 0)) | |
170 | + | then if ((counter6 >= 3)) | |
171 | + | then throw("Funds unavailable") | |
172 | + | else if ((currentHoldersCount > 7)) | |
173 | + | then { | |
174 | + | let avValue7 = extract(getInteger(this, "holder_available_7")) | |
175 | + | let remaining7 = (remaining6 - taken6) | |
176 | + | let taken7 = if ((0 >= remaining7)) | |
177 | + | then 0 | |
178 | + | else if ((remaining7 > avValue7)) | |
179 | + | then avValue7 | |
180 | + | else remaining7 | |
181 | + | let counter7 = if ((taken7 > 0)) | |
182 | + | then (counter6 + 1) | |
183 | + | else counter6 | |
184 | + | let subList7 = if (((remaining7 - taken7) > 0)) | |
185 | + | then if ((counter7 >= 3)) | |
186 | + | then throw("Funds unavailable") | |
187 | + | else nil | |
188 | + | else nil | |
189 | + | if ((taken7 >= (remaining7 / (3 - counter6)))) | |
190 | + | then [DataEntry("holder_available_7", (avValue7 - taken7)), DataEntry("holder_credited_7", (extract(getInteger(this, "holder_credited_7")) + taken7)), DataEntry(((creditId + "_") + toString(counter6)), 7), DataEntry(((creditId + "_taken_") + toString(counter6)), taken7)] :: subList7 | |
191 | + | else if (if ((7 == (currentHoldersCount - 1))) | |
192 | + | then ((remaining7 - taken7) > 0) | |
193 | + | else false) | |
194 | + | then throw("") | |
195 | + | else subList7 | |
196 | + | } | |
197 | + | else nil | |
198 | + | else nil | |
199 | + | if ((taken6 >= (remaining6 / (3 - counter5)))) | |
200 | + | then [DataEntry("holder_available_6", (avValue6 - taken6)), DataEntry("holder_credited_6", (extract(getInteger(this, "holder_credited_6")) + taken6)), DataEntry(((creditId + "_") + toString(counter5)), 6), DataEntry(((creditId + "_taken_") + toString(counter5)), taken6)] :: subList6 | |
201 | + | else if (if ((6 == (currentHoldersCount - 1))) | |
202 | + | then ((remaining6 - taken6) > 0) | |
203 | + | else false) | |
204 | + | then throw("") | |
205 | + | else subList6 | |
206 | + | } | |
207 | + | else nil | |
208 | + | else nil | |
209 | + | if ((taken5 >= (remaining5 / (3 - counter4)))) | |
210 | + | then [DataEntry("holder_available_5", (avValue5 - taken5)), DataEntry("holder_credited_5", (extract(getInteger(this, "holder_credited_5")) + taken5)), DataEntry(((creditId + "_") + toString(counter4)), 5), DataEntry(((creditId + "_taken_") + toString(counter4)), taken5)] :: subList5 | |
211 | + | else if (if ((5 == (currentHoldersCount - 1))) | |
212 | + | then ((remaining5 - taken5) > 0) | |
213 | + | else false) | |
214 | + | then throw("") | |
215 | + | else subList5 | |
216 | + | } | |
217 | + | else nil | |
218 | + | else nil | |
219 | + | if ((taken4 >= (remaining4 / (3 - counter3)))) | |
220 | + | then [DataEntry("holder_available_4", (avValue4 - taken4)), DataEntry("holder_credited_4", (extract(getInteger(this, "holder_credited_4")) + taken4)), DataEntry(((creditId + "_") + toString(counter3)), 4), DataEntry(((creditId + "_taken_") + toString(counter3)), taken4)] :: subList4 | |
221 | + | else if (if ((4 == (currentHoldersCount - 1))) | |
222 | + | then ((remaining4 - taken4) > 0) | |
223 | + | else false) | |
224 | + | then throw("") | |
225 | + | else subList4 | |
226 | + | } | |
227 | + | else nil | |
228 | + | else nil | |
229 | + | if ((taken3 >= (remaining3 / (3 - counter2)))) | |
230 | + | then [DataEntry("holder_available_3", (avValue3 - taken3)), DataEntry("holder_credited_3", (extract(getInteger(this, "holder_credited_3")) + taken3)), DataEntry(((creditId + "_") + toString(counter2)), 3), DataEntry(((creditId + "_taken_") + toString(counter2)), taken3)] :: subList3 | |
231 | + | else if (if ((3 == (currentHoldersCount - 1))) | |
232 | + | then ((remaining3 - taken3) > 0) | |
233 | + | else false) | |
234 | + | then throw("") | |
235 | + | else subList3 | |
236 | + | } | |
237 | + | else nil | |
238 | + | else nil | |
239 | + | if ((taken2 >= (remaining2 / (3 - counter1)))) | |
240 | + | then [DataEntry("holder_available_2", (avValue2 - taken2)), DataEntry("holder_credited_2", (extract(getInteger(this, "holder_credited_2")) + taken2)), DataEntry(((creditId + "_") + toString(counter1)), 2), DataEntry(((creditId + "_taken_") + toString(counter1)), taken2)] :: subList2 | |
241 | + | else if (if ((2 == (currentHoldersCount - 1))) | |
242 | + | then ((remaining2 - taken2) > 0) | |
243 | + | else false) | |
244 | + | then throw("") | |
245 | + | else subList2 | |
246 | + | } | |
247 | + | else nil | |
248 | + | else nil | |
249 | + | if ((taken1 >= (remaining1 / (3 - counter0)))) | |
250 | + | then [DataEntry("holder_available_1", (avValue1 - taken1)), DataEntry("holder_credited_1", (extract(getInteger(this, "holder_credited_1")) + taken1)), DataEntry(((creditId + "_") + toString(counter0)), 1), DataEntry(((creditId + "_taken_") + toString(counter0)), taken1)] :: subList1 | |
251 | + | else if (if ((1 == (currentHoldersCount - 1))) | |
252 | + | then ((remaining1 - taken1) > 0) | |
253 | + | else false) | |
254 | + | then throw("") | |
255 | + | else subList1 | |
256 | + | } | |
257 | + | else nil | |
258 | + | else nil | |
259 | + | if ((taken0 >= (remaining0 / (3 - 0)))) | |
260 | + | then [DataEntry("holder_available_0", (avValue0 - taken0)), DataEntry("holder_credited_0", (extract(getInteger(this, "holder_credited_0")) + taken0)), DataEntry(((creditId + "_") + toString(0)), 0), DataEntry(((creditId + "_taken_") + toString(0)), taken0)] :: subList0 | |
261 | + | else if (if ((0 == (currentHoldersCount - 1))) | |
262 | + | then ((remaining0 - taken0) > 0) | |
263 | + | else false) | |
264 | + | then throw("") | |
265 | + | else subList0 | |
266 | + | } | |
267 | + | else nil | |
268 | + | let availableFunds = match getInteger(this, "available_funds") { | |
269 | + | case i5: Int => | |
270 | + | i5 | |
271 | + | case _ => | |
272 | + | 0 | |
273 | + | } | |
274 | + | let creditedFunds = match getInteger(this, "credited_funds") { | |
275 | + | case i6: Int => | |
276 | + | i6 | |
277 | + | case _ => | |
278 | + | 0 | |
279 | + | } | |
280 | + | WriteSet([DataEntry("available_funds", (availableFunds - amount)), DataEntry("credited_funds", (creditedFunds + amount)), DataEntry((creditId + "_taker"), i.caller.bytes), DataEntry((creditId + "_amount"), amount)] :: dataList) | |
281 | + | } | |
282 | + | ||
283 | + | ||
284 | + | ||
285 | + | @Callable(i) | |
286 | + | func returnCredit (creditId) = { | |
287 | + | let availableFunds = match getInteger(this, "available_funds") { | |
288 | + | case i7: Int => | |
289 | + | i7 | |
290 | + | case _ => | |
291 | + | 0 | |
292 | + | } | |
293 | + | let creditedFunds = match getInteger(this, "credited_funds") { | |
294 | + | case i8: Int => | |
295 | + | i8 | |
296 | + | case _ => | |
297 | + | 0 | |
298 | + | } | |
299 | + | let b58CreditId = toBase58String(creditId) | |
300 | + | let currentCallerCredited = extract(getInteger(this, (b58CreditId + "_amount"))) | |
301 | + | let withInterest = ((currentCallerCredited * (100 + creditInterest)) / 100) | |
302 | + | let currentHoldersCount = match getInteger(this, "holder_count") { | |
303 | + | case i9: Int => | |
304 | + | i9 | |
305 | + | case _ => | |
306 | + | 0 | |
307 | + | } | |
308 | + | let pmt = extract(i.payment) | |
309 | + | if (if (isDefined(pmt.assetId)) | |
310 | + | then true | |
311 | + | else (withInterest > pmt.amount)) | |
312 | + | then throw("") | |
313 | + | else { | |
314 | + | let dataList = { | |
315 | + | let returnIndex0 = match getInteger(this, (b58CreditId + "_0")) { | |
316 | + | case i10: Int => | |
317 | + | i10 | |
318 | + | case _ => | |
319 | + | -1 | |
320 | + | } | |
321 | + | if ((returnIndex0 >= 0)) | |
322 | + | then { | |
323 | + | let taken0 = extract(getInteger(this, (b58CreditId + "_taken_0"))) | |
324 | + | let profit0 = ((taken0 * creditInterest) / 100) | |
325 | + | let subList0 = { | |
326 | + | let returnIndex1 = match getInteger(this, (b58CreditId + "_1")) { | |
327 | + | case i11: Int => | |
328 | + | i11 | |
329 | + | case _ => | |
330 | + | -1 | |
331 | + | } | |
332 | + | if ((returnIndex1 >= 0)) | |
333 | + | then { | |
334 | + | let taken1 = extract(getInteger(this, (b58CreditId + "_taken_1"))) | |
335 | + | let profit1 = ((taken1 * creditInterest) / 100) | |
336 | + | let subList1 = { | |
337 | + | let returnIndex2 = match getInteger(this, (b58CreditId + "_2")) { | |
338 | + | case i12: Int => | |
339 | + | i12 | |
340 | + | case _ => | |
341 | + | -1 | |
342 | + | } | |
343 | + | if ((returnIndex2 >= 0)) | |
344 | + | then { | |
345 | + | let taken2 = extract(getInteger(this, (b58CreditId + "_taken_2"))) | |
346 | + | let profit2 = ((taken2 * creditInterest) / 100) | |
347 | + | let subList2 = { | |
348 | + | let returnIndex3 = match getInteger(this, (b58CreditId + "_3")) { | |
349 | + | case i13: Int => | |
350 | + | i13 | |
351 | + | case _ => | |
352 | + | -1 | |
353 | + | } | |
354 | + | if ((returnIndex3 >= 0)) | |
355 | + | then { | |
356 | + | let taken3 = extract(getInteger(this, (b58CreditId + "_taken_3"))) | |
357 | + | let profit3 = ((taken3 * creditInterest) / 100) | |
358 | + | let subList3 = nil | |
359 | + | let returnAv3 = extract(getInteger(this, ("holder_available_" + toString(returnIndex3)))) | |
360 | + | let returnCr3 = extract(getInteger(this, ("holder_credited_" + toString(returnIndex3)))) | |
361 | + | [DataEntry(("holder_available_" + toString(returnIndex3)), ((returnAv3 + taken3) + profit3)), DataEntry(("holder_credited_" + toString(returnIndex3)), (returnCr3 - taken3))] :: subList3 | |
362 | + | } | |
363 | + | else nil | |
364 | + | } | |
365 | + | let returnAv2 = extract(getInteger(this, ("holder_available_" + toString(returnIndex2)))) | |
366 | + | let returnCr2 = extract(getInteger(this, ("holder_credited_" + toString(returnIndex2)))) | |
367 | + | [DataEntry(("holder_available_" + toString(returnIndex2)), ((returnAv2 + taken2) + profit2)), DataEntry(("holder_credited_" + toString(returnIndex2)), (returnCr2 - taken2))] :: subList2 | |
368 | + | } | |
369 | + | else nil | |
370 | + | } | |
371 | + | let returnAv1 = extract(getInteger(this, ("holder_available_" + toString(returnIndex1)))) | |
372 | + | let returnCr1 = extract(getInteger(this, ("holder_credited_" + toString(returnIndex1)))) | |
373 | + | [DataEntry(("holder_available_" + toString(returnIndex1)), ((returnAv1 + taken1) + profit1)), DataEntry(("holder_credited_" + toString(returnIndex1)), (returnCr1 - taken1))] :: subList1 | |
374 | + | } | |
375 | + | else nil | |
376 | + | } | |
377 | + | let returnAv0 = extract(getInteger(this, ("holder_available_" + toString(returnIndex0)))) | |
378 | + | let returnCr0 = extract(getInteger(this, ("holder_credited_" + toString(returnIndex0)))) | |
379 | + | [DataEntry(("holder_available_" + toString(returnIndex0)), ((returnAv0 + taken0) + profit0)), DataEntry(("holder_credited_" + toString(returnIndex0)), (returnCr0 - taken0))] :: subList0 | |
380 | + | } | |
381 | + | else nil | |
382 | + | } | |
383 | + | WriteSet([DataEntry("available_funds", (availableFunds + withInterest)), DataEntry("credited_funds", (creditedFunds - currentCallerCredited))] :: dataList) | |
384 | + | } | |
385 | + | } | |
386 | + | ||
387 | + |
github/deemru/w8io/169f3d6 51.57 ms ◑