tx · GdXe6VdvU4ibEwf6gB4mnT77upe1tJLuy58odhjkttYt

3P52TtidVCVeSQiC38weUFGZWcP1r5VRw1B:  -0.00500000 Waves

2023.12.08 16:26 [3943625] smart account 3P52TtidVCVeSQiC38weUFGZWcP1r5VRw1B > SELF 0.00000000 Waves

{ "type": 13, "id": "GdXe6VdvU4ibEwf6gB4mnT77upe1tJLuy58odhjkttYt", "fee": 500000, "feeAssetId": null, "timestamp": 1702042017523, "version": 2, "chainId": 87, "sender": "3P52TtidVCVeSQiC38weUFGZWcP1r5VRw1B", "senderPublicKey": "87q18YNQT35ZcKk6Q3aSFCAv4dvkkBf4iuzic7qHbikw", "proofs": [ "LF6L46ucENia5jpHXoHjGjdazhACgHoDGQoANDmdQ32rMNsWEriJwQbVMScLUyKb6SeubaCbo5pZXC7YNKP8mkf" ], "script": "base64:BgIMCAISAwoBCBIDCgEICAAGY2FsbGVyCQERQGV4dHJOYXRpdmUoMTA2MikBAiMzUE1ibnFpZmZyeDVOUkFzZ3VuNmJHZEU0VDRNOWd4V0xnZwAFYWRtaW4JARFAZXh0ck5hdGl2ZSgxMDYyKQECIzNQOU1VcmJlUWtlZjVkS3BIdzdRTjdqdjd5NHE3WFZVaTZKAARwb29sCQERQGV4dHJOYXRpdmUoMTA2MikBAiMzUERCck5QR1JHUW03d2J4c2o3Z1BzZk1QVHhUNWVQMU1VZwABUgkBEUBleHRyTmF0aXZlKDEwNjIpAQIjM1A2OHpOaXVmc3UxdmlacHUxYVkzY2RhaFJSS2N2VjVOOTMBDWdldEFzc2V0Qnl0ZXMBCmFzc2V0SWRTdHIDCQAAAgUKYXNzZXRJZFN0cgIFV0FWRVMFBHVuaXQJANkEAQUKYXNzZXRJZFN0cgEKZ2V0QmFsYW5jZQEHYXNzZXRJZAQHJG1hdGNoMAUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgRVbml0BAF4BQckbWF0Y2gwCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQkA8AcCBQR0aGlzCQEFdmFsdWUBBQdhc3NldElkAQ5nZXRBc3NldFN0cmluZwEHYXNzZXRJZAQHJG1hdGNoMAUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAFiBQckbWF0Y2gwCQDYBAEFAWICBVdBVkVTAQFiAgFjAWQEBHR5cGUJALwJAgUBZAIBOgMJAAACBQR0eXBlBQR0eXBlBAF0CQCRAwIFBHR5cGUAAAMJAAACBQF0BQF0BANhZGQJALwJAgkAkQMCBQR0eXBlAAECASwDCQAAAgUDYWRkBQNhZGQEBmFtb3VudAgFAWMCXzEDCQAAAgUGYW1vdW50BQZhbW91bnQEB2Fzc2V0SWQIBQFjAl8yAwkAAAIFB2Fzc2V0SWQFB2Fzc2V0SWQEA2JhbAkBCmdldEJhbGFuY2UBCQENZ2V0QXNzZXRCeXRlcwEJAJEDAgUDYWRkAAEDCQAAAgUDYmFsBQNiYWwEBXN3YXAxAwkAAAIFAXQCATAJAPwHBAkBB0FkZHJlc3MBCQDZBAEJAJEDAgUDYWRkAAACCGV4Y2hhbmdlCQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQENZ2V0QXNzZXRCeXRlcwEFB2Fzc2V0SWQFBmFtb3VudAUDbmlsAwkAAAIFAXQCATEJAPwHBAUBUgIEc3dhcAkAzAgCAAEJAMwIAgkAkQMCBQNhZGQAAQkAzAgCCQClCAEFBHRoaXMFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkBDWdldEFzc2V0Qnl0ZXMBBQdhc3NldElkBQZhbW91bnQFA25pbAMJAAACBQF0AgEyCQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUDYWRkAAACBHN3YXAJAMwIAgkAkQMCBQNhZGQAAQkAzAgCAAEFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkBDWdldEFzc2V0Qnl0ZXMBBQdhc3NldElkBQZhbW91bnQFA25pbAMJAAACBQF0AgEzCQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUDYWRkAAACGVN3YXBXQVZFU1RvQXNzZXRQYWlyRW50cnkJAMwIAgkAkQMCBQNhZGQAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQENZ2V0QXNzZXRCeXRlcwEFB2Fzc2V0SWQFBmFtb3VudAUDbmlsAwkAAAIFAXQCATQJAPwHBAkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQNhZGQAAAIZU3dhcEFzc2V0VG9XQVZFU1BhaXJFbnRyeQkAzAgCBQdhc3NldElkBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQ1nZXRBc3NldEJ5dGVzAQUHYXNzZXRJZAUGYW1vdW50BQNuaWwDCQAAAgUBdAIBNQkA/AcECQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFA2FkZAAAAhdTd2FwWFROVG9Bc3NldFBhaXJFbnRyeQkAzAgCCQCRAwIFA2FkZAABBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQ1nZXRBc3NldEJ5dGVzAQUHYXNzZXRJZAUGYW1vdW50BQNuaWwDCQAAAgUBdAIBNgkA/AcECQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFA2FkZAAAAhdTd2FwQXNzZXRUb1hUTlBhaXJFbnRyeQkAzAgCBQdhc3NldElkBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQ1nZXRBc3NldEJ5dGVzAQUHYXNzZXRJZAUGYW1vdW50BQNuaWwFA25pbAMJAAACBQVzd2FwMQUFc3dhcDEEBG5iYWwJAGUCCQEKZ2V0QmFsYW5jZQEJAQ1nZXRBc3NldEJ5dGVzAQkAkQMCBQNhZGQAAQUDYmFsAwkAAAIFBG5iYWwFBG5iYWwJAJQKAgUEbmJhbAkAkQMCBQNhZGQAAQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgIBaQEEc3dhcAEFaW5wdXQDCQECIT0CCAUBaQZjYWxsZXIFBmNhbGxlcgkAAgECASEEAWEJALwJAgUFaW5wdXQCATsDCQAAAgUBYQUBYQQBcwkAlAoCCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAkBDmdldEFzc2V0U3RyaW5nAQgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkAwkAAAIFAXMFAXMEAXAICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50AwkAAAIFAXAFAXAEA2JhbAkBCmdldEJhbGFuY2UBCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQDCQAAAgUDYmFsBQNiYWwEAXoKAAIkbAUBYQoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFAXMKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBAWICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoDCQAAAgUBegUBegQEbmJhbAkAZQIJAQpnZXRCYWxhbmNlAQgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQNiYWwDCQAAAgUEbmJhbAUEbmJhbAMJAGYCBQRuYmFsAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyCQBkAgUBcAUEbmJhbAgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQNuaWwJAAIBCQCkAwEFBG5iYWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEBdwEFaW5wdXQDCQECIT0CCAUBaQxvcmlnaW5DYWxsZXIFBmNhbGxlcgkAAgECASEDCQECIT0CCAUBaQZjYWxsZXIFBHBvb2wJAAIBAgEhBAFhCQC8CQIFBWlucHV0AgE7AwkAAAIFAWEFAWEEAXMJAJQKAggJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQJAQ5nZXRBc3NldFN0cmluZwEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAMJAAACBQFzBQFzBAFwCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAMJAAACBQFwBQFwBANiYWwJAQpnZXRCYWxhbmNlAQgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkAwkAAAIFA2JhbAUDYmFsBAF6CgACJGwFAWEKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQFzCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQFiAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAwkAAAIFAXoFAXoEBG5iYWwJAGUCCQEKZ2V0QmFsYW5jZQEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUDYmFsAwkAAAIFBG5iYWwFBG5iYWwDCQBmAgUEbmJhbAAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWFkbWluBQRuYmFsCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUEcG9vbAUBcAgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQNuaWwJAAIBCQCkAwEFBG5iYWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAnR4AQZ2ZXJpZnkACQDFEwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5w7nBaQ==", "height": 3943625, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5ZrGLhNJemdPTtYQyjspanPztepk46cQJwbJ1ZinJFi9 Next: 5RhD3AGa8t9XduusSfjubRd6bcA718VVa4i1zLY7sWoi Diff:
OldNewDifferences
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)])
62- else nil
62+ else if ((t == "5"))
63+ then invoke(addressFromStringValue(add[0]), "SwapXTNToAssetPairEntry", [add[1]], [AttachedPayment(getAssetBytes(assetId), amount)])
64+ else if ((t == "6"))
65+ then invoke(addressFromStringValue(add[0]), "SwapAssetToXTNPairEntry", [assetId], [AttachedPayment(getAssetBytes(assetId), amount)])
66+ else nil
6367 if ((swap1 == swap1))
6468 then {
6569 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)])
62- else nil
62+ else if ((t == "5"))
63+ then invoke(addressFromStringValue(add[0]), "SwapXTNToAssetPairEntry", [add[1]], [AttachedPayment(getAssetBytes(assetId), amount)])
64+ else if ((t == "6"))
65+ then invoke(addressFromStringValue(add[0]), "SwapAssetToXTNPairEntry", [assetId], [AttachedPayment(getAssetBytes(assetId), amount)])
66+ else nil
6367 if ((swap1 == swap1))
6468 then {
6569 let nbal = (getBalance(getAssetBytes(add[1])) - bal)
6670 if ((nbal == nbal))
6771 then $Tuple2(nbal, add[1])
6872 else throw("Strict value is not equal to itself.")
6973 }
7074 else throw("Strict value is not equal to itself.")
7175 }
7276 else throw("Strict value is not equal to itself.")
7377 }
7478 else throw("Strict value is not equal to itself.")
7579 }
7680 else throw("Strict value is not equal to itself.")
7781 }
7882 else throw("Strict value is not equal to itself.")
7983 }
8084 else throw("Strict value is not equal to itself.")
8185 }
8286 else throw("Strict value is not equal to itself.")
8387 }
8488
8589
8690 @Callable(i)
8791 func swap (input) = if ((i.caller != caller))
8892 then throw("!")
8993 else {
9094 let a = split_4C(input, ";")
9195 if ((a == a))
9296 then {
9397 let s = $Tuple2(i.payments[0].amount, getAssetString(i.payments[0].assetId))
9498 if ((s == s))
9599 then {
96100 let p = i.payments[0].amount
97101 if ((p == p))
98102 then {
99103 let bal = getBalance(i.payments[0].assetId)
100104 if ((bal == bal))
101105 then {
102106 let z = {
103107 let $l = a
104108 let $s = size($l)
105109 let $acc0 = s
106110 func $f0_1 ($a,$i) = if (($i >= $s))
107111 then $a
108112 else b($a, $l[$i])
109113
110114 func $f0_2 ($a,$i) = if (($i >= $s))
111115 then $a
112116 else throw("List size exceeds 10")
113117
114118 $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)
115119 }
116120 if ((z == z))
117121 then {
118122 let nbal = (getBalance(i.payments[0].assetId) - bal)
119123 if ((nbal == nbal))
120124 then if ((nbal > 0))
121125 then [ScriptTransfer(i.caller, (p + nbal), i.payments[0].assetId)]
122126 else throw(toString(nbal))
123127 else throw("Strict value is not equal to itself.")
124128 }
125129 else throw("Strict value is not equal to itself.")
126130 }
127131 else throw("Strict value is not equal to itself.")
128132 }
129133 else throw("Strict value is not equal to itself.")
130134 }
131135 else throw("Strict value is not equal to itself.")
132136 }
133137 else throw("Strict value is not equal to itself.")
134138 }
135139
136140
137141
138142 @Callable(i)
139143 func w (input) = if ((i.originCaller != caller))
140144 then throw("!")
141145 else if ((i.caller != pool))
142146 then throw("!")
143147 else {
144148 let a = split_4C(input, ";")
145149 if ((a == a))
146150 then {
147151 let s = $Tuple2(i.payments[0].amount, getAssetString(i.payments[0].assetId))
148152 if ((s == s))
149153 then {
150154 let p = i.payments[0].amount
151155 if ((p == p))
152156 then {
153157 let bal = getBalance(i.payments[0].assetId)
154158 if ((bal == bal))
155159 then {
156160 let z = {
157161 let $l = a
158162 let $s = size($l)
159163 let $acc0 = s
160164 func $f0_1 ($a,$i) = if (($i >= $s))
161165 then $a
162166 else b($a, $l[$i])
163167
164168 func $f0_2 ($a,$i) = if (($i >= $s))
165169 then $a
166170 else throw("List size exceeds 10")
167171
168172 $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)
169173 }
170174 if ((z == z))
171175 then {
172176 let nbal = (getBalance(i.payments[0].assetId) - bal)
173177 if ((nbal == nbal))
174178 then if ((nbal > 0))
175179 then [ScriptTransfer(admin, nbal, i.payments[0].assetId), ScriptTransfer(pool, p, i.payments[0].assetId)]
176180 else throw(toString(nbal))
177181 else throw("Strict value is not equal to itself.")
178182 }
179183 else throw("Strict value is not equal to itself.")
180184 }
181185 else throw("Strict value is not equal to itself.")
182186 }
183187 else throw("Strict value is not equal to itself.")
184188 }
185189 else throw("Strict value is not equal to itself.")
186190 }
187191 else throw("Strict value is not equal to itself.")
188192 }
189193
190194
191195 @Verifier(tx)
192196 func verify () = sigVerify_16Kb(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
193197

github/deemru/w8io/3ef1775 
30.51 ms