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:
OldNewDifferences
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