tx · fbNwNs3c3dGiyZ7kLTNKz2phpekzWJLe7Dq6GP4qWR7

3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez:  -0.01000000 Waves

2023.04.29 12:49 [3621283] smart account 3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez > SELF 0.00000000 Waves

{ "type": 13, "id": "fbNwNs3c3dGiyZ7kLTNKz2phpekzWJLe7Dq6GP4qWR7", "fee": 1000000, "feeAssetId": null, "timestamp": 1682761923907, "version": 2, "chainId": 87, "sender": "3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez", "senderPublicKey": "3zaQerEjh4SK1xhin9zzs5qr337aLRFhz7z1ckjFGhMz", "proofs": [ "2HqkGjqbLvNvvrnccUF83jMh33HKGpc9opjrGmB1kkyoujm5uCVhbQEVgDysLiMaDgdxgGmPSrCwiPnxaeAP7z6j" ], "script": "base64:BgLLBAgCEgMKAQESAwoBARIDCgEBEgMKAQgiDmZyZWVfdG9fYm9ycm9tIg1VU0ROX0FTU0VUX0lEIgRib3NzIg5hZG1pblB1YmxpY0tleSIMV1hfU1dBUF9EQVBQIglhc3NldHNfaW4iCmdldEJhbGFuY2UiB2Fzc2V0SWQiByRtYXRjaDAiAWIiCGdldEJhc2UxIgRkYXRhIgZwX2RhdGEiAWEiAmEyIgdhc3NldEluIghhbW91bnRJbiIIZ2V0QmFzZTIiAnAxIgF0Ig1nZXRBc3NldEJ5dGVzIgdzd2FwX3d4IgFwIgVhc3NldCIAIgZhbW91bnQiBGNhbGwiCXN3YXBfc3dvcCIEc3dhcCILc3dhcF9wdXp6bGUiCGFzc2V0T3V0IgZ1Y2hlY2siAmlkIgFoIgFpIgRhbW50IgpjdXJyZW50QmFsIgpkYXRhX2FycmF5IgskdDAzMDA4MzA2NCILJHQwMzA2OTMxMDciAnQxIgskdDAzMTEyMzE1MCICcDIiAnQyIgskdDAzMTU1MzE5MyICcDMiAnQzIgNpZHUiEmFtb3VudF9iZWZfYXNzZXRJbiIGdWxpbWl0IgptYXhfYW1vdW50IgxuZXdfYW1vdW50SW4iEWFtb3VudF9iZWZfYXNzZXQxIgVzd2FwMSICbmIiEWFtb3VudF9iZWZfYXNzZXQyIgVzd2FwMiIDbmIyIhVhbW91bnRfYmVmX2Jhc2VfYXNzZXQiBXN3YXAzIgNuYjMiCHRyZXNob2xkIgJ0eCIGdmVyaWZ5DgABYQkBEUBleHRyTmF0aXZlKDEwNjIpAQIjM1BHN0NIdkJhdEhwQ2h3bThyZUg3NHdmRXdrMVBIYzhScXkAAWIBILYmKcME9c5TkaQOS3UkL2SMUbH6369UKb1I0h0qsqrRAAFjCQERQGV4dHJOYXRpdmUoMTA2MikBAiMzUFJFNUtIOW9QR2ZGUHM3ZkduUWNKNHdOc2hFRFVQR2oxdAABZAEgr/8efHaHn138Hq+fsexc54494j5bIbLgBnFNFv+bFW0AAWUJAQdBZGRyZXNzAQEaAVcuKjU1sQ238Xk+4bdG0J50Uk17MdCDrgYAAWYJAMwIAgIsREcyeEZrUGREd0tVb0JrekdBaFF0THBTR3pmWExpQ1lQRXplS0gyQWQyNHAFA25pbAEBZwEBaAQBaQUBaAMJAAECBQFpAgpCeXRlVmVjdG9yBAFqBQFpCQDwBwIFBHRoaXMFAWoICQDvBwEFBHRoaXMJYXZhaWxhYmxlAQFrAQFsBAFtCQC8CQIFAWwCAV8EAW4JAJEDAgUBbQAABAFvCQCRAwIFAW0AAQQBcAkAkQMCBQFmCQEFdmFsdWUBCQC2CQEJAJEDAgUBbQACBAFxCQCRAwIFAW0AAwkAlgoEBQFuBQFvBQFwBQFxAQFyAQFsBAFtCQC1CQIFAWwCAV8EAXMJAJEDAgUBbQAABAF0CQCRAwIFAW0AAQkAlAoCBQFzBQF0AQF1AQFoAwkAAAIFAWgCBVdBVkVTBQR1bml0CQDZBAEFAWgBAXYEAXcBeAF6AW4EAUEJAPwHBAUBZQIEc3dhcAkAzAgCAAEJAMwIAgUBbgkAzAgCCQClCAEFBHRoaXMFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkBAXUBBQF4BQF6BQNuaWwDCQAAAgUBQQUBQQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQFCAwF3AXgBegQBQwkA/AcECQEHQWRkcmVzcwEJANkEAQUBdwIIZXhjaGFuZ2UJAMwIAgABBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQF1AQUBeAUBegUDbmlsAwkAAAIFAUMFAUMFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEBRAQBdwF4AXoBRQQBQwkA/AcECQEHQWRkcmVzcwEJANkEAQUBdwIEc3dhcAkAzAgCBQFFCQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQEBdQEFAXgFAXoFA25pbAMJAAACBQFDBQFDBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAUYBAUcEAWkJAOkHAQUBRwMJAAECBQFpAgNJbnQEAUgFAWkFAUgAAAQBSQEGYm9ycm93AQFKAwkBASEBCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQFhCQDMCAIFAWMJAMwIAgUEdGhpcwUDbmlsCAUBSQZjYWxsZXIJAAIBAh55b3UgYXJlIG5vdCBhbGxvd2VkIHRvIGJvcnJvdyEEAUsJAQFnAQUBYgMJAGYCBQFKBQFLCQACAQIcWW91IGNhbm5ub3QgYm9ycm93IHRoYXQgbXVjaAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBSQZjYWxsZXIFAUoFAWIFA25pbAFJAQtzZXRUcmVzaG9sZAEBSgMJAQEhAQkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUBYQkAzAgCBQFjCQDMCAIFBHRoaXMFA25pbAgFAUkGY2FsbGVyCQACAQIfeW91IGFyZSBub3QgYWxsb3dlZCB0byBkbyB0aGF0IQkAzAgCCQEMSW50ZWdlckVudHJ5AgIIdHJlc2hvbGQFAUoFA25pbAFJAQlzZXRVTGltaXQBAUoDAwkAZgIAAAUBSgYJAGYCBQFKAGQJAAIBAgxXcm9uZyBhbW91bnQDCQEBIQEJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFAWMJAMwIAgUEdGhpcwUDbmlsCAUBSQZjYWxsZXIJAAIBAh95b3UgYXJlIG5vdCBhbGxvd2VkIHRvIGRvIHRoYXQhCQDMCAIJAQxJbnRlZ2VyRW50cnkCAgZ1bGltaXQFAUoFA25pbAFJAQF5AQFsAwMJAQIhPQIIBQFJBmNhbGxlcgUEdGhpcwkBAiE9AggFAUkGY2FsbGVyBQFjBwkAAgECG3lvdSBhcmUgbm90IGFsbG93ZWQgdG8gYXJiIQQBTAkAvAkCBQFsAgF8BAFNCQEBawEJAJEDAgUBTAAABAFuCAUBTQJfMQQBbwgFAU0CXzIEAXAIBQFNAl8zBAFxCAUBTQJfNAQBTgkBAXIBCQCRAwIFAUwAAQQBcwgFAU4CXzEEAU8IBQFOAl8yBAFQCQEBcgEJAJEDAgUBTAACBAFRCAUBUAJfMQQBUggFAVACXzIEAVMJAQFyAQkAkQMCBQFMAAMEAVQIBQFTAl8xBAFVCAUBUwJfMgQBVgMJAGYCCQCxAgEJAJEDAgUBTAAEAAEJALwJAgkAkQMCBQFMAAQCAS0FA25pbAMDAwkAZgIJAJADAQUBVgAACQBmAgkBAUYBCQDZBAEJAJEDAgUBVgAAAAAHBgkAZwIAAQkAsQIBCQCRAwIFAUwABAQBVwkBAWcBCQEBdQEFAXADCQAAAgUBVwUBVwQBWAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzAgZ1bGltaXQAZAQBWQMJAGYCCQCQAwEFAVYAAAkAawMFAVcFAVgAZAUBVwQBWgMJAGYCCQEFdmFsdWUBCQC2CQEFAXEFAVkFAVkJAQV2YWx1ZQEJALYJAQUBcQMJAAACBQFaBQFaBAJhYQkBAWcBCQEBdQEFAW4DCQAAAgUCYWEFAmFhBAJhYgMJAAACBQFPAgFXCQEBdgQFAXMFAXAFAVoFAW4DCQAAAgUBTwIBUwkBAUIDBQFzBQFwBQFaCQEBRAQFAXMFAXAFAVoFAW4DCQAAAgUCYWIFAmFiBAJhYwkAZQIJAQFnAQkBAXUBBQFuBQJhYQMJAAACBQJhYwUCYWMEAmFkCQEBZwEJAQF1AQUBbwMJAAACBQJhZAUCYWQEAmFlAwkAAAIFAVICAVcJAQF2BAUBUQUBbgUCYWMFAW8DCQAAAgUBUgIBUwkBAUIDBQFRBQFuBQJhYwkBAUQEBQFRBQFuBQJhYwUBbwMJAAACBQJhZQUCYWUEAmFmCQBlAgkBAWcBCQEBdQEFAW8FAmFkAwkAAAIFAmFmBQJhZgQCYWcJAQFnAQkBAXUBBQFwAwkAAAIFAmFnBQJhZwQCYWgDCQAAAgUBVQIBVwkBAXYEBQFUBQFvBQJhZgUBcAMJAAACBQFVAgFTCQEBQgMFAVQFAW8FAmFmCQEBRAQFAVQFAW8FAmFmBQFwAwkAAAIFAmFoBQJhaAQCYWkJAGUCCQEBZwEJAQF1AQUBcAUCYWcDCQAAAgUCYWkFAmFpBAJhagkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzAgh0cmVzaG9sZADwkwkDCQBmAgUCYWkJAGQCBQFaBQJhagkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBSQZjYWxsZXIJAGUCBQJhaQUBWgkBAXUBBQFwBQNuaWwJAAIBCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAhJvcmlnaW4gYW1vdW50SW4gPSAFAXECESwgbmV3X2Ftb3VudEluID0gCQCkAwEFAVoCDCwgbmV3QmFsXzE6IAkApAMBBQJhYwIMLCBuZXdCYWxfMjogCQCkAwEFAmFmAgwsIG5ld0JhbF8zOiAJAKQDAQUCYWkJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4FA25pbAECYWsBAmFsAAMJAMgTAwgFAmFrCWJvZHlCeXRlcwkAkQMCCAUCYWsGcHJvb2ZzAAAIBQJhaw9zZW5kZXJQdWJsaWNLZXkGCQDIEwMIBQJhawlib2R5Qnl0ZXMJAJEDAggFAmFrBnByb29mcwAABQFk3AbArA==", "height": 3621283, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8ANs9ZMwhg3tbg2FH82fTvwi9rYcXerRDGfNZKt4ERxL Next: DgDzTaxYAJFJ3dCcnMoJaBsKJPVrVMjVo4LYsFEDRDgJ Diff:
OldNewDifferences
6868 }
6969
7070
71+func ucheck (id) = match transactionHeightById(id) {
72+ case h: Int =>
73+ h
74+ case _ =>
75+ 0
76+}
77+
78+
7179 @Callable(i)
7280 func borrow (amnt) = if (!(containsElement([free_to_borrom, boss, this], i.caller)))
7381 then throw("you are not allowed to borrow!")
122130 let idu = if ((size(data_array[4]) > 1))
123131 then split_4C(data_array[4], "-")
124132 else nil
125- if (if ((size(idu) > 0))
133+ if (if (if ((size(idu) > 0))
134+ then (ucheck(fromBase58String(idu[0])) > 0)
135+ else false)
126136 then true
127137 else (1 >= size(data_array[4])))
128138 then {
130140 if ((amount_bef_assetIn == amount_bef_assetIn))
131141 then {
132142 let ulimit = valueOrElse(getInteger(this, "ulimit"), 100)
133- let amount_use = if ((size(idu) > 0))
143+ let max_amount = if ((size(idu) > 0))
134144 then fraction(amount_bef_assetIn, ulimit, 100)
135145 else amount_bef_assetIn
136- let new_amountIn = if ((value(parseInt(amountIn)) > amount_use))
137- then amount_use
146+ let new_amountIn = if ((value(parseInt(amountIn)) > max_amount))
147+ then max_amount
138148 else value(parseInt(amountIn))
139149 if ((new_amountIn == new_amountIn))
140150 then {
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let free_to_borrom = addressFromStringValue("3PG7CHvBatHpChwm8reH74wfEwk1PHc8Rqy")
55
66 let USDN_ASSET_ID = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
77
88 let boss = addressFromStringValue("3PRE5KH9oPGfFPs7fGnQcJ4wNshEDUPGj1t")
99
1010 let adminPublicKey = base58'Cr1ybL2JGg9GwJHA2JwqxBPfSW6Q7Jg4HvNrsEiCsHu6'
1111
1212 let WX_SWAP_DAPP = Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93')
1313
1414 let assets_in = ["DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"]
1515
1616 func getBalance (assetId) = match assetId {
1717 case b: ByteVector =>
1818 assetBalance(this, b)
1919 case _ =>
2020 wavesBalance(this).available
2121 }
2222
2323
2424 func getBase1 (data) = {
2525 let p_data = split_4C(data, "_")
2626 let a = p_data[0]
2727 let a2 = p_data[1]
2828 let assetIn = assets_in[value(parseInt(p_data[2]))]
2929 let amountIn = p_data[3]
3030 $Tuple4(a, a2, assetIn, amountIn)
3131 }
3232
3333
3434 func getBase2 (data) = {
3535 let p_data = split(data, "_")
3636 let p1 = p_data[0]
3737 let t = p_data[1]
3838 $Tuple2(p1, t)
3939 }
4040
4141
4242 func getAssetBytes (assetId) = if ((assetId == "WAVES"))
4343 then unit
4444 else fromBase58String(assetId)
4545
4646
4747 func swap_wx (p,asset,amount,a) = {
4848 let call = invoke(WX_SWAP_DAPP, "swap", [1, a, toString(this)], [AttachedPayment(getAssetBytes(asset), amount)])
4949 if ((call == call))
5050 then nil
5151 else throw("Strict value is not equal to itself.")
5252 }
5353
5454
5555 func swap_swop (p,asset,amount) = {
5656 let swap = invoke(Address(fromBase58String(p)), "exchange", [1], [AttachedPayment(getAssetBytes(asset), amount)])
5757 if ((swap == swap))
5858 then nil
5959 else throw("Strict value is not equal to itself.")
6060 }
6161
6262
6363 func swap_puzzle (p,asset,amount,assetOut) = {
6464 let swap = invoke(Address(fromBase58String(p)), "swap", [assetOut, 1], [AttachedPayment(getAssetBytes(asset), amount)])
6565 if ((swap == swap))
6666 then nil
6767 else throw("Strict value is not equal to itself.")
6868 }
6969
7070
71+func ucheck (id) = match transactionHeightById(id) {
72+ case h: Int =>
73+ h
74+ case _ =>
75+ 0
76+}
77+
78+
7179 @Callable(i)
7280 func borrow (amnt) = if (!(containsElement([free_to_borrom, boss, this], i.caller)))
7381 then throw("you are not allowed to borrow!")
7482 else {
7583 let currentBal = getBalance(USDN_ASSET_ID)
7684 if ((amnt > currentBal))
7785 then throw("You cannnot borrow that much")
7886 else [ScriptTransfer(i.caller, amnt, USDN_ASSET_ID)]
7987 }
8088
8189
8290
8391 @Callable(i)
8492 func setTreshold (amnt) = if (!(containsElement([free_to_borrom, boss, this], i.caller)))
8593 then throw("you are not allowed to do that!")
8694 else [IntegerEntry("treshold", amnt)]
8795
8896
8997
9098 @Callable(i)
9199 func setULimit (amnt) = if (if ((0 > amnt))
92100 then true
93101 else (amnt > 100))
94102 then throw("Wrong amount")
95103 else if (!(containsElement([boss, this], i.caller)))
96104 then throw("you are not allowed to do that!")
97105 else [IntegerEntry("ulimit", amnt)]
98106
99107
100108
101109 @Callable(i)
102110 func y (data) = if (if ((i.caller != this))
103111 then (i.caller != boss)
104112 else false)
105113 then throw("you are not allowed to arb!")
106114 else {
107115 let data_array = split_4C(data, "|")
108116 let $t030083064 = getBase1(data_array[0])
109117 let a = $t030083064._1
110118 let a2 = $t030083064._2
111119 let assetIn = $t030083064._3
112120 let amountIn = $t030083064._4
113121 let $t030693107 = getBase2(data_array[1])
114122 let p1 = $t030693107._1
115123 let t1 = $t030693107._2
116124 let $t031123150 = getBase2(data_array[2])
117125 let p2 = $t031123150._1
118126 let t2 = $t031123150._2
119127 let $t031553193 = getBase2(data_array[3])
120128 let p3 = $t031553193._1
121129 let t3 = $t031553193._2
122130 let idu = if ((size(data_array[4]) > 1))
123131 then split_4C(data_array[4], "-")
124132 else nil
125- if (if ((size(idu) > 0))
133+ if (if (if ((size(idu) > 0))
134+ then (ucheck(fromBase58String(idu[0])) > 0)
135+ else false)
126136 then true
127137 else (1 >= size(data_array[4])))
128138 then {
129139 let amount_bef_assetIn = getBalance(getAssetBytes(assetIn))
130140 if ((amount_bef_assetIn == amount_bef_assetIn))
131141 then {
132142 let ulimit = valueOrElse(getInteger(this, "ulimit"), 100)
133- let amount_use = if ((size(idu) > 0))
143+ let max_amount = if ((size(idu) > 0))
134144 then fraction(amount_bef_assetIn, ulimit, 100)
135145 else amount_bef_assetIn
136- let new_amountIn = if ((value(parseInt(amountIn)) > amount_use))
137- then amount_use
146+ let new_amountIn = if ((value(parseInt(amountIn)) > max_amount))
147+ then max_amount
138148 else value(parseInt(amountIn))
139149 if ((new_amountIn == new_amountIn))
140150 then {
141151 let amount_bef_asset1 = getBalance(getAssetBytes(a))
142152 if ((amount_bef_asset1 == amount_bef_asset1))
143153 then {
144154 let swap1 = if ((t1 == "W"))
145155 then swap_wx(p1, assetIn, new_amountIn, a)
146156 else if ((t1 == "S"))
147157 then swap_swop(p1, assetIn, new_amountIn)
148158 else swap_puzzle(p1, assetIn, new_amountIn, a)
149159 if ((swap1 == swap1))
150160 then {
151161 let nb = (getBalance(getAssetBytes(a)) - amount_bef_asset1)
152162 if ((nb == nb))
153163 then {
154164 let amount_bef_asset2 = getBalance(getAssetBytes(a2))
155165 if ((amount_bef_asset2 == amount_bef_asset2))
156166 then {
157167 let swap2 = if ((t2 == "W"))
158168 then swap_wx(p2, a, nb, a2)
159169 else if ((t2 == "S"))
160170 then swap_swop(p2, a, nb)
161171 else swap_puzzle(p2, a, nb, a2)
162172 if ((swap2 == swap2))
163173 then {
164174 let nb2 = (getBalance(getAssetBytes(a2)) - amount_bef_asset2)
165175 if ((nb2 == nb2))
166176 then {
167177 let amount_bef_base_asset = getBalance(getAssetBytes(assetIn))
168178 if ((amount_bef_base_asset == amount_bef_base_asset))
169179 then {
170180 let swap3 = if ((t3 == "W"))
171181 then swap_wx(p3, a2, nb2, assetIn)
172182 else if ((t3 == "S"))
173183 then swap_swop(p3, a2, nb2)
174184 else swap_puzzle(p3, a2, nb2, assetIn)
175185 if ((swap3 == swap3))
176186 then {
177187 let nb3 = (getBalance(getAssetBytes(assetIn)) - amount_bef_base_asset)
178188 if ((nb3 == nb3))
179189 then {
180190 let treshold = valueOrElse(getInteger(this, "treshold"), 150000)
181191 if ((nb3 > (new_amountIn + treshold)))
182192 then [ScriptTransfer(i.caller, (nb3 - new_amountIn), getAssetBytes(assetIn))]
183193 else throw(((((((((("origin amountIn = " + amountIn) + ", new_amountIn = ") + toString(new_amountIn)) + ", newBal_1: ") + toString(nb)) + ", newBal_2: ") + toString(nb2)) + ", newBal_3: ") + toString(nb3)))
184194 }
185195 else throw("Strict value is not equal to itself.")
186196 }
187197 else throw("Strict value is not equal to itself.")
188198 }
189199 else throw("Strict value is not equal to itself.")
190200 }
191201 else throw("Strict value is not equal to itself.")
192202 }
193203 else throw("Strict value is not equal to itself.")
194204 }
195205 else throw("Strict value is not equal to itself.")
196206 }
197207 else throw("Strict value is not equal to itself.")
198208 }
199209 else throw("Strict value is not equal to itself.")
200210 }
201211 else throw("Strict value is not equal to itself.")
202212 }
203213 else throw("Strict value is not equal to itself.")
204214 }
205215 else throw("Strict value is not equal to itself.")
206216 }
207217 else nil
208218 }
209219
210220
211221 @Verifier(tx)
212222 func verify () = if (sigVerify_128Kb(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
213223 then true
214224 else sigVerify_128Kb(tx.bodyBytes, tx.proofs[0], adminPublicKey)
215225

github/deemru/w8io/3ef1775 
40.45 ms