tx · Bg1vFVJi5E3nVBU2SWfywwZQQGd2Pfzahi3Ew8Tn5Z8d 3P52TtidVCVeSQiC38weUFGZWcP1r5VRw1B: -0.00300000 Waves 2023.11.30 17:27 [3932123] smart account 3P52TtidVCVeSQiC38weUFGZWcP1r5VRw1B > SELF 0.00000000 Waves
{ "type": 13, "id": "Bg1vFVJi5E3nVBU2SWfywwZQQGd2Pfzahi3Ew8Tn5Z8d", "fee": 300000, "feeAssetId": null, "timestamp": 1701354480076, "version": 2, "chainId": 87, "sender": "3P52TtidVCVeSQiC38weUFGZWcP1r5VRw1B", "senderPublicKey": "87q18YNQT35ZcKk6Q3aSFCAv4dvkkBf4iuzic7qHbikw", "proofs": [ "fvNY4qT75QrUGHZ7dgoT5cPaJjaoeQoQKCcJvWkXmHKne6BAHJxePudYxAH9xhAz63ZPYBrEpvqyxuJ6iTBdGPx" ], "script": "base64:BgIHCAISAwoBCAYABWFkbWluCQERQGV4dHJOYXRpdmUoMTA2MikBAiMzUE1ibnFpZmZyeDVOUkFzZ3VuNmJHZEU0VDRNOWd4V0xnZwABUgkBEUBleHRyTmF0aXZlKDEwNjIpAQIjM1A2OHpOaXVmc3UxdmlacHUxYVkzY2RhaFJSS2N2VjVOOTMBDWdldEFzc2V0Qnl0ZXMBCmFzc2V0SWRTdHIDCQAAAgUKYXNzZXRJZFN0cgIFV0FWRVMFBHVuaXQJANkEAQUKYXNzZXRJZFN0cgEKZ2V0QmFsYW5jZQEHYXNzZXRJZAQHJG1hdGNoMAUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgRVbml0BAF4BQckbWF0Y2gwCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQkA8AcCBQR0aGlzCQEFdmFsdWUBBQdhc3NldElkAQ5nZXRBc3NldFN0cmluZwEHYXNzZXRJZAQHJG1hdGNoMAUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAFiBQckbWF0Y2gwCQDYBAEFAWICBVdBVkVTAQFiAgFjAWQEBHR5cGUJALwJAgUBZAIBOgQBdAkAkQMCBQR0eXBlAAAEA2FkZAkAvAkCCQCRAwIFBHR5cGUAAQIBLAQGYW1vdW50CAUBYwJfMQMJAAACBQZhbW91bnQFBmFtb3VudAQHYXNzZXRJZAgFAWMCXzIDCQAAAgUHYXNzZXRJZAUHYXNzZXRJZAQDYmFsCQEKZ2V0QmFsYW5jZQEJAQ1nZXRBc3NldEJ5dGVzAQkAkQMCBQNhZGQAAQMJAAACBQNiYWwFA2JhbAQFc3dhcDEDCQAAAgUBdAIBMAkA/AcECQEHQWRkcmVzcwEJANkEAQkAkQMCBQNhZGQAAAIIZXhjaGFuZ2UJAMwIAgABBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQ1nZXRBc3NldEJ5dGVzAQUHYXNzZXRJZAUGYW1vdW50BQNuaWwDCQAAAgUBdAIBMQkA/AcEBQFSAgRzd2FwCQDMCAIAAQkAzAgCCQCRAwIFA2FkZAABCQDMCAIFBHRoaXMFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkBDWdldEFzc2V0Qnl0ZXMBBQdhc3NldElkBQZhbW91bnQFA25pbAMJAAACBQF0AgEyCQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUDYWRkAAACBHN3YXAJAMwIAgkAkQMCBQNhZGQAAQkAzAgCAAEFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkBDWdldEFzc2V0Qnl0ZXMBBQdhc3NldElkBQZhbW91bnQFA25pbAUDbmlsAwkAAAIFBXN3YXAxBQVzd2FwMQQEbmJhbAkAZQIJAQpnZXRCYWxhbmNlAQkBDWdldEFzc2V0Qnl0ZXMBCQCRAwIFA2FkZAABBQNiYWwDCQAAAgUEbmJhbAUEbmJhbAkAlAoCBQRuYmFsCQCRAwIFA2FkZAABCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQFpAQRzd2FwAQVpbnB1dAMJAQIhPQIIBQFpBmNhbGxlcgUFYWRtaW4JAAIBAgEhBAFhCQC8CQIFBWlucHV0AgE7BAFzCQCUCgIICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50CQEOZ2V0QXNzZXRTdHJpbmcBCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQEAXAICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BANiYWwJAQpnZXRCYWxhbmNlAQgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkAwkAAAIFA2JhbAUDYmFsBAF6CgACJGwFAWEKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQFzCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQFiAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKBARuYmFsCQBlAgkBCmdldEJhbGFuY2UBCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFA2JhbAMJAAACBQRuYmFsBQRuYmFsAwkAZgIFBG5iYWwAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIJAGQCBQFwBQRuYmFsCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFA25pbAkAAgEJAKQDAQUEbmJhbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECdHgBBnZlcmlmeQAJAMUTAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXk2teXE", "height": 3932123, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: DLycDuC2b2XYBNNH5PuXra29Ftafe4kdUeYewp8ihteM Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 6 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let admin = addressFromStringValue("3PMbnqiffrx5NRAsgun6bGdE4T4M9gxWLgg") | |
5 | + | ||
6 | + | let R = addressFromStringValue("3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93") | |
7 | + | ||
8 | + | func getAssetBytes (assetIdStr) = if ((assetIdStr == "WAVES")) | |
9 | + | then unit | |
10 | + | else fromBase58String(assetIdStr) | |
11 | + | ||
12 | + | ||
13 | + | func getBalance (assetId) = match assetId { | |
14 | + | case x: Unit => | |
15 | + | wavesBalance(this).available | |
16 | + | case _ => | |
17 | + | assetBalance(this, value(assetId)) | |
18 | + | } | |
19 | + | ||
20 | + | ||
21 | + | func getAssetString (assetId) = match assetId { | |
22 | + | case b: ByteVector => | |
23 | + | toBase58String(b) | |
24 | + | case _ => | |
25 | + | "WAVES" | |
26 | + | } | |
27 | + | ||
28 | + | ||
29 | + | func b (c,d) = { | |
30 | + | let type = split_4C(d, ":") | |
31 | + | let t = type[0] | |
32 | + | let add = split_4C(type[1], ",") | |
33 | + | let amount = c._1 | |
34 | + | if ((amount == amount)) | |
35 | + | then { | |
36 | + | let assetId = c._2 | |
37 | + | if ((assetId == assetId)) | |
38 | + | then { | |
39 | + | let bal = getBalance(getAssetBytes(add[1])) | |
40 | + | if ((bal == bal)) | |
41 | + | then { | |
42 | + | let swap1 = if ((t == "0")) | |
43 | + | then invoke(Address(fromBase58String(add[0])), "exchange", [1], [AttachedPayment(getAssetBytes(assetId), amount)]) | |
44 | + | else if ((t == "1")) | |
45 | + | then invoke(R, "swap", [1, add[1], this], [AttachedPayment(getAssetBytes(assetId), amount)]) | |
46 | + | else if ((t == "2")) | |
47 | + | then invoke(addressFromStringValue(add[0]), "swap", [add[1], 1], [AttachedPayment(getAssetBytes(assetId), amount)]) | |
48 | + | else nil | |
49 | + | if ((swap1 == swap1)) | |
50 | + | then { | |
51 | + | let nbal = (getBalance(getAssetBytes(add[1])) - bal) | |
52 | + | if ((nbal == nbal)) | |
53 | + | then $Tuple2(nbal, add[1]) | |
54 | + | else throw("Strict value is not equal to itself.") | |
55 | + | } | |
56 | + | else throw("Strict value is not equal to itself.") | |
57 | + | } | |
58 | + | else throw("Strict value is not equal to itself.") | |
59 | + | } | |
60 | + | else throw("Strict value is not equal to itself.") | |
61 | + | } | |
62 | + | else throw("Strict value is not equal to itself.") | |
63 | + | } | |
64 | + | ||
65 | + | ||
66 | + | @Callable(i) | |
67 | + | func swap (input) = if ((i.caller != admin)) | |
68 | + | then throw("!") | |
69 | + | else { | |
70 | + | let a = split_4C(input, ";") | |
71 | + | let s = $Tuple2(i.payments[0].amount, getAssetString(i.payments[0].assetId)) | |
72 | + | let p = i.payments[0].amount | |
73 | + | let bal = getBalance(i.payments[0].assetId) | |
74 | + | if ((bal == bal)) | |
75 | + | then { | |
76 | + | let z = { | |
77 | + | let $l = a | |
78 | + | let $s = size($l) | |
79 | + | let $acc0 = s | |
80 | + | func $f0_1 ($a,$i) = if (($i >= $s)) | |
81 | + | then $a | |
82 | + | else b($a, $l[$i]) | |
83 | + | ||
84 | + | func $f0_2 ($a,$i) = if (($i >= $s)) | |
85 | + | then $a | |
86 | + | else throw("List size exceeds 10") | |
87 | + | ||
88 | + | $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) | |
89 | + | } | |
90 | + | let nbal = (getBalance(i.payments[0].assetId) - bal) | |
91 | + | if ((nbal == nbal)) | |
92 | + | then if ((nbal > 0)) | |
93 | + | then [ScriptTransfer(i.caller, (p + nbal), i.payments[0].assetId)] | |
94 | + | else throw(toString(nbal)) | |
95 | + | else throw("Strict value is not equal to itself.") | |
96 | + | } | |
97 | + | else throw("Strict value is not equal to itself.") | |
98 | + | } | |
99 | + | ||
100 | + | ||
101 | + | @Verifier(tx) | |
102 | + | func verify () = sigVerify_16Kb(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
103 | + |
github/deemru/w8io/3ef1775 65.35 ms ◑