tx · 5RhD3AGa8t9XduusSfjubRd6bcA718VVa4i1zLY7sWoi

3P52TtidVCVeSQiC38weUFGZWcP1r5VRw1B:  -0.00500000 Waves

2023.12.10 19:37 [3946686] smart account 3P52TtidVCVeSQiC38weUFGZWcP1r5VRw1B > SELF 0.00000000 Waves

{ "type": 13, "id": "5RhD3AGa8t9XduusSfjubRd6bcA718VVa4i1zLY7sWoi", "fee": 500000, "feeAssetId": null, "timestamp": 1702226202949, "version": 2, "chainId": 87, "sender": "3P52TtidVCVeSQiC38weUFGZWcP1r5VRw1B", "senderPublicKey": "87q18YNQT35ZcKk6Q3aSFCAv4dvkkBf4iuzic7qHbikw", "proofs": [ "4KREyLF3pphpAsGr9s8sEUchduV3gFpugQp8jKmiWsCEUhaZ8gxBGj8TkaKvY7NskGi5qW9xjPSB1B4x18eAGM57" ], "script": "base64:BgIMCAISAwoBCBIDCgEICAAGY2FsbGVyCQERQGV4dHJOYXRpdmUoMTA2MikBAiMzUE1ibnFpZmZyeDVOUkFzZ3VuNmJHZEU0VDRNOWd4V0xnZwAFYWRtaW4JARFAZXh0ck5hdGl2ZSgxMDYyKQECIzNQOU1VcmJlUWtlZjVkS3BIdzdRTjdqdjd5NHE3WFZVaTZKAARwb29sCQERQGV4dHJOYXRpdmUoMTA2MikBAiMzUERCck5QR1JHUW03d2J4c2o3Z1BzZk1QVHhUNWVQMU1VZwABUgkBEUBleHRyTmF0aXZlKDEwNjIpAQIjM1A2OHpOaXVmc3UxdmlacHUxYVkzY2RhaFJSS2N2VjVOOTMBDWdldEFzc2V0Qnl0ZXMBCmFzc2V0SWRTdHIDCQAAAgUKYXNzZXRJZFN0cgIFV0FWRVMFBHVuaXQJANkEAQUKYXNzZXRJZFN0cgEKZ2V0QmFsYW5jZQEHYXNzZXRJZAQHJG1hdGNoMAUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgRVbml0BAF4BQckbWF0Y2gwCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQkA8AcCBQR0aGlzCQEFdmFsdWUBBQdhc3NldElkAQ5nZXRBc3NldFN0cmluZwEHYXNzZXRJZAQHJG1hdGNoMAUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAFiBQckbWF0Y2gwCQDYBAEFAWICBVdBVkVTAQFiAgFjAWQEBHR5cGUJALwJAgUBZAIBOgMJAAACBQR0eXBlBQR0eXBlBAF0CQCRAwIFBHR5cGUAAAMJAAACBQF0BQF0BANhZGQJALwJAgkAkQMCBQR0eXBlAAECASwDCQAAAgUDYWRkBQNhZGQEBmFtb3VudAgFAWMCXzEDCQAAAgUGYW1vdW50BQZhbW91bnQEB2Fzc2V0SWQIBQFjAl8yAwkAAAIFB2Fzc2V0SWQFB2Fzc2V0SWQEA2JhbAkBCmdldEJhbGFuY2UBCQENZ2V0QXNzZXRCeXRlcwEJAJEDAgUDYWRkAAEDCQAAAgUDYmFsBQNiYWwEBXN3YXAxAwkAAAIFAXQCATAJAPwHBAkBB0FkZHJlc3MBCQDZBAEJAJEDAgUDYWRkAAACCGV4Y2hhbmdlCQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQENZ2V0QXNzZXRCeXRlcwEFB2Fzc2V0SWQFBmFtb3VudAUDbmlsAwkAAAIFAXQCATEJAPwHBAUBUgIEc3dhcAkAzAgCAAEJAMwIAgkAkQMCBQNhZGQAAQkAzAgCCQClCAEFBHRoaXMFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkBDWdldEFzc2V0Qnl0ZXMBBQdhc3NldElkBQZhbW91bnQFA25pbAMJAAACBQF0AgEyCQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUDYWRkAAACBHN3YXAJAMwIAgkAkQMCBQNhZGQAAQkAzAgCAAEFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkBDWdldEFzc2V0Qnl0ZXMBBQdhc3NldElkBQZhbW91bnQFA25pbAMJAAACBQF0AgEzCQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUDYWRkAAACGVN3YXBXQVZFU1RvQXNzZXRQYWlyRW50cnkJAMwIAgkAkQMCBQNhZGQAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQENZ2V0QXNzZXRCeXRlcwEFB2Fzc2V0SWQFBmFtb3VudAUDbmlsAwkAAAIFAXQCATQJAPwHBAkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQNhZGQAAAIZU3dhcEFzc2V0VG9XQVZFU1BhaXJFbnRyeQkAzAgCBQdhc3NldElkBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQ1nZXRBc3NldEJ5dGVzAQUHYXNzZXRJZAUGYW1vdW50BQNuaWwDCQAAAgUBdAIBNQkA/AcECQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFA2FkZAAAAhdTd2FwWFROVG9Bc3NldFBhaXJFbnRyeQkAzAgCCQCRAwIFA2FkZAABBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQ1nZXRBc3NldEJ5dGVzAQUHYXNzZXRJZAUGYW1vdW50BQNuaWwDCQAAAgUBdAIBNgkA/AcECQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFA2FkZAAAAhdTd2FwQXNzZXRUb1hUTlBhaXJFbnRyeQkAzAgCBQdhc3NldElkBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQ1nZXRBc3NldEJ5dGVzAQUHYXNzZXRJZAUGYW1vdW50BQNuaWwDCQAAAgUBdAIBNwkA/AcECQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFA2FkZAAAAgh3aXRoZHJhdwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQENZ2V0QXNzZXRCeXRlcwEFB2Fzc2V0SWQFBmFtb3VudAUDbmlsBQNuaWwDCQAAAgUFc3dhcDEFBXN3YXAxBARuYmFsCQBlAgkBCmdldEJhbGFuY2UBCQENZ2V0QXNzZXRCeXRlcwEJAJEDAgUDYWRkAAEFA2JhbAMJAAACBQRuYmFsBQRuYmFsCQCUCgIFBG5iYWwJAJEDAgUDYWRkAAEJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CAWkBBHN3YXABBWlucHV0AwkBAiE9AggFAWkGY2FsbGVyBQZjYWxsZXIJAAIBAgEhBAFhCQC8CQIFBWlucHV0AgE7AwkAAAIFAWEFAWEEAXMJAJQKAggJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQJAQ5nZXRBc3NldFN0cmluZwEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAMJAAACBQFzBQFzBAFwCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAMJAAACBQFwBQFwBANiYWwJAQpnZXRCYWxhbmNlAQgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkAwkAAAIFA2JhbAUDYmFsBAF6CgACJGwFAWEKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQFzCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQFiAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAwkAAAIFAXoFAXoEBG5iYWwJAGUCCQEKZ2V0QmFsYW5jZQEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUDYmFsAwkAAAIFBG5iYWwFBG5iYWwDCQBmAgUEbmJhbAAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgkAZAIFAXAFBG5iYWwICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUDbmlsCQACAQkApAMBBQRuYmFsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBAXcBBWlucHV0AwkBAiE9AggFAWkMb3JpZ2luQ2FsbGVyBQZjYWxsZXIJAAIBAgEhAwkBAiE9AggFAWkGY2FsbGVyBQRwb29sCQACAQIBIQQBYQkAvAkCBQVpbnB1dAIBOwMJAAACBQFhBQFhBAFzCQCUCgIICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50CQEOZ2V0QXNzZXRTdHJpbmcBCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQDCQAAAgUBcwUBcwQBcAgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQDCQAAAgUBcAUBcAQDYmFsCQEKZ2V0QmFsYW5jZQEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAMJAAACBQNiYWwFA2JhbAQBegoAAiRsBQFhCgACJHMJAJADAQUCJGwKAAUkYWNjMAUBcwoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEBYgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgMJAAACBQF6BQF6BARuYmFsCQBlAgkBCmdldEJhbGFuY2UBCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFA2JhbAMJAAACBQRuYmFsBQRuYmFsAwkAZgIFBG5iYWwAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVhZG1pbgUEbmJhbAgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBHBvb2wFAXAICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUDbmlsCQACAQkApAMBBQRuYmFsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJ0eAEGdmVyaWZ5AAkAxRMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tleXcThXg=", "height": 3946686, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GdXe6VdvU4ibEwf6gB4mnT77upe1tJLuy58odhjkttYt Next: 9sQUqDwGaVxajT1m54LTYd3KTpPzC9V8a8ZtkBgPNdnc Diff:
OldNewDifferences
6363 then invoke(addressFromStringValue(add[0]), "SwapXTNToAssetPairEntry", [add[1]], [AttachedPayment(getAssetBytes(assetId), amount)])
6464 else if ((t == "6"))
6565 then invoke(addressFromStringValue(add[0]), "SwapAssetToXTNPairEntry", [assetId], [AttachedPayment(getAssetBytes(assetId), amount)])
66- else nil
66+ else if ((t == "7"))
67+ then invoke(addressFromStringValue(add[0]), "withdraw", nil, [AttachedPayment(getAssetBytes(assetId), amount)])
68+ else nil
6769 if ((swap1 == swap1))
6870 then {
6971 let nbal = (getBalance(getAssetBytes(add[1])) - bal)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let caller = addressFromStringValue("3PMbnqiffrx5NRAsgun6bGdE4T4M9gxWLgg")
55
66 let admin = addressFromStringValue("3P9MUrbeQkef5dKpHw7QN7jv7y4q7XVUi6J")
77
88 let pool = addressFromStringValue("3PDBrNPGRGQm7wbxsj7gPsfMPTxT5eP1MUg")
99
1010 let R = addressFromStringValue("3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93")
1111
1212 func getAssetBytes (assetIdStr) = if ((assetIdStr == "WAVES"))
1313 then unit
1414 else fromBase58String(assetIdStr)
1515
1616
1717 func getBalance (assetId) = match assetId {
1818 case x: Unit =>
1919 wavesBalance(this).available
2020 case _ =>
2121 assetBalance(this, value(assetId))
2222 }
2323
2424
2525 func getAssetString (assetId) = match assetId {
2626 case b: ByteVector =>
2727 toBase58String(b)
2828 case _ =>
2929 "WAVES"
3030 }
3131
3232
3333 func b (c,d) = {
3434 let type = split_4C(d, ":")
3535 if ((type == type))
3636 then {
3737 let t = type[0]
3838 if ((t == t))
3939 then {
4040 let add = split_4C(type[1], ",")
4141 if ((add == add))
4242 then {
4343 let amount = c._1
4444 if ((amount == amount))
4545 then {
4646 let assetId = c._2
4747 if ((assetId == assetId))
4848 then {
4949 let bal = getBalance(getAssetBytes(add[1]))
5050 if ((bal == bal))
5151 then {
5252 let swap1 = if ((t == "0"))
5353 then invoke(Address(fromBase58String(add[0])), "exchange", [1], [AttachedPayment(getAssetBytes(assetId), amount)])
5454 else if ((t == "1"))
5555 then invoke(R, "swap", [1, add[1], toString(this)], [AttachedPayment(getAssetBytes(assetId), amount)])
5656 else if ((t == "2"))
5757 then invoke(addressFromStringValue(add[0]), "swap", [add[1], 1], [AttachedPayment(getAssetBytes(assetId), amount)])
5858 else if ((t == "3"))
5959 then invoke(addressFromStringValue(add[0]), "SwapWAVESToAssetPairEntry", [add[1]], [AttachedPayment(getAssetBytes(assetId), amount)])
6060 else if ((t == "4"))
6161 then invoke(addressFromStringValue(add[0]), "SwapAssetToWAVESPairEntry", [assetId], [AttachedPayment(getAssetBytes(assetId), amount)])
6262 else if ((t == "5"))
6363 then invoke(addressFromStringValue(add[0]), "SwapXTNToAssetPairEntry", [add[1]], [AttachedPayment(getAssetBytes(assetId), amount)])
6464 else if ((t == "6"))
6565 then invoke(addressFromStringValue(add[0]), "SwapAssetToXTNPairEntry", [assetId], [AttachedPayment(getAssetBytes(assetId), amount)])
66- else nil
66+ else if ((t == "7"))
67+ then invoke(addressFromStringValue(add[0]), "withdraw", nil, [AttachedPayment(getAssetBytes(assetId), amount)])
68+ else nil
6769 if ((swap1 == swap1))
6870 then {
6971 let nbal = (getBalance(getAssetBytes(add[1])) - bal)
7072 if ((nbal == nbal))
7173 then $Tuple2(nbal, add[1])
7274 else throw("Strict value is not equal to itself.")
7375 }
7476 else throw("Strict value is not equal to itself.")
7577 }
7678 else throw("Strict value is not equal to itself.")
7779 }
7880 else throw("Strict value is not equal to itself.")
7981 }
8082 else throw("Strict value is not equal to itself.")
8183 }
8284 else throw("Strict value is not equal to itself.")
8385 }
8486 else throw("Strict value is not equal to itself.")
8587 }
8688 else throw("Strict value is not equal to itself.")
8789 }
8890
8991
9092 @Callable(i)
9193 func swap (input) = if ((i.caller != caller))
9294 then throw("!")
9395 else {
9496 let a = split_4C(input, ";")
9597 if ((a == a))
9698 then {
9799 let s = $Tuple2(i.payments[0].amount, getAssetString(i.payments[0].assetId))
98100 if ((s == s))
99101 then {
100102 let p = i.payments[0].amount
101103 if ((p == p))
102104 then {
103105 let bal = getBalance(i.payments[0].assetId)
104106 if ((bal == bal))
105107 then {
106108 let z = {
107109 let $l = a
108110 let $s = size($l)
109111 let $acc0 = s
110112 func $f0_1 ($a,$i) = if (($i >= $s))
111113 then $a
112114 else b($a, $l[$i])
113115
114116 func $f0_2 ($a,$i) = if (($i >= $s))
115117 then $a
116118 else throw("List size exceeds 10")
117119
118120 $f0_2($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)
119121 }
120122 if ((z == z))
121123 then {
122124 let nbal = (getBalance(i.payments[0].assetId) - bal)
123125 if ((nbal == nbal))
124126 then if ((nbal > 0))
125127 then [ScriptTransfer(i.caller, (p + nbal), i.payments[0].assetId)]
126128 else throw(toString(nbal))
127129 else throw("Strict value is not equal to itself.")
128130 }
129131 else throw("Strict value is not equal to itself.")
130132 }
131133 else throw("Strict value is not equal to itself.")
132134 }
133135 else throw("Strict value is not equal to itself.")
134136 }
135137 else throw("Strict value is not equal to itself.")
136138 }
137139 else throw("Strict value is not equal to itself.")
138140 }
139141
140142
141143
142144 @Callable(i)
143145 func w (input) = if ((i.originCaller != caller))
144146 then throw("!")
145147 else if ((i.caller != pool))
146148 then throw("!")
147149 else {
148150 let a = split_4C(input, ";")
149151 if ((a == a))
150152 then {
151153 let s = $Tuple2(i.payments[0].amount, getAssetString(i.payments[0].assetId))
152154 if ((s == s))
153155 then {
154156 let p = i.payments[0].amount
155157 if ((p == p))
156158 then {
157159 let bal = getBalance(i.payments[0].assetId)
158160 if ((bal == bal))
159161 then {
160162 let z = {
161163 let $l = a
162164 let $s = size($l)
163165 let $acc0 = s
164166 func $f0_1 ($a,$i) = if (($i >= $s))
165167 then $a
166168 else b($a, $l[$i])
167169
168170 func $f0_2 ($a,$i) = if (($i >= $s))
169171 then $a
170172 else throw("List size exceeds 10")
171173
172174 $f0_2($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)
173175 }
174176 if ((z == z))
175177 then {
176178 let nbal = (getBalance(i.payments[0].assetId) - bal)
177179 if ((nbal == nbal))
178180 then if ((nbal > 0))
179181 then [ScriptTransfer(admin, nbal, i.payments[0].assetId), ScriptTransfer(pool, p, i.payments[0].assetId)]
180182 else throw(toString(nbal))
181183 else throw("Strict value is not equal to itself.")
182184 }
183185 else throw("Strict value is not equal to itself.")
184186 }
185187 else throw("Strict value is not equal to itself.")
186188 }
187189 else throw("Strict value is not equal to itself.")
188190 }
189191 else throw("Strict value is not equal to itself.")
190192 }
191193 else throw("Strict value is not equal to itself.")
192194 }
193195
194196
195197 @Verifier(tx)
196198 func verify () = sigVerify_16Kb(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
197199

github/deemru/w8io/3ef1775 
40.46 ms