tx · 7UUAG4KdCFj3QfnPkmpnDuben3QeaiCV2sPSE1F8SWma

3MrNa3KKYBiosWiN4NMxJKERRtAWi8Ny9QY:  -0.01500000 Waves

2022.10.01 06:22 [2252752] smart account 3MrNa3KKYBiosWiN4NMxJKERRtAWi8Ny9QY > SELF 0.00000000 Waves

{ "type": 13, "id": "7UUAG4KdCFj3QfnPkmpnDuben3QeaiCV2sPSE1F8SWma", "fee": 1500000, "feeAssetId": null, "timestamp": 1664594579968, "version": 2, "chainId": 84, "sender": "3MrNa3KKYBiosWiN4NMxJKERRtAWi8Ny9QY", "senderPublicKey": "AcDSZVzDQTVsumAAwEQdT8iWi8xHRjLNJJ53MzYzk4m7", "proofs": [ "3roJJokCjA1b8eXm8av8X5HwsnoRgia6r9hMUccjoEugqEuSCvhB5Y588AmAhUpHAycvDYMLNSTtfYkmfMFAiPmz" ], "script": "base64:AAIFAAAAAAAAAE0IAhIHCgUICAgBARIDCgEIEgMKAQgSAwoBCBIDCgEIEgMKAQgSAwoBCBIDCgEIEgMKAQgSBAoCCAkSBQoDCAgBEgUKAwEIARIECgIIAQAAACUAAAAADGxvY2tpbmdTdG9yZQUAAAAEdGhpcwAAAAAMc3Rha2luZ1N0b3JlAgAAAAhfUmVzZXJ2ZQAAAAARbWluaW11bUxvY2tBbW91bnQCAAAADl9NaW5Mb2NrQW1vdW50AAAAABFtYXhpbXVtTG9ja0Ftb3VudAIAAAAOX01heExvY2tBbW91bnQAAAAACWFzc2V0TGlzdAUAAAADbmlsAAAAABF1bmxvY2tFbGlnaWJpbGl0eQIAAAAgX0VsaWdpYmxlX3RvX3VubG9ja19hdF90aW1lc3RhbXAAAAAADGxvY2tlZEFtb3VudAIAAAAOX0Ftb3VudF9sb2NrZWQAAAAAC2xvY2tlZEFzc2V0AgAAAA1fQXNzZXRfbG9ja2VkAAAAAAR1c2VyAgAAAAVfVXNlcgAAAAAKQVBZX0Ftb3VudAIAAAALX0FQWV9hbW91bnQAAAAAEXRvdGFsTG9ja2VkQU1vdW50AgAAABRfVG90YWxfTG9ja2VkX0Ftb3VudAAAAAANbG9ja2luZ1BlcmlvZAIAAAAMX0RheXNfbG9ja2VkAAAAAAplbnRyeUluZGV4AgAAAAxfRW50cnlfSW5kZXgAAAAADmFscmVhZHlDbGFpbWVkAgAAABBfQWxyZWFkeV9DbGFpbWVkAAAAAAVhZG1pbgIAAAAGYWRtaW5fAAAAAA1taWxpU2VjUGVyRGF5AAAAAAAFJlwAAAAAABFzaXhIb3Vyc0luTWlsaVNlYwAAAAAAAUmXAAAAAAATc2V2ZW5EYXlzTG9ja1BlcmlvZAAAAAAAAAAABwAAAAAWZm91cnRlZW5EYXlzTG9ja1BlcmlvZAAAAAAAAAAADgAAAAAUdGhpcnR5RGF5c0xvY2tQZXJpb2QAAAAAAAAAAB4AAAAAE3NpeHR5RGF5c0xvY2tQZXJpb2QAAAAAAAAAADwAAAAAFG5pbmV0eURheXNMb2NrUGVyaW9kAAAAAAAAAABaAQAAAARnZXRJAAAAAQAAAANrZXkJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AQAAAARnZXRTAAAAAQAAAANrZXkJ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AAAABGRhdGEFAAAAByRtYXRjaDAJAQAAABF3cml0ZUNvbnN0SW50ZWdlcgAAAAIFAAAAA2tleQUAAAAEZGF0YQkAAAIAAAABAgAAABd1bnN1cHBvcnRlZCBjb25maWcgdHlwZQEAAAATaW5jcmVtZW50RW50cnlJbmRleAAAAAEAAAADa2V5BAAAAAZ1SW5kZXgJAQAAAARnZXRJAAAAAQUAAAADa2V5AwkBAAAACWlzRGVmaW5lZAAAAAEFAAAABnVJbmRleAkAAGQAAAACCQEAAAAFdmFsdWUAAAABBQAAAAZ1SW5kZXgAAAAAAAAAAAEAAAAAAAAAAAAAAAANAAAAAWkBAAAACGFkZEFzc2V0AAAABQAAAAtBc3NldFRpY2tlcgAAAAdBc3NldElEAAAADEFzc2V0UmVzZXJ2ZQAAABZBc3NldE1pbmltdW1Mb2NrQW1vdW50AAAAFkFzc2V0TWF4aW11bUxvY2tBbW91bnQEAAAABWNoZWNrCQEAAAAJYWRtaW5Pbmx5AAAAAQUAAAABaQMJAAAAAAAAAgUAAAAFY2hlY2sFAAAABWNoZWNrBAAAAA1hU3Rha2luZ1N0b3JlCQABLAAAAAIFAAAAC0Fzc2V0VGlja2VyBQAAAAxzdGFraW5nU3RvcmUEAAAAEmFNaW5pbXVtTG9ja0Ftb3VudAkAASwAAAACBQAAAAtBc3NldFRpY2tlcgUAAAARbWluaW11bUxvY2tBbW91bnQEAAAAEmFNYXhpbXVtTG9ja0Ftb3VudAkAASwAAAACBQAAAAtBc3NldFRpY2tlcgUAAAARbWF4aW11bUxvY2tBbW91bnQEAAAAC2NoZWNrTWluTWF4AwkAAGYAAAACBQAAABZBc3NldE1heGltdW1Mb2NrQW1vdW50BQAAABZBc3NldE1pbmltdW1Mb2NrQW1vdW50CQAETAAAAAIJAQAAABF3cml0ZUNvbnN0SW50ZWdlcgAAAAIFAAAAEmFNaW5pbXVtTG9ja0Ftb3VudAUAAAAWQXNzZXRNaW5pbXVtTG9ja0Ftb3VudAkABEwAAAACCQEAAAARd3JpdGVDb25zdEludGVnZXIAAAACBQAAABJhTWF4aW11bUxvY2tBbW91bnQFAAAAFkFzc2V0TWF4aW11bUxvY2tBbW91bnQFAAAAA25pbAkABEwAAAACCQEAAAARd3JpdGVDb25zdEludGVnZXIAAAACBQAAABJhTWluaW11bUxvY2tBbW91bnQFAAAAFkFzc2V0TWF4aW11bUxvY2tBbW91bnQJAARMAAAAAgkBAAAAEXdyaXRlQ29uc3RJbnRlZ2VyAAAAAgUAAAASYU1heGltdW1Mb2NrQW1vdW50BQAAABZBc3NldE1pbmltdW1Mb2NrQW1vdW50BQAAAANuaWwJAAROAAAAAgkABEwAAAACCQEAAAAQd3JpdGVDb25zdFN0cmluZwAAAAIFAAAAC0Fzc2V0VGlja2VyBQAAAAdBc3NldElECQAETAAAAAIJAQAAABB3cml0ZUNvbnN0U3RyaW5nAAAAAgUAAAANYVN0YWtpbmdTdG9yZQUAAAAMQXNzZXRSZXNlcnZlBQAAAANuaWwFAAAAC2NoZWNrTWluTWF4CQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAAtkZWxldGVBc3NldAAAAAEAAAALQXNzZXRUaWNrZXIEAAAABWNoZWNrCQEAAAAJYWRtaW5Pbmx5AAAAAQUAAAABaQMJAAAAAAAAAgUAAAAFY2hlY2sFAAAABWNoZWNrBAAAAAdhc3NldElECQEAAAAOdGhyb3dPclJldHVyblMAAAACCQEAAAAEZ2V0UwAAAAEFAAAAC0Fzc2V0VGlja2VyCQABLAAAAAIJAAEsAAAAAgIAAAASYXNzZXQgd2l0aCB0aWNrZXIgBQAAAAtBc3NldFRpY2tlcgIAAAAKIG5vdCBmb3VuZAMJAAAAAAAAAgUAAAAHYXNzZXRJRAUAAAAHYXNzZXRJRAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABBQAAAAtBc3NldFRpY2tlcgkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIFAAAAC0Fzc2V0VGlja2VyBQAAABFtaW5pbXVtTG9ja0Ftb3VudAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIFAAAAC0Fzc2V0VGlja2VyBQAAABFtYXhpbXVtTG9ja0Ftb3VudAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIFAAAAC0Fzc2V0VGlja2Vy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AAAGY2FsbGVyBAAAAApvdGhlckFkbWluCQABLAAAAAIFAAAABWFkbWluBQAAAAZjYWxsZXIEAAAAD2NoZWNrT2xkQWRkcmVzcwkBAAAADnRocm93T3JSZXR1cm5TAAAAAgkBAAAABGdldFMAAAABBQAAAApvdGhlckFkbWluAgAAABlubyBwcmV2aW91cyBhZGRyZXNzIGZvdW5kAwkAAAAAAAACBQAAAA9jaGVja09sZEFkZHJlc3MFAAAAD2NoZWNrT2xkQWRkcmVzcwQAAAAKZGVsQWRkcmVzcwkBAAAAC0RlbGV0ZUVudHJ5AAAAAQUAAAAKb3RoZXJBZG1pbgMJAAAAAAAAAgUAAAAKZGVsQWRkcmVzcwUAAAAKZGVsQWRkcmVzcwkABEwAAAACCQEAAAAQd3JpdGVDb25zdFN0cmluZwAAAAIFAAAACm90aGVyQWRtaW4JAAQlAAAAAQUAAAAJYWRtaW5BZGRyBQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAQcmVtb3ZlT3RoZXJBZG1pbgAAAAEAAAAHYWRkcmVzcwQAAAAGY2hlY2tzCQEAAAAJYWRtaW5Pbmx5AAAAAQUAAAABaQMJAAAAAAAAAgUAAAAGY2hlY2tzBQAAAAZjaGVja3MEAAAACWFkbWluQWRkcgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEJgAAAAEFAAAAB2FkZHJlc3MCAAAAD2ludmFsaWQgYWRkcmVzcwQAAAAMb3RoZXJBZGRyZXNzCQABLAAAAAIFAAAABWFkbWluCQAEJQAAAAEFAAAACWFkbWluQWRkcgQAAAAIZGVsQWRtaW4JAQAAAAtEZWxldGVFbnRyeQAAAAEFAAAADG90aGVyQWRkcmVzcwMJAAAAAAAAAgUAAAAIZGVsQWRtaW4FAAAACGRlbEFkbWluBQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVh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ASwAAAACBQAAAAtBc3NldFRpY2tlcgUAAAARbWluaW11bUxvY2tBbW91bnQCAAAANWludGVybmFsIGVycm9yOiBtaW5pbXVtIHN0YWNraW5nIGFtb3VudCBub3Qgc3BlY2lmaWVkBAAAAAptYXhUb1N0YWtlCQEAAAAOdGhyb3dPclJldHVybkkAAAACCQEAAAAEZ2V0SQAAAAEJAAEsAAAAAgUAAAALQXNzZXRUaWNrZXIFAAAAEW1heGltdW1Mb2NrQW1vdW50AgAAADRpbnRlcm5hbCBlcnJvcjogbWF4aW11bSBzdGFraW5nIGFtb3VudCBub3Qgc3BlY2lmaWVkBAAAAAZjaGVjazMJAQAAAAd0aHJvd0lmAAAAAgMJAABmAAAAAgUAAAAKbWluVG9TdGFrZQUAAAANYW1vdW50VG9TdGFrZQYJAABmAAAAAgUAAAANYW1vdW50VG9TdGFrZQUAAAAKbWF4VG9TdGFrZQIAAAAec3Rha2luZyBhbW91bnQgaXMgb3V0IG9mIHJhbmdlAwkAAAAAAAACBQAAAAZjaGVjazMFAAAABmNoZWNrMwQAAAAMdVRvdGFsTG9ja2VkCQABLAAAAAIFAAAABnVzZXJJZAUAAAARdG90YWxMb2NrZWRBTW91bnQEAAAACXVTdW1Ub3RhbAMJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEJAQAAAAVnZXRJVgAAAAEFAAAADHVUb3RhbExvY2tlZAUAAAANYW1vdW50VG9TdGFrZQkAAGQAAAACBQAAAA1hbW91bnRUb1N0YWtlCQEAAAAFZ2V0SVYAAAABBQAAAAx1VG90YWxMb2NrZWQEAAAABmNoZWNrNAkBAAAAB3Rocm93SWYAAAACCQAAZgAAAAIFAAAACXVTdW1Ub3RhbAUAAAAKbWF4VG9TdGFrZQIAAAAdeW91IGhhdmUgbWF4ZWQgb3V0IHlvdXIgcXVvdGEDCQAAAAAAAAIFAAAABmNoZWNrNAUAAAAGY2hlY2s0BAAAAA51RW50cnlUb1N0cmluZwkAAaQAAAABBQAAAApFbnRyeUluZGV4BAAAAAZ1RW50cnkJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAAV8FAAAAC0Fzc2V0VGlja2VyAgAAAAFfBQAAAA51RW50cnlUb1N0cmluZwQAAAANdVVzZXJFbnRyeUtleQkAASwAAAACBQAAAAZ1c2VySWQFAAAABnVFbnRyeQQAAAAHdVVzZXJJZAkAASwAAAACCQABLAAAAAIFAAAABnVzZXJJZAUAAAAGdUVudHJ5BQAAAAR1c2VyBAAAAAZ1QXNzZXQJAAEsAAAAAgkAASwAAAACBQAAAAZ1c2VySWQFAAAABnVFbnRyeQUAAAALbG9ja2VkQXNzZXQEAAAADnVMb2NraW5nUGVyaW9kCQABLAAAAAIJAAEsAAAAAgUAAAAGdXNlcklkBQAAAAZ1RW50cnkFAAAADWxvY2tpbmdQZXJpb2QEAAAADXVMb2NrZWRBbW91bnQJAAEsAAAAAgkAASwAAAACBQAAAAZ1c2VySWQFAAAABnVFbnRyeQUAAAAMbG9ja2VkQW1vdW50BAAAAAR1QVBZCQABLAAAAAIJAAEsAAAAAgUAAAAGdXNlcklkBQAAAAZ1RW50cnkFAAAACkFQWV9BbW91bnQEAAAAEnVVbmxvY2tFbGlnaWJpbGl0eQkAASwAAAACCQABLAAAAAIFAAAABnVzZXJJZAUAAAAGdUVudHJ5BQAAABF1bmxvY2tFbGlnaWJpbGl0eQQAAAAPdUFscmVhZHlDbGFpbWVkCQABLAAAAAIJAAEsAAAAAgUAAAAGdXNlcklkBQAAAAZ1RW50cnkFAAAADmFscmVhZHlDbGFpbWVkBAAAAAlTdG9yZWRBUFkJAAP8AAAABAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAAAVnZXRTVgAAAAEFAAAABWFkbWluAgAAAAxnZXRBUFlBbW91bnQJAARMAAAAAgUAAAAGdXNlcklkCQAETAAAAAIFAAAAC0Fzc2V0VGlja2VyCQAETAAAAAIFAAAACkVudHJ5SW5kZXgFAAAAA25pbAUAAAADbmlsBAAAAANBUFkEAAAAByRtYXRjaDAFAAAACVN0b3JlZEFQWQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFjBQAAAAckbWF0Y2gwBQAAAAFjCQAAAgAAAAEJAAEsAAAAAgIAAAAhY291bGQgbm90IGdldCB0aGUgQVBZIGFtb3VudCBmb3IgBQAAAAZ1c2VySWQJAARMAAAAAgkBAAAAEXdyaXRlQ29uc3RJbnRlZ2VyAAAAAgUAAAANdVVzZXJFbnRyeUtleQUAAAAKRW50cnlJbmRleAkABEwAAAACCQEAAAAQd3JpdGVDb25zdFN0cmluZwAAAAIFAAAAB3VVc2VySWQFAAAABnVzZXJJZAkABEwAAAACCQEAAAAQd3JpdGVDb25zdFN0cmluZwAAAAIFAAAABnVBc3NldAUAAAAFYXNzZXQJAARMAAAAAgkBAAAAEXdyaXRlQ29uc3RJbnRlZ2VyAAAAAgUAAAAOdUxvY2tpbmdQZXJpb2QFAAAACmxvY2tQZXJpb2QJAARMAAAAAgkBAAAAEXdyaXRlQ29uc3RJbnRlZ2VyAAAAAgUAAAANdUxvY2tlZEFtb3VudAgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAGYW1vdW50CQAETAAAAAIJAQAAABF3cml0ZUNvbnN0SW50ZWdlcgAAAAIFAAAADHVUb3RhbExvY2tlZAUAAAAJdVN1bVRvdGFsCQAETAAAAAIJAQAAABF3cml0ZUNvbnN0SW50ZWdlcgAAAAIFAAAAEnVVbmxvY2tFbGlnaWJpbGl0eQkBAAAADWRheXNUb01pbGlTZWMAAAABBQAAAApMb2NrUGVyaW9kCQAETAAAAAIJAQAAABF3cml0ZUNvbnN0SW50ZWdlcgAAAAIFAAAABHVBUFkFAAAAA0FQWQkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgUAAAAPdUFscmVhZHlDbGFpbWVkBwUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAAVDbGFpbQAAAAIAAAALQXNzZXRUaWNrZXIAAAAKRW50cnlJbmRleAQAAAALY3VycmVudFRpbWUIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wBAAAAAZ1c2VySWQJAAQlAAAAAQgFAAAA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", "height": 2252752, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Cb2NvzHP1JzrBxcjMZHMoa7KAbYr8yKtx5VnGm1p5a6x Next: none Diff:
OldNewDifferences
1111
1212 let e = nil
1313
14-let f = "_Eligible_to_unlock_at_block"
14+let f = "_Eligible_to_unlock_at_timestamp"
1515
1616 let g = "_Amount_locked"
1717
3333
3434 let p = 86400000
3535
36-let q = 7
36+let q = 21600000
3737
38-let r = 14
38+let r = 7
3939
40-let s = 30
40+let s = 14
4141
42-let t = 60
42+let t = 30
4343
44-let u = 90
44+let u = 60
4545
46-func v (w) = getInteger(this, w)
46+let v = 90
47+
48+func w (x) = getInteger(this, x)
4749
4850
49-func x (w) = getString(this, w)
51+func y (x) = getString(this, x)
5052
5153
52-func y (w) = value(getInteger(this, w))
54+func z (x) = value(getInteger(this, x))
5355
5456
55-func z (w) = value(getString(this, w))
57+func A (x) = value(getString(this, x))
5658
5759
58-func A (B,C) = if (B)
59- then throw(C)
60+func B (C,D) = if (C)
61+ then throw(D)
6062 else true
6163
6264
63-func D (E,C) = {
64- let F = E
65- if ($isInstanceOf(F, "Int"))
65+func E (F,D) = {
66+ let G = F
67+ if ($isInstanceOf(G, "Int"))
6668 then {
67- let E = F
68- E
69+ let F = G
70+ F
6971 }
70- else throw(C)
72+ else throw(D)
7173 }
7274
7375
74-func G (E,C) = {
75- let F = E
76- if ($isInstanceOf(F, "String"))
76+func H (F,D) = {
77+ let G = F
78+ if ($isInstanceOf(G, "String"))
7779 then {
78- let E = F
79- E
80+ let F = G
81+ F
8082 }
81- else throw(C)
83+ else throw(D)
8284 }
8385
8486
85-func H (w,I) = if ((0 > I))
86- then throw(((("writing negative value " + toString(I)) + " for key ") + w))
87- else IntegerEntry(w, I)
87+func I (x,J) = if ((0 > J))
88+ then throw(((("writing negative value " + toString(J)) + " for key ") + x))
89+ else IntegerEntry(x, J)
8890
8991
90-func J (w,I) = if ((" " == I))
91- then throw(("writing an empty string " + I))
92- else StringEntry(w, I)
92+func K (x,J) = if ((" " == J))
93+ then throw(("writing an empty string " + J))
94+ else StringEntry(x, J)
9395
9496
95-func K (L) = if ((L != q))
96- then if ((L != r))
97- then if ((L != s))
98- then if ((L != t))
99- then if ((L != u))
97+func L (M) = if ((M != r))
98+ then if ((M != s))
99+ then if ((M != t))
100+ then if ((M != u))
101+ then if ((M != v))
100102 then throw("invalid locking period")
101- else ((L * p) + lastBlock.timestamp)
102- else ((L * p) + lastBlock.timestamp)
103- else ((L * p) + lastBlock.timestamp)
104- else ((L * p) + lastBlock.timestamp)
105- else ((L * p) + lastBlock.timestamp)
103+ else (((M * p) + q) + lastBlock.timestamp)
104+ else (((M * p) + q) + lastBlock.timestamp)
105+ else (((M * p) + q) + lastBlock.timestamp)
106+ else (((M * p) + q) + lastBlock.timestamp)
107+ else (((M * p) + q) + lastBlock.timestamp)
106108
107109
108-func M (w,I) = if (!(isDefined(x(w))))
109- then J(w, I)
110- else throw((" entry already initialized: " + w))
110+func N (x,J) = if (!(isDefined(y(x))))
111+ then K(x, J)
112+ else throw((" entry already initialized: " + x))
111113
112114
113-func N (w,I) = if (!(isDefined(x(w))))
114- then H(w, I)
115- else throw((" entry already initialized: " + w))
115+func O (x,J) = if (!(isDefined(y(x))))
116+ then I(x, J)
117+ else throw((" entry already initialized: " + x))
116118
117119
118-func O (P) = {
119- let Q = toBase58String(P.caller.bytes)
120- let R = (o + Q)
121- let F = x(o)
122- if ($isInstanceOf(F, "String"))
120+func P (Q) = {
121+ let R = toBase58String(Q.caller.bytes)
122+ let S = (o + R)
123+ let G = y(o)
124+ if ($isInstanceOf(G, "String"))
123125 then {
124- let S = F
125- if ((Q != x(o)))
126+ let T = G
127+ if ((R != y(o)))
126128 then throw("unauthorized")
127129 else true
128130 }
129131 else {
130- let T = x(R)
131- if ($isInstanceOf(T, "String"))
132+ let U = y(S)
133+ if ($isInstanceOf(U, "String"))
132134 then {
133- let U = T
134- if ((Q != x(R)))
135+ let V = U
136+ if ((R != y(S)))
135137 then throw("unauthorized")
136138 else true
137139 }
140142 }
141143
142144
143-func V (w,W) = {
144- let F = W
145- if ($isInstanceOf(F, "String"))
145+func W (x,X) = {
146+ let G = X
147+ if ($isInstanceOf(G, "String"))
146148 then {
147- let W = F
148- M(w, W)
149+ let X = G
150+ N(x, X)
149151 }
150- else if ($isInstanceOf(F, "Int"))
152+ else if ($isInstanceOf(G, "Int"))
151153 then {
152- let W = F
153- N(w, W)
154+ let X = G
155+ O(x, X)
154156 }
155157 else throw("unsupported config type")
156158 }
157159
158160
159-func X (w) = {
160- let Y = v(w)
161- if (isDefined(Y))
162- then (value(Y) + 1)
161+func Y (x) = {
162+ let Z = w(x)
163+ if (isDefined(Z))
164+ then (value(Z) + 1)
163165 else 0
164166 }
165167
166168
167-@Callable(P)
168-func addAsset (Z,aa,ab,ac,ad) = {
169- let ae = O(P)
170- if ((ae == ae))
169+@Callable(Q)
170+func addAsset (aa,ab,ac,ad,ae) = {
171+ let af = P(Q)
172+ if ((af == af))
171173 then {
172- let af = (Z + b)
173- let ag = (Z + c)
174- let ah = (Z + d)
175- let ai = if ((ad > ac))
176- then [N(ag, ac), N(ah, ad)]
177- else [N(ag, ad), N(ah, ac)]
178- ([M(Z, aa), M(af, ab)] ++ ai)
174+ let ag = (aa + b)
175+ let ah = (aa + c)
176+ let ai = (aa + d)
177+ let aj = if ((ae > ad))
178+ then [O(ah, ad), O(ai, ae)]
179+ else [O(ah, ae), O(ai, ad)]
180+ ([N(aa, ab), N(ag, ac)] ++ aj)
179181 }
180182 else throw("Strict value is not equal to itself.")
181183 }
182184
183185
184186
185-@Callable(P)
186-func deleteAsset (Z) = {
187- let ae = O(P)
188- if ((ae == ae))
187+@Callable(Q)
188+func deleteAsset (aa) = {
189+ let af = P(Q)
190+ if ((af == af))
189191 then {
190- let aj = G(x(Z), (("asset with ticker " + Z) + " not found"))
191- if ((aj == aj))
192- then [DeleteEntry(Z), DeleteEntry((Z + c)), DeleteEntry((Z + d)), DeleteEntry((Z + b))]
192+ let ak = H(y(aa), (("asset with ticker " + aa) + " not found"))
193+ if ((ak == ak))
194+ then [DeleteEntry(aa), DeleteEntry((aa + c)), DeleteEntry((aa + d)), DeleteEntry((aa + b))]
193195 else throw("Strict value is not equal to itself.")
194196 }
195197 else throw("Strict value is not equal to itself.")
197199
198200
199201
200-@Callable(P)
201-func _getAssetIdByTicker (Z) = {
202- let ae = O(P)
203- if ((ae == ae))
202+@Callable(Q)
203+func _getAssetIdByTicker (aa) = {
204+ let af = P(Q)
205+ if ((af == af))
204206 then {
205- let S = G(x(Z), "asset not found")
206- $Tuple2(nil, S)
207+ let T = H(y(aa), "asset not found")
208+ $Tuple2(nil, T)
207209 }
208210 else throw("Strict value is not equal to itself.")
209211 }
210212
211213
212214
213-@Callable(P)
214-func init (ak) = {
215- let al = valueOrErrorMessage(addressFromString(ak), "invalid address")
216-[M(o, toString(al))]
215+@Callable(Q)
216+func init (al) = {
217+ let am = valueOrErrorMessage(addressFromString(al), "invalid address")
218+[N(o, toString(am))]
217219 }
218220
219221
220222
221-@Callable(P)
222-func _deleteEntry (w) = {
223- let ae = O(P)
224- if ((ae == ae))
225- then [DeleteEntry(w)]
223+@Callable(Q)
224+func _deleteEntry (x) = {
225+ let af = P(Q)
226+ if ((af == af))
227+ then [DeleteEntry(x)]
226228 else throw("Strict value is not equal to itself.")
227229 }
228230
229231
230232
231-@Callable(P)
232-func addAdmin (ak) = {
233- let ae = O(P)
234- if ((ae == ae))
233+@Callable(Q)
234+func addAdmin (al) = {
235+ let af = P(Q)
236+ if ((af == af))
235237 then {
236- let al = valueOrErrorMessage(addressFromString(ak), "invalid address")
237- let am = (o + toString(al))
238-[M(am, ak)]
238+ let am = valueOrErrorMessage(addressFromString(al), "invalid address")
239+ let an = (o + toString(am))
240+[N(an, al)]
239241 }
240242 else throw("Strict value is not equal to itself.")
241243 }
242244
243245
244246
245-@Callable(P)
246-func changeMainAdmin (an) = {
247- let ao = O(P)
248- if ((ao == ao))
247+@Callable(Q)
248+func changeMainAdmin (ao) = {
249+ let ap = P(Q)
250+ if ((ap == ap))
249251 then {
250- let al = valueOrErrorMessage(addressFromString(an), "invalid address")
251- let ap = DeleteEntry(o)
252- if ((ap == ap))
253- then [M(o, toString(al))]
252+ let am = valueOrErrorMessage(addressFromString(ao), "invalid address")
253+ let aq = DeleteEntry(o)
254+ if ((aq == aq))
255+ then [N(o, toString(am))]
254256 else throw("Strict value is not equal to itself.")
255257 }
256258 else throw("Strict value is not equal to itself.")
258260
259261
260262
261-@Callable(P)
262-func updateOtherAdminAddress (an) = {
263- let ao = O(P)
264- if ((ao == ao))
263+@Callable(Q)
264+func updateOtherAdminAddress (ao) = {
265+ let ap = P(Q)
266+ if ((ap == ap))
265267 then {
266- let al = valueOrErrorMessage(addressFromString(an), "invalid address")
267- let aq = toString(P.caller)
268- let R = (o + aq)
269- let ar = G(x(R), "no previous address found")
270- if ((ar == ar))
268+ let am = valueOrErrorMessage(addressFromString(ao), "invalid address")
269+ let ar = toString(Q.caller)
270+ let S = (o + ar)
271+ let as = H(y(S), "no previous address found")
272+ if ((as == as))
271273 then {
272- let as = DeleteEntry(R)
273- if ((as == as))
274- then [M(R, toString(al))]
274+ let at = DeleteEntry(S)
275+ if ((at == at))
276+ then [N(S, toString(am))]
275277 else throw("Strict value is not equal to itself.")
276278 }
277279 else throw("Strict value is not equal to itself.")
281283
282284
283285
284-@Callable(P)
285-func removeOtherAdmin (at) = {
286- let ao = O(P)
287- if ((ao == ao))
286+@Callable(Q)
287+func removeOtherAdmin (au) = {
288+ let ap = P(Q)
289+ if ((ap == ap))
288290 then {
289- let al = valueOrErrorMessage(addressFromString(at), "invalid address")
290- let au = (o + toString(al))
291- let av = DeleteEntry(au)
292- if ((av == av))
291+ let am = valueOrErrorMessage(addressFromString(au), "invalid address")
292+ let av = (o + toString(am))
293+ let aw = DeleteEntry(av)
294+ if ((aw == aw))
293295 then nil
294296 else throw("Strict value is not equal to itself.")
295297 }
298300
299301
300302
301-@Callable(P)
302-func updateConfigValue (w,W) = {
303- let ao = O(P)
304- if ((ao == ao))
303+@Callable(Q)
304+func updateConfigValue (x,X) = {
305+ let ap = P(Q)
306+ if ((ap == ap))
305307 then {
306- let ap = DeleteEntry(w)
307- if ((ap == ap))
308- then [V(w, W)]
308+ let aq = DeleteEntry(x)
309+ if ((aq == aq))
310+ then [W(x, X)]
309311 else throw("Strict value is not equal to itself.")
310312 }
311313 else throw("Strict value is not equal to itself.")
313315
314316
315317
316-@Callable(P)
317-func _getDaysLeftToClaim (aw,Z,ax) = {
318- let ay = O(P)
319- if ((ay == ay))
318+@Callable(Q)
319+func _getDaysLeftToClaim (ax,aa,ay) = {
320+ let az = P(Q)
321+ if ((az == az))
320322 then {
321- let az = valueOrErrorMessage(addressFromString(aw), "invalid address")
322- if ((az == az))
323+ let aA = valueOrErrorMessage(addressFromString(ax), "invalid address")
324+ if ((aA == aA))
323325 then {
324- let aA = ((("_" + Z) + "_") + toString(ax))
325- let aB = ((aw + aA) + f)
326- let aC = (valueOrErrorMessage(v(aB), ("no entry for " + aw)) / 1000)
327- $Tuple2(nil, aC)
326+ let aB = ((("_" + aa) + "_") + toString(ay))
327+ let aC = ((ax + aB) + f)
328+ let aD = (valueOrErrorMessage(w(aC), ("no entry for " + ax)) / 1000)
329+ $Tuple2(nil, aD)
328330 }
329331 else throw("Strict value is not equal to itself.")
330332 }
333335
334336
335337
336-@Callable(P)
337-func Lock (aD,Z,ax) = {
338- let az = A((1 != size(P.payments)), "attach amount you want to lock")
339- if ((az == az))
338+@Callable(Q)
339+func Lock (aE,aa,ay) = {
340+ let aA = B((1 != size(Q.payments)), "attach amount you want to lock")
341+ if ((aA == aA))
340342 then {
341- let aE = valueOrErrorMessage(P.payments[0].assetId, "no assetId for the attached asset")
342- let aF = toBase58String(aE)
343- let aG = A((x(Z) != aF), "asset not supported")
344- if ((aG == aG))
343+ let aF = valueOrErrorMessage(Q.payments[0].assetId, "no assetId for the attached asset")
344+ let aG = toBase58String(aF)
345+ let aH = B((y(aa) != aG), "asset not supported")
346+ if ((aH == aH))
345347 then {
346- let aH = aD
347- let aI = toBase58String(P.caller.bytes)
348- let aJ = P.payments[0].amount
349- let aK = D(v((Z + c)), "internal error: minimum stacking amount not specified")
350- let aL = D(v((Z + d)), "internal error: maximum staking amount not specified")
351- let aM = A(if ((aK > aJ))
348+ let aI = aE
349+ let aJ = toBase58String(Q.caller.bytes)
350+ let aK = Q.payments[0].amount
351+ let aL = E(w((aa + c)), "internal error: minimum stacking amount not specified")
352+ let aM = E(w((aa + d)), "internal error: maximum staking amount not specified")
353+ let aN = B(if ((aL > aK))
352354 then true
353- else (aJ > aL), "staking amount is out of range")
354- if ((aM == aM))
355+ else (aK > aM), "staking amount is out of range")
356+ if ((aN == aN))
355357 then {
356- let aN = (aI + k)
357- let aO = if (!(isDefined(y(aN))))
358- then aJ
359- else (aJ + y(aN))
360- let aP = A((aO > aL), "you have maxed out your quota")
361- if ((aP == aP))
358+ let aO = (aJ + k)
359+ let aP = if (!(isDefined(z(aO))))
360+ then aK
361+ else (aK + z(aO))
362+ let aQ = B((aP > aM), "you have maxed out your quota")
363+ if ((aQ == aQ))
362364 then {
363- let aQ = toString(ax)
364- let aR = ((("_" + Z) + "_") + aQ)
365- let aS = (aI + aR)
366- let aT = ((aI + aR) + i)
367- let aU = ((aI + aR) + h)
368- let aV = ((aI + aR) + l)
369- let aW = ((aI + aR) + g)
370- let aX = ((aI + aR) + j)
371- let aB = ((aI + aR) + f)
372- let aY = ((aI + aR) + n)
373- let aZ = invoke(Address(fromBase58String(z(o))), "getAPYAmount", [aI, Z, ax], nil)
374- let ba = {
375- let F = aZ
376- if ($isInstanceOf(F, "Int"))
365+ let aR = toString(ay)
366+ let aS = ((("_" + aa) + "_") + aR)
367+ let aT = (aJ + aS)
368+ let aU = ((aJ + aS) + i)
369+ let aV = ((aJ + aS) + h)
370+ let aW = ((aJ + aS) + l)
371+ let aX = ((aJ + aS) + g)
372+ let aY = ((aJ + aS) + j)
373+ let aC = ((aJ + aS) + f)
374+ let aZ = ((aJ + aS) + n)
375+ let ba = invoke(Address(fromBase58String(A(o))), "getAPYAmount", [aJ, aa, ay], nil)
376+ let bb = {
377+ let G = ba
378+ if ($isInstanceOf(G, "Int"))
377379 then {
378- let bb = F
379- bb
380+ let bc = G
381+ bc
380382 }
381- else throw(("could not get the APY amount for " + aI))
383+ else throw(("could not get the APY amount for " + aJ))
382384 }
383-[N(aS, ax), M(aT, aI), M(aU, aF), N(aV, aH), N(aW, P.payments[0].amount), N(aN, aO), N(aB, K(aD)), N(aX, ba), BooleanEntry(aY, false)]
385+[O(aT, ay), N(aU, aJ), N(aV, aG), O(aW, aI), O(aX, Q.payments[0].amount), O(aO, aP), O(aC, L(aE)), O(aY, bb), BooleanEntry(aZ, false)]
384386 }
385387 else throw("Strict value is not equal to itself.")
386388 }
393395
394396
395397
396-@Callable(P)
397-func Claim (Z,ax) = {
398- let bc = lastBlock.timestamp
399- let aI = toString(P.caller)
400- let aF = valueOrErrorMessage(x(Z), "invalid asset")
401- if ((aF == aF))
398+@Callable(Q)
399+func Claim (aa,ay) = {
400+ let bd = lastBlock.timestamp
401+ let aJ = toString(Q.caller)
402+ let aG = valueOrErrorMessage(y(aa), "invalid asset")
403+ if ((aG == aG))
402404 then {
403- let aR = ((("_" + Z) + "_") + toString(ax))
404- let bd = valueOrErrorMessage(x(((aI + aR) + i)), ("no entry found for user " + aI))
405- if ((bd == bd))
405+ let aS = ((("_" + aa) + "_") + toString(ay))
406+ let be = valueOrErrorMessage(y(((aJ + aS) + i)), ("no entry found for user " + aJ))
407+ if ((be == be))
406408 then {
407- let be = valueOrErrorMessage(x(((aI + aR) + h)), "asset not locked by user")
408- let bf = ((aI + aR) + n)
409- let ay = A((valueOrErrorMessage(getBoolean(bf), "cannot ascertain claimability") == true), (("user + " + aI) + " already claimed"))
410- if ((ay == ay))
409+ let bf = valueOrErrorMessage(y(((aJ + aS) + h)), "asset not locked by user")
410+ let bg = ((aJ + aS) + n)
411+ let az = B((valueOrErrorMessage(getBoolean(bg), "cannot ascertain claimability") == true), (("user + " + aJ) + " already claimed"))
412+ if ((az == az))
411413 then {
412- let aW = y(((aI + aR) + g))
413- let bg = addressFromStringValue(G(x((Z + b)), "internal error: no reserve found"))
414- let bh = y(((aI + aR) + j))
415- let bi = y(((aI + aR) + f))
416- let bj = if ((0 >= (bi - bc)))
414+ let aX = z(((aJ + aS) + g))
415+ let bh = addressFromStringValue(H(y((aa + b)), "internal error: no reserve found"))
416+ let bi = z(((aJ + aS) + j))
417+ let bj = z(((aJ + aS) + f))
418+ let bk = if ((0 >= (bj - bd)))
417419 then 0
418- else (bi - bc)
419- let az = A((bj > bc), (toString((bj / 1000)) + " days left to claim"))
420- if ((az == az))
420+ else (bj - bd)
421+ let aA = B((bk > bd), (toString((bk / 1000)) + " days left to claim"))
422+ if ((aA == aA))
421423 then {
422- let aN = (aI + k)
423- let bk = (y(aN) - aW)
424- let bl = if ((0 >= bk))
424+ let aO = (aJ + k)
425+ let bl = (z(aO) - aX)
426+ let bm = if ((0 >= bl))
425427 then 0
426- else bk
427- let bm = invoke(bg, "transferInterest", [aI, bh, fromBase58String(be)], nil)
428- if ((bm == bm))
429- then [ScriptTransfer(addressFromStringValue(aI), aW, fromBase58String(be)), N(aN, bl), BooleanEntry(bf, true)]
428+ else bl
429+ let bn = invoke(bh, "transferInterest", [aJ, bi, fromBase58String(bf)], nil)
430+ if ((bn == bn))
431+ then [ScriptTransfer(addressFromStringValue(aJ), aX, fromBase58String(bf)), O(aO, bm), BooleanEntry(bg, true)]
430432 else throw("Strict value is not equal to itself.")
431433 }
432434 else throw("Strict value is not equal to itself.")
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = this
55
66 let b = "_Reserve"
77
88 let c = "_MinLockAmount"
99
1010 let d = "_MaxLockAmount"
1111
1212 let e = nil
1313
14-let f = "_Eligible_to_unlock_at_block"
14+let f = "_Eligible_to_unlock_at_timestamp"
1515
1616 let g = "_Amount_locked"
1717
1818 let h = "_Asset_locked"
1919
2020 let i = "_User"
2121
2222 let j = "_APY_amount"
2323
2424 let k = "_Total_Locked_Amount"
2525
2626 let l = "_Days_locked"
2727
2828 let m = "_Entry_Index"
2929
3030 let n = "_Already_Claimed"
3131
3232 let o = "admin_"
3333
3434 let p = 86400000
3535
36-let q = 7
36+let q = 21600000
3737
38-let r = 14
38+let r = 7
3939
40-let s = 30
40+let s = 14
4141
42-let t = 60
42+let t = 30
4343
44-let u = 90
44+let u = 60
4545
46-func v (w) = getInteger(this, w)
46+let v = 90
47+
48+func w (x) = getInteger(this, x)
4749
4850
49-func x (w) = getString(this, w)
51+func y (x) = getString(this, x)
5052
5153
52-func y (w) = value(getInteger(this, w))
54+func z (x) = value(getInteger(this, x))
5355
5456
55-func z (w) = value(getString(this, w))
57+func A (x) = value(getString(this, x))
5658
5759
58-func A (B,C) = if (B)
59- then throw(C)
60+func B (C,D) = if (C)
61+ then throw(D)
6062 else true
6163
6264
63-func D (E,C) = {
64- let F = E
65- if ($isInstanceOf(F, "Int"))
65+func E (F,D) = {
66+ let G = F
67+ if ($isInstanceOf(G, "Int"))
6668 then {
67- let E = F
68- E
69+ let F = G
70+ F
6971 }
70- else throw(C)
72+ else throw(D)
7173 }
7274
7375
74-func G (E,C) = {
75- let F = E
76- if ($isInstanceOf(F, "String"))
76+func H (F,D) = {
77+ let G = F
78+ if ($isInstanceOf(G, "String"))
7779 then {
78- let E = F
79- E
80+ let F = G
81+ F
8082 }
81- else throw(C)
83+ else throw(D)
8284 }
8385
8486
85-func H (w,I) = if ((0 > I))
86- then throw(((("writing negative value " + toString(I)) + " for key ") + w))
87- else IntegerEntry(w, I)
87+func I (x,J) = if ((0 > J))
88+ then throw(((("writing negative value " + toString(J)) + " for key ") + x))
89+ else IntegerEntry(x, J)
8890
8991
90-func J (w,I) = if ((" " == I))
91- then throw(("writing an empty string " + I))
92- else StringEntry(w, I)
92+func K (x,J) = if ((" " == J))
93+ then throw(("writing an empty string " + J))
94+ else StringEntry(x, J)
9395
9496
95-func K (L) = if ((L != q))
96- then if ((L != r))
97- then if ((L != s))
98- then if ((L != t))
99- then if ((L != u))
97+func L (M) = if ((M != r))
98+ then if ((M != s))
99+ then if ((M != t))
100+ then if ((M != u))
101+ then if ((M != v))
100102 then throw("invalid locking period")
101- else ((L * p) + lastBlock.timestamp)
102- else ((L * p) + lastBlock.timestamp)
103- else ((L * p) + lastBlock.timestamp)
104- else ((L * p) + lastBlock.timestamp)
105- else ((L * p) + lastBlock.timestamp)
103+ else (((M * p) + q) + lastBlock.timestamp)
104+ else (((M * p) + q) + lastBlock.timestamp)
105+ else (((M * p) + q) + lastBlock.timestamp)
106+ else (((M * p) + q) + lastBlock.timestamp)
107+ else (((M * p) + q) + lastBlock.timestamp)
106108
107109
108-func M (w,I) = if (!(isDefined(x(w))))
109- then J(w, I)
110- else throw((" entry already initialized: " + w))
110+func N (x,J) = if (!(isDefined(y(x))))
111+ then K(x, J)
112+ else throw((" entry already initialized: " + x))
111113
112114
113-func N (w,I) = if (!(isDefined(x(w))))
114- then H(w, I)
115- else throw((" entry already initialized: " + w))
115+func O (x,J) = if (!(isDefined(y(x))))
116+ then I(x, J)
117+ else throw((" entry already initialized: " + x))
116118
117119
118-func O (P) = {
119- let Q = toBase58String(P.caller.bytes)
120- let R = (o + Q)
121- let F = x(o)
122- if ($isInstanceOf(F, "String"))
120+func P (Q) = {
121+ let R = toBase58String(Q.caller.bytes)
122+ let S = (o + R)
123+ let G = y(o)
124+ if ($isInstanceOf(G, "String"))
123125 then {
124- let S = F
125- if ((Q != x(o)))
126+ let T = G
127+ if ((R != y(o)))
126128 then throw("unauthorized")
127129 else true
128130 }
129131 else {
130- let T = x(R)
131- if ($isInstanceOf(T, "String"))
132+ let U = y(S)
133+ if ($isInstanceOf(U, "String"))
132134 then {
133- let U = T
134- if ((Q != x(R)))
135+ let V = U
136+ if ((R != y(S)))
135137 then throw("unauthorized")
136138 else true
137139 }
138140 else throw("unauthorizd")
139141 }
140142 }
141143
142144
143-func V (w,W) = {
144- let F = W
145- if ($isInstanceOf(F, "String"))
145+func W (x,X) = {
146+ let G = X
147+ if ($isInstanceOf(G, "String"))
146148 then {
147- let W = F
148- M(w, W)
149+ let X = G
150+ N(x, X)
149151 }
150- else if ($isInstanceOf(F, "Int"))
152+ else if ($isInstanceOf(G, "Int"))
151153 then {
152- let W = F
153- N(w, W)
154+ let X = G
155+ O(x, X)
154156 }
155157 else throw("unsupported config type")
156158 }
157159
158160
159-func X (w) = {
160- let Y = v(w)
161- if (isDefined(Y))
162- then (value(Y) + 1)
161+func Y (x) = {
162+ let Z = w(x)
163+ if (isDefined(Z))
164+ then (value(Z) + 1)
163165 else 0
164166 }
165167
166168
167-@Callable(P)
168-func addAsset (Z,aa,ab,ac,ad) = {
169- let ae = O(P)
170- if ((ae == ae))
169+@Callable(Q)
170+func addAsset (aa,ab,ac,ad,ae) = {
171+ let af = P(Q)
172+ if ((af == af))
171173 then {
172- let af = (Z + b)
173- let ag = (Z + c)
174- let ah = (Z + d)
175- let ai = if ((ad > ac))
176- then [N(ag, ac), N(ah, ad)]
177- else [N(ag, ad), N(ah, ac)]
178- ([M(Z, aa), M(af, ab)] ++ ai)
174+ let ag = (aa + b)
175+ let ah = (aa + c)
176+ let ai = (aa + d)
177+ let aj = if ((ae > ad))
178+ then [O(ah, ad), O(ai, ae)]
179+ else [O(ah, ae), O(ai, ad)]
180+ ([N(aa, ab), N(ag, ac)] ++ aj)
179181 }
180182 else throw("Strict value is not equal to itself.")
181183 }
182184
183185
184186
185-@Callable(P)
186-func deleteAsset (Z) = {
187- let ae = O(P)
188- if ((ae == ae))
187+@Callable(Q)
188+func deleteAsset (aa) = {
189+ let af = P(Q)
190+ if ((af == af))
189191 then {
190- let aj = G(x(Z), (("asset with ticker " + Z) + " not found"))
191- if ((aj == aj))
192- then [DeleteEntry(Z), DeleteEntry((Z + c)), DeleteEntry((Z + d)), DeleteEntry((Z + b))]
192+ let ak = H(y(aa), (("asset with ticker " + aa) + " not found"))
193+ if ((ak == ak))
194+ then [DeleteEntry(aa), DeleteEntry((aa + c)), DeleteEntry((aa + d)), DeleteEntry((aa + b))]
193195 else throw("Strict value is not equal to itself.")
194196 }
195197 else throw("Strict value is not equal to itself.")
196198 }
197199
198200
199201
200-@Callable(P)
201-func _getAssetIdByTicker (Z) = {
202- let ae = O(P)
203- if ((ae == ae))
202+@Callable(Q)
203+func _getAssetIdByTicker (aa) = {
204+ let af = P(Q)
205+ if ((af == af))
204206 then {
205- let S = G(x(Z), "asset not found")
206- $Tuple2(nil, S)
207+ let T = H(y(aa), "asset not found")
208+ $Tuple2(nil, T)
207209 }
208210 else throw("Strict value is not equal to itself.")
209211 }
210212
211213
212214
213-@Callable(P)
214-func init (ak) = {
215- let al = valueOrErrorMessage(addressFromString(ak), "invalid address")
216-[M(o, toString(al))]
215+@Callable(Q)
216+func init (al) = {
217+ let am = valueOrErrorMessage(addressFromString(al), "invalid address")
218+[N(o, toString(am))]
217219 }
218220
219221
220222
221-@Callable(P)
222-func _deleteEntry (w) = {
223- let ae = O(P)
224- if ((ae == ae))
225- then [DeleteEntry(w)]
223+@Callable(Q)
224+func _deleteEntry (x) = {
225+ let af = P(Q)
226+ if ((af == af))
227+ then [DeleteEntry(x)]
226228 else throw("Strict value is not equal to itself.")
227229 }
228230
229231
230232
231-@Callable(P)
232-func addAdmin (ak) = {
233- let ae = O(P)
234- if ((ae == ae))
233+@Callable(Q)
234+func addAdmin (al) = {
235+ let af = P(Q)
236+ if ((af == af))
235237 then {
236- let al = valueOrErrorMessage(addressFromString(ak), "invalid address")
237- let am = (o + toString(al))
238-[M(am, ak)]
238+ let am = valueOrErrorMessage(addressFromString(al), "invalid address")
239+ let an = (o + toString(am))
240+[N(an, al)]
239241 }
240242 else throw("Strict value is not equal to itself.")
241243 }
242244
243245
244246
245-@Callable(P)
246-func changeMainAdmin (an) = {
247- let ao = O(P)
248- if ((ao == ao))
247+@Callable(Q)
248+func changeMainAdmin (ao) = {
249+ let ap = P(Q)
250+ if ((ap == ap))
249251 then {
250- let al = valueOrErrorMessage(addressFromString(an), "invalid address")
251- let ap = DeleteEntry(o)
252- if ((ap == ap))
253- then [M(o, toString(al))]
252+ let am = valueOrErrorMessage(addressFromString(ao), "invalid address")
253+ let aq = DeleteEntry(o)
254+ if ((aq == aq))
255+ then [N(o, toString(am))]
254256 else throw("Strict value is not equal to itself.")
255257 }
256258 else throw("Strict value is not equal to itself.")
257259 }
258260
259261
260262
261-@Callable(P)
262-func updateOtherAdminAddress (an) = {
263- let ao = O(P)
264- if ((ao == ao))
263+@Callable(Q)
264+func updateOtherAdminAddress (ao) = {
265+ let ap = P(Q)
266+ if ((ap == ap))
265267 then {
266- let al = valueOrErrorMessage(addressFromString(an), "invalid address")
267- let aq = toString(P.caller)
268- let R = (o + aq)
269- let ar = G(x(R), "no previous address found")
270- if ((ar == ar))
268+ let am = valueOrErrorMessage(addressFromString(ao), "invalid address")
269+ let ar = toString(Q.caller)
270+ let S = (o + ar)
271+ let as = H(y(S), "no previous address found")
272+ if ((as == as))
271273 then {
272- let as = DeleteEntry(R)
273- if ((as == as))
274- then [M(R, toString(al))]
274+ let at = DeleteEntry(S)
275+ if ((at == at))
276+ then [N(S, toString(am))]
275277 else throw("Strict value is not equal to itself.")
276278 }
277279 else throw("Strict value is not equal to itself.")
278280 }
279281 else throw("Strict value is not equal to itself.")
280282 }
281283
282284
283285
284-@Callable(P)
285-func removeOtherAdmin (at) = {
286- let ao = O(P)
287- if ((ao == ao))
286+@Callable(Q)
287+func removeOtherAdmin (au) = {
288+ let ap = P(Q)
289+ if ((ap == ap))
288290 then {
289- let al = valueOrErrorMessage(addressFromString(at), "invalid address")
290- let au = (o + toString(al))
291- let av = DeleteEntry(au)
292- if ((av == av))
291+ let am = valueOrErrorMessage(addressFromString(au), "invalid address")
292+ let av = (o + toString(am))
293+ let aw = DeleteEntry(av)
294+ if ((aw == aw))
293295 then nil
294296 else throw("Strict value is not equal to itself.")
295297 }
296298 else throw("Strict value is not equal to itself.")
297299 }
298300
299301
300302
301-@Callable(P)
302-func updateConfigValue (w,W) = {
303- let ao = O(P)
304- if ((ao == ao))
303+@Callable(Q)
304+func updateConfigValue (x,X) = {
305+ let ap = P(Q)
306+ if ((ap == ap))
305307 then {
306- let ap = DeleteEntry(w)
307- if ((ap == ap))
308- then [V(w, W)]
308+ let aq = DeleteEntry(x)
309+ if ((aq == aq))
310+ then [W(x, X)]
309311 else throw("Strict value is not equal to itself.")
310312 }
311313 else throw("Strict value is not equal to itself.")
312314 }
313315
314316
315317
316-@Callable(P)
317-func _getDaysLeftToClaim (aw,Z,ax) = {
318- let ay = O(P)
319- if ((ay == ay))
318+@Callable(Q)
319+func _getDaysLeftToClaim (ax,aa,ay) = {
320+ let az = P(Q)
321+ if ((az == az))
320322 then {
321- let az = valueOrErrorMessage(addressFromString(aw), "invalid address")
322- if ((az == az))
323+ let aA = valueOrErrorMessage(addressFromString(ax), "invalid address")
324+ if ((aA == aA))
323325 then {
324- let aA = ((("_" + Z) + "_") + toString(ax))
325- let aB = ((aw + aA) + f)
326- let aC = (valueOrErrorMessage(v(aB), ("no entry for " + aw)) / 1000)
327- $Tuple2(nil, aC)
326+ let aB = ((("_" + aa) + "_") + toString(ay))
327+ let aC = ((ax + aB) + f)
328+ let aD = (valueOrErrorMessage(w(aC), ("no entry for " + ax)) / 1000)
329+ $Tuple2(nil, aD)
328330 }
329331 else throw("Strict value is not equal to itself.")
330332 }
331333 else throw("Strict value is not equal to itself.")
332334 }
333335
334336
335337
336-@Callable(P)
337-func Lock (aD,Z,ax) = {
338- let az = A((1 != size(P.payments)), "attach amount you want to lock")
339- if ((az == az))
338+@Callable(Q)
339+func Lock (aE,aa,ay) = {
340+ let aA = B((1 != size(Q.payments)), "attach amount you want to lock")
341+ if ((aA == aA))
340342 then {
341- let aE = valueOrErrorMessage(P.payments[0].assetId, "no assetId for the attached asset")
342- let aF = toBase58String(aE)
343- let aG = A((x(Z) != aF), "asset not supported")
344- if ((aG == aG))
343+ let aF = valueOrErrorMessage(Q.payments[0].assetId, "no assetId for the attached asset")
344+ let aG = toBase58String(aF)
345+ let aH = B((y(aa) != aG), "asset not supported")
346+ if ((aH == aH))
345347 then {
346- let aH = aD
347- let aI = toBase58String(P.caller.bytes)
348- let aJ = P.payments[0].amount
349- let aK = D(v((Z + c)), "internal error: minimum stacking amount not specified")
350- let aL = D(v((Z + d)), "internal error: maximum staking amount not specified")
351- let aM = A(if ((aK > aJ))
348+ let aI = aE
349+ let aJ = toBase58String(Q.caller.bytes)
350+ let aK = Q.payments[0].amount
351+ let aL = E(w((aa + c)), "internal error: minimum stacking amount not specified")
352+ let aM = E(w((aa + d)), "internal error: maximum staking amount not specified")
353+ let aN = B(if ((aL > aK))
352354 then true
353- else (aJ > aL), "staking amount is out of range")
354- if ((aM == aM))
355+ else (aK > aM), "staking amount is out of range")
356+ if ((aN == aN))
355357 then {
356- let aN = (aI + k)
357- let aO = if (!(isDefined(y(aN))))
358- then aJ
359- else (aJ + y(aN))
360- let aP = A((aO > aL), "you have maxed out your quota")
361- if ((aP == aP))
358+ let aO = (aJ + k)
359+ let aP = if (!(isDefined(z(aO))))
360+ then aK
361+ else (aK + z(aO))
362+ let aQ = B((aP > aM), "you have maxed out your quota")
363+ if ((aQ == aQ))
362364 then {
363- let aQ = toString(ax)
364- let aR = ((("_" + Z) + "_") + aQ)
365- let aS = (aI + aR)
366- let aT = ((aI + aR) + i)
367- let aU = ((aI + aR) + h)
368- let aV = ((aI + aR) + l)
369- let aW = ((aI + aR) + g)
370- let aX = ((aI + aR) + j)
371- let aB = ((aI + aR) + f)
372- let aY = ((aI + aR) + n)
373- let aZ = invoke(Address(fromBase58String(z(o))), "getAPYAmount", [aI, Z, ax], nil)
374- let ba = {
375- let F = aZ
376- if ($isInstanceOf(F, "Int"))
365+ let aR = toString(ay)
366+ let aS = ((("_" + aa) + "_") + aR)
367+ let aT = (aJ + aS)
368+ let aU = ((aJ + aS) + i)
369+ let aV = ((aJ + aS) + h)
370+ let aW = ((aJ + aS) + l)
371+ let aX = ((aJ + aS) + g)
372+ let aY = ((aJ + aS) + j)
373+ let aC = ((aJ + aS) + f)
374+ let aZ = ((aJ + aS) + n)
375+ let ba = invoke(Address(fromBase58String(A(o))), "getAPYAmount", [aJ, aa, ay], nil)
376+ let bb = {
377+ let G = ba
378+ if ($isInstanceOf(G, "Int"))
377379 then {
378- let bb = F
379- bb
380+ let bc = G
381+ bc
380382 }
381- else throw(("could not get the APY amount for " + aI))
383+ else throw(("could not get the APY amount for " + aJ))
382384 }
383-[N(aS, ax), M(aT, aI), M(aU, aF), N(aV, aH), N(aW, P.payments[0].amount), N(aN, aO), N(aB, K(aD)), N(aX, ba), BooleanEntry(aY, false)]
385+[O(aT, ay), N(aU, aJ), N(aV, aG), O(aW, aI), O(aX, Q.payments[0].amount), O(aO, aP), O(aC, L(aE)), O(aY, bb), BooleanEntry(aZ, false)]
384386 }
385387 else throw("Strict value is not equal to itself.")
386388 }
387389 else throw("Strict value is not equal to itself.")
388390 }
389391 else throw("Strict value is not equal to itself.")
390392 }
391393 else throw("Strict value is not equal to itself.")
392394 }
393395
394396
395397
396-@Callable(P)
397-func Claim (Z,ax) = {
398- let bc = lastBlock.timestamp
399- let aI = toString(P.caller)
400- let aF = valueOrErrorMessage(x(Z), "invalid asset")
401- if ((aF == aF))
398+@Callable(Q)
399+func Claim (aa,ay) = {
400+ let bd = lastBlock.timestamp
401+ let aJ = toString(Q.caller)
402+ let aG = valueOrErrorMessage(y(aa), "invalid asset")
403+ if ((aG == aG))
402404 then {
403- let aR = ((("_" + Z) + "_") + toString(ax))
404- let bd = valueOrErrorMessage(x(((aI + aR) + i)), ("no entry found for user " + aI))
405- if ((bd == bd))
405+ let aS = ((("_" + aa) + "_") + toString(ay))
406+ let be = valueOrErrorMessage(y(((aJ + aS) + i)), ("no entry found for user " + aJ))
407+ if ((be == be))
406408 then {
407- let be = valueOrErrorMessage(x(((aI + aR) + h)), "asset not locked by user")
408- let bf = ((aI + aR) + n)
409- let ay = A((valueOrErrorMessage(getBoolean(bf), "cannot ascertain claimability") == true), (("user + " + aI) + " already claimed"))
410- if ((ay == ay))
409+ let bf = valueOrErrorMessage(y(((aJ + aS) + h)), "asset not locked by user")
410+ let bg = ((aJ + aS) + n)
411+ let az = B((valueOrErrorMessage(getBoolean(bg), "cannot ascertain claimability") == true), (("user + " + aJ) + " already claimed"))
412+ if ((az == az))
411413 then {
412- let aW = y(((aI + aR) + g))
413- let bg = addressFromStringValue(G(x((Z + b)), "internal error: no reserve found"))
414- let bh = y(((aI + aR) + j))
415- let bi = y(((aI + aR) + f))
416- let bj = if ((0 >= (bi - bc)))
414+ let aX = z(((aJ + aS) + g))
415+ let bh = addressFromStringValue(H(y((aa + b)), "internal error: no reserve found"))
416+ let bi = z(((aJ + aS) + j))
417+ let bj = z(((aJ + aS) + f))
418+ let bk = if ((0 >= (bj - bd)))
417419 then 0
418- else (bi - bc)
419- let az = A((bj > bc), (toString((bj / 1000)) + " days left to claim"))
420- if ((az == az))
420+ else (bj - bd)
421+ let aA = B((bk > bd), (toString((bk / 1000)) + " days left to claim"))
422+ if ((aA == aA))
421423 then {
422- let aN = (aI + k)
423- let bk = (y(aN) - aW)
424- let bl = if ((0 >= bk))
424+ let aO = (aJ + k)
425+ let bl = (z(aO) - aX)
426+ let bm = if ((0 >= bl))
425427 then 0
426- else bk
427- let bm = invoke(bg, "transferInterest", [aI, bh, fromBase58String(be)], nil)
428- if ((bm == bm))
429- then [ScriptTransfer(addressFromStringValue(aI), aW, fromBase58String(be)), N(aN, bl), BooleanEntry(bf, true)]
428+ else bl
429+ let bn = invoke(bh, "transferInterest", [aJ, bi, fromBase58String(bf)], nil)
430+ if ((bn == bn))
431+ then [ScriptTransfer(addressFromStringValue(aJ), aX, fromBase58String(bf)), O(aO, bm), BooleanEntry(bg, true)]
430432 else throw("Strict value is not equal to itself.")
431433 }
432434 else throw("Strict value is not equal to itself.")
433435 }
434436 else throw("Strict value is not equal to itself.")
435437 }
436438 else throw("Strict value is not equal to itself.")
437439 }
438440 else throw("Strict value is not equal to itself.")
439441 }
440442
441443

github/deemru/w8io/c3f4982 
144.41 ms