tx · 8Ehnig7ooB5Q3qRPJ6bjE8PervDaTD6BYsyaiZoFsEG8

3Mr7HCJPTazuYjJbfbbpRMvZX8xrNTjT1Kx:  -0.01000000 Waves

2023.02.17 09:09 [2453240] smart account 3Mr7HCJPTazuYjJbfbbpRMvZX8xrNTjT1Kx > SELF 0.00000000 Waves

{ "type": 13, "id": "8Ehnig7ooB5Q3qRPJ6bjE8PervDaTD6BYsyaiZoFsEG8", "fee": 1000000, "feeAssetId": null, "timestamp": 1676614168364, "version": 2, "chainId": 84, "sender": "3Mr7HCJPTazuYjJbfbbpRMvZX8xrNTjT1Kx", "senderPublicKey": "D35PGQCSSdrp9pvujggj7b2DaCK1BhcU3kho7tikKJYs", "proofs": [ "2kdH212nud9n1JRqvGdACLYJEjLnbZy7NZSQ5EGxiu1yYJ4VVcdSoYnGVHF3HLHRxzzsFK69xHzZBz299CJcLZeQ" ], "script": "base64:BgIVCAISABIDCgEBEgQKAhgREgQKAggBAAQBaQEHZGVwb3NpdAAEA3BtdAkAkQMCCQEFdmFsdWUBCAUBaQhwYXltZW50cwAAAwkBCWlzRGVmaW5lZAEIBQNwbXQHYXNzZXRJZAkAAgECIWNhbiBob2RsIHdhdmVzIG9ubHkgYXQgdGhlIG1vbWVudAQKY3VycmVudEtleQkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzBA1jdXJyZW50QW1vdW50BAckbWF0Y2gwCQCaCAIFBHRoaXMFCmN1cnJlbnRLZXkDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAECW5ld0Ftb3VudAkAZAIFDWN1cnJlbnRBbW91bnQIBQNwbXQGYW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQpjdXJyZW50S2V5BQluZXdBbW91bnQFA25pbAFpAQh3aXRoZHJhdwEGYW1vdW50BApjdXJyZW50S2V5CQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMEDWN1cnJlbnRBbW91bnQEByRtYXRjaDAJAJoIAgUEdGhpcwUKY3VycmVudEtleQMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQJbmV3QW1vdW50CQBlAgUNY3VycmVudEFtb3VudAUGYW1vdW50AwkAZgIAAAUGYW1vdW50CQACAQIeQ2FuJ3Qgd2l0aGRyYXcgbmVnYXRpdmUgYW1vdW50AwkAZgIAAAUJbmV3QW1vdW50CQACAQISTm90IGVub3VnaCBiYWxhbmNlCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIFCmN1cnJlbnRLZXkFCW5ld0Ftb3VudAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFBmFtb3VudAUEdW5pdAUDbmlsBQR1bml0AWkBCnNldE9wdGlvbnMCBG9wdHMEdmFscwQIb3B0X3NpemUJAJADAQUEb3B0cwMJAGcCAGQFCG9wdF9zaXplBAxvcHRpb25zX2FkZHIJAQdBZGRyZXNzAQEaAVRBW/gr9hfqKqHLxIrx+8e7siBhMf6HIMEECWFkbWluTGlzdAQHJG1hdGNoMAkAnQgCBQxvcHRpb25zX2FkZHICCmFkbWluX2xpc3QDCQABAgUH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AXwJAQtTdHJpbmdFbnRyeQIJAJEDAgUDb3B0AAAJAJEDAgUDb3B0AAEDCQECIT0CBQdpc0FkbWluAghubyBhZG1pbgUBcgkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICD1lvdSBub3QgYWRtaW46IAUJYWRtaW5MaXN0AgssIGlzQWRtaW46IAUHaXNBZG1pbgIULCBjYWxsZXJBZGRyZXNzU3RyOiAFEGNhbGxlckFkZHJlc3NTdHICAiwgCQACAQIQVW5zZXQgYWRtaW4gbGlzdAkAAgECL1RoZSBudW1iZXIgb2YgbGlzdCBlbGVtZW50cyBtdXN0IG5vdCBleGNlZWQgMTAwAWkBCXNldE9wdGlvbgIIdmFyaWFibGUFdmFsdWUEDG9wdGlvbnNfYWRkcgkBB0FkZHJlc3MBARoBVEFb+Cv2F+oqocvEivH7x7uyIGEx/ocgwQQJYWRtaW5MaXN0BAckbWF0Y2gwCQCdCAIFDG9wdGlvbnNfYWRkcgIKYWRtaW5fbGlzdAMJAAECBQckbWF0Y2gwAgRVbml0AgV1bnNldAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXgFByRtYXRjaDAFAXgJAAIBAgtNYXRjaCBlcnJvcgQQY2FsbGVyQWRkcmVzc1N0cgkApQgBCAUBaQZjYWxsZXIDCQECIT0CBQlhZG1pbkxpc3QCBXVuc2V0BAR0ZXN0CQCdCAIJARFAZXh0ck5hdGl2ZSgxMDYyKQEFCWFkbWluTGlzdAUQY2FsbGVyQWRkcmVzc1N0cgQHaXNBZG1pbgQHJG1hdGNoMAUEdGVzdAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXgFByRtYXRjaDAFAXgDCQABAgUHJG1hdGNoMAIEVW5pdAIIbm8gYWRtaW4JAAIBAgtNYXRjaCBlcnJvcgMJAQIhPQIFB2lzQWRtaW4CCG5vIGFkbWluCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIFCHZhcmlhYmxlBQV2YWx1ZQUDbmlsBQR1bml0CQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIPWW91IG5vdCBhZG1pbjogBQlhZG1pbkxpc3QCCywgaXNBZG1pbjogBQdpc0FkbWluAhQsIGNhbGxlckFkZHJlc3NTdHI6IAUQY2FsbGVyQWRkcmVzc1N0cgICLCAJAAIBAhBVbnNldCBhZG1pbiBsaXN0AQJ0eAEGdmVyaWZ5AAkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tleT4jeyI=", "height": 2453240, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2MYtuD3ZXPFUuWBqnhgFQ6GHR1ZH4sWJaYnvL4iEgvPw Next: cqDfo7mXH6b1QfZ3KKbApmVD5yCs1gLpRYxAceQPgE7 Diff:
OldNewDifferences
5757 throw("Match error")
5858 }
5959 func addStringEntry (accum,nextValue) = {
60- let $t024792502 = accum
61- let result = $t024792502._1
62- let j = $t024792502._2
63- $Tuple2((result :+ StringEntry(opts[j], nextValue)), (j + 1))
60+ let $t024732496 = accum
61+ let result = $t024732496._1
62+ let j = $t024732496._2
63+ $Tuple2((result :+ IntegerEntry(opts[j], nextValue)), (j + 1))
6464 }
6565
6666 let r = {
129129 throw("Match error")
130130 }
131131 if ((isAdmin != "no admin"))
132- then $Tuple2([StringEntry(variable, value)], unit)
132+ then $Tuple2([IntegerEntry(variable, value)], unit)
133133 else throw((((((("You not admin: " + adminList) + ", isAdmin: ") + isAdmin) + ", callerAddressStr: ") + callerAddressStr) + ", "))
134134 }
135135 else throw("Unset admin list")
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44
55
66 @Callable(i)
77 func deposit () = {
88 let pmt = value(i.payments)[0]
99 if (isDefined(pmt.assetId))
1010 then throw("can hodl waves only at the moment")
1111 else {
1212 let currentKey = toBase58String(i.caller.bytes)
1313 let currentAmount = match getInteger(this, currentKey) {
1414 case a: Int =>
1515 a
1616 case _ =>
1717 0
1818 }
1919 let newAmount = (currentAmount + pmt.amount)
2020 [IntegerEntry(currentKey, newAmount)]
2121 }
2222 }
2323
2424
2525
2626 @Callable(i)
2727 func withdraw (amount) = {
2828 let currentKey = toBase58String(i.caller.bytes)
2929 let currentAmount = match getInteger(this, currentKey) {
3030 case a: Int =>
3131 a
3232 case _ =>
3333 0
3434 }
3535 let newAmount = (currentAmount - amount)
3636 if ((0 > amount))
3737 then throw("Can't withdraw negative amount")
3838 else if ((0 > newAmount))
3939 then throw("Not enough balance")
4040 else $Tuple2([IntegerEntry(currentKey, newAmount), ScriptTransfer(i.caller, amount, unit)], unit)
4141 }
4242
4343
4444
4545 @Callable(i)
4646 func setOptions (opts,vals) = {
4747 let opt_size = size(opts)
4848 if ((100 >= opt_size))
4949 then {
5050 let options_addr = Address(base58'3MusfsY6PqDh1YnF7YyTi5ffVT16Dm2bqf6')
5151 let adminList = match getString(options_addr, "admin_list") {
5252 case _: Unit =>
5353 "unset"
5454 case x: String =>
5555 x
5656 case _ =>
5757 throw("Match error")
5858 }
5959 func addStringEntry (accum,nextValue) = {
60- let $t024792502 = accum
61- let result = $t024792502._1
62- let j = $t024792502._2
63- $Tuple2((result :+ StringEntry(opts[j], nextValue)), (j + 1))
60+ let $t024732496 = accum
61+ let result = $t024732496._1
62+ let j = $t024732496._2
63+ $Tuple2((result :+ IntegerEntry(opts[j], nextValue)), (j + 1))
6464 }
6565
6666 let r = {
6767 let $l = vals
6868 let $s = size($l)
6969 let $acc0 = $Tuple2(nil, 0)
7070 func $f0_1 ($a,$i) = if (($i >= $s))
7171 then $a
7272 else addStringEntry($a, $l[$i])
7373
7474 func $f0_2 ($a,$i) = if (($i >= $s))
7575 then $a
7676 else throw("List size exceeds 100")
7777
7878 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
7979 }
8080 let callerAddressStr = toString(i.caller)
8181 if ((adminList != "unset"))
8282 then {
8383 let test = getString(addressFromStringValue(adminList), callerAddressStr)
8484 let isAdmin = match test {
8585 case x: String =>
8686 x
8787 case _: Unit =>
8888 "no admin"
8989 case _ =>
9090 throw("Match error")
9191 }
9292 func add_elm (options) = {
9393 let opt = split(options, "|")
9494 StringEntry(opt[0], opt[1])
9595 }
9696
9797 if ((isAdmin != "no admin"))
9898 then r
9999 else throw((((((("You not admin: " + adminList) + ", isAdmin: ") + isAdmin) + ", callerAddressStr: ") + callerAddressStr) + ", "))
100100 }
101101 else throw("Unset admin list")
102102 }
103103 else throw("The number of list elements must not exceed 100")
104104 }
105105
106106
107107
108108 @Callable(i)
109109 func setOption (variable,value) = {
110110 let options_addr = Address(base58'3MusfsY6PqDh1YnF7YyTi5ffVT16Dm2bqf6')
111111 let adminList = match getString(options_addr, "admin_list") {
112112 case _: Unit =>
113113 "unset"
114114 case x: String =>
115115 x
116116 case _ =>
117117 throw("Match error")
118118 }
119119 let callerAddressStr = toString(i.caller)
120120 if ((adminList != "unset"))
121121 then {
122122 let test = getString(addressFromStringValue(adminList), callerAddressStr)
123123 let isAdmin = match test {
124124 case x: String =>
125125 x
126126 case _: Unit =>
127127 "no admin"
128128 case _ =>
129129 throw("Match error")
130130 }
131131 if ((isAdmin != "no admin"))
132- then $Tuple2([StringEntry(variable, value)], unit)
132+ then $Tuple2([IntegerEntry(variable, value)], unit)
133133 else throw((((((("You not admin: " + adminList) + ", isAdmin: ") + isAdmin) + ", callerAddressStr: ") + callerAddressStr) + ", "))
134134 }
135135 else throw("Unset admin list")
136136 }
137137
138138
139139 @Verifier(tx)
140140 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
141141

github/deemru/w8io/169f3d6 
51.38 ms