tx · 5E5vWgTygqayjA4seh67fAZjgALCAsoC1L67AyNhXg12

3P6H3u6gEvsXtBxsE2ynEN4Ja8DoShNe9DX:  -0.01000000 Waves

2023.04.14 04:59 [3599217] smart account 3P6H3u6gEvsXtBxsE2ynEN4Ja8DoShNe9DX > SELF 0.00000000 Waves

{ "type": 13, "id": "5E5vWgTygqayjA4seh67fAZjgALCAsoC1L67AyNhXg12", "fee": 1000000, "feeAssetId": null, "timestamp": 1681437613336, "version": 2, "chainId": 87, "sender": "3P6H3u6gEvsXtBxsE2ynEN4Ja8DoShNe9DX", "senderPublicKey": "CyibfafNisE7HoNKGG4vtGpEBW2suztudsFunYKtJRiZ", "proofs": [ "4B5vaDFk8nAiLrx8qHzi7kuedQmc2rZxWt8XPDxLCt9WDn3ZmV1mu6TixbvEzyBitqXgT7CyeV8Qq3mGzwoKDcyo" ], "script": "base64:BgIQCAISABIECgIIARIECgIIAQsABlNjYWxlOACAwtcvAQ10cnlHZXRJbnRlZ2VyAQNrZXkEByRtYXRjaDAJAJoIAgUEdGhpcwUDa2V5AwkAAQIFByRtYXRjaDACA0ludAQBYgUHJG1hdGNoMAUBYgAAAQ10cnlHZXRCb29sZWFuAQNrZXkEByRtYXRjaDAJAJsIAgUEdGhpcwUDa2V5AwkAAQIFByRtYXRjaDACB0Jvb2xlYW4EAWIFByRtYXRjaDAFAWIHAQx0cnlHZXRTdHJpbmcBA2tleQQHJG1hdGNoMAkAnQgCBQR0aGlzBQNrZXkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFiBQckbWF0Y2gwBQFiAgABDHRyeUdldEJpbmFyeQEDa2V5BAckbWF0Y2gwCQCcCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAFiBQckbWF0Y2gwBQFiAQABDmdldEFzc2V0U3RyaW5nAQdhc3NldElkBAckbWF0Y2gwBQdhc3NldElkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAWIFByRtYXRjaDAJANgEAQUBYgIFV0FWRVMBDWdldEFzc2V0Qnl0ZXMBCmFzc2V0SWRTdHIDCQAAAgUKYXNzZXRJZFN0cgIFV0FWRVMFBHVuaXQJANkEAQUKYXNzZXRJZFN0cgEKZ2V0QmFsYW5jZQEKYXNzZXRJZFN0cgMJAAACBQphc3NldElkU3RyAgVXQVZFUwgJAO8HAQUEdGhpcwlhdmFpbGFibGUJAPAHAgUEdGhpcwkA2QQBBQphc3NldElkU3RyAAZhc3NldHMJAMwIAgEghNp6sggDP07Ru8qO7ouTvMmC3Qtd+geWqNQj+agP/7kJAMwIAgEg8b90j2kCa66vzjuwb/Nd8MVKoTFsVrfc+ipKoeuRGkkFA25pbAAMYXNzZXREb21haW5zCQDMCAICClVTRFQtRVJDMjAJAMwIAgIKVVNEQy1FUkMyMAUDbmlsAANmZWUAoMIeAwFpARBwcm92aWRlTGlxdWlkaXR5AAQHYWRkcmVzcwkApQgBCAUBaQZjYWxsZXIEB2Fzc2V0SW4ICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQKYXNzZXRJblN0cgkBDmdldEFzc2V0U3RyaW5nAQUHYXNzZXRJbgQLYXNzZXRBbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BAxhc3NldEluSW5kZXgJAM8IAgUGYXNzZXRzBQdhc3NldEluAwkAAAIFDGFzc2V0SW5JbmRleAUEdW5pdAkAAgECGG5vbi12YWxpZCBhc3NldCBhdHRhY2hlZAMJAGcCAAAFC2Fzc2V0QW1vdW50CQACAQIZYXR0YWNoIG1vcmUgdGhhbiAwIHRva2VucwQNcHJldkxpcXVpZGl0eQkBDXRyeUdldEludGVnZXIBCQCsAgIFB2FkZHJlc3MCCV9zdXBwbGllZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQdhZGRyZXNzAglfc3VwcGxpZWQJAGQCBQ1wcmV2TGlxdWlkaXR5BQthc3NldEFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgIPZ2xvYmFsX3N1cHBsaWVkCQBkAgkBDXRyeUdldEludGVnZXIBAg9nbG9iYWxfc3VwcGxpZWQFC2Fzc2V0QW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFCmFzc2V0SW5TdHICCF9iYWxhbmNlCQBkAgkBDXRyeUdldEludGVnZXIBCQCsAgIFCmFzc2V0SW5TdHICCF9iYWxhbmNlBQthc3NldEFtb3VudAUDbmlsAWkBEXdpdGhkcmF3TGlxdWlkaXR5Aghhc3NldE91dAZhbW91bnQEB2FkZHJlc3MJAKUIAQgFAWkGY2FsbGVyBA1wcmV2TGlxdWlkaXR5CQENdHJ5R2V0SW50ZWdlcgEJAKwCAgUHYWRkcmVzcwIJX3N1cHBsaWVkBA1hc3NldE91dEJ5dGVzCQENZ2V0QXNzZXRCeXRlcwEFCGFzc2V0T3V0BA1hc3NldE91dEluZGV4CQDPCAIFBmFzc2V0cwUNYXNzZXRPdXRCeXRlcwMJAAACBQ1hc3NldE91dEluZGV4BQR1bml0CQACAQIZbm9uLXZhbGlkIGFzc2V0IHJlcXVlc3RlZAMJAGcCAAAFBmFtb3VudAkAAgECI29wZXJhdGlvbnMgYWJvdmUgMCB0b2tlbnMgc3VwcG9ydGVkAwkAZgIFBmFtb3VudAUNcHJldkxpcXVpZGl0eQkAAgECNXByb3ZpZGVkIGxpcXVpZGl0eSBpcyBzbWFsbGVyIHRoYW4gYW1vdW50IHRvIHdpdGhkcmF3CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB2FkZHJlc3MCCV9zdXBwbGllZAkAZQIFDXByZXZMaXF1aWRpdHkFBmFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgIPZ2xvYmFsX3N1cHBsaWVkCQBlAgkBDXRyeUdldEludGVnZXIBAg9nbG9iYWxfc3VwcGxpZWQFBmFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQhhc3NldE91dAIIX2JhbGFuY2UJAGUCCQENdHJ5R2V0SW50ZWdlcgEJAKwCAgUIYXNzZXRPdXQCCF9iYWxhbmNlBQZhbW91bnQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQUHYWRkcmVzcwUGYW1vdW50BQ1hc3NldE91dEJ5dGVzBQNuaWwBaQEEc3dhcAIIYXNzZXRPdXQMbWluVG9SZWNlaXZlBAdhc3NldEluCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQECmFzc2V0SW5TdHIJAQ5nZXRBc3NldFN0cmluZwEFB2Fzc2V0SW4EDWFzc2V0SW5BbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BAxhc3NldEluSW5kZXgJAM8IAgUGYXNzZXRzBQdhc3NldEluBA1hc3NldE91dEJ5dGVzCQENZ2V0QXNzZXRCeXRlcwEFCGFzc2V0T3V0BA5hc3NldE91dEFtb3VudAkAZQIFDWFzc2V0SW5BbW91bnQJAGsDBQ1hc3NldEluQW1vdW50CQBlAgUGU2NhbGU4BQNmZWUFBlNjYWxlOAMJAAACBQxhc3NldEluSW5kZXgFBHVuaXQJAAIBAhhub24tdmFsaWQgYXNzZXQgYXR0YWNoZWQDCQBnAgAABQ1hc3NldEluQW1vdW50CQACAQIZYXR0YWNoIG1vcmUgdGhhbiAwIHRva2VucwMJAGYCBQ5hc3NldE91dEFtb3VudAkBDXRyeUdldEludGVnZXIBCQCsAgIFCGFzc2V0T3V0AghfYmFsYW5jZQkAAgECGGNvbnRyYWN0IG91dCBvZiByZXNlcnZlcwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQhhc3NldE91dAIIX2JhbGFuY2UJAGUCCQENdHJ5R2V0SW50ZWdlcgEJAKwCAgUIYXNzZXRPdXQCCF9iYWxhbmNlBQ5hc3NldE91dEFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQphc3NldEluU3RyAghfYmFsYW5jZQkAZAIJAQ10cnlHZXRJbnRlZ2VyAQkArAICBQphc3NldEluU3RyAghfYmFsYW5jZQUNYXNzZXRJbkFtb3VudAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFDmFzc2V0T3V0QW1vdW50BQ1hc3NldE91dEJ5dGVzBQNuaWwBAnR4AQZ2ZXJpZnkACQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5coJxOA==", "height": 3599217, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: A3Zgr8N89cYbFjosZug1wvMERDbsQwEsz6e4Y3fpkkZZ Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 6 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let a = 100000000
5+
6+func b (c) = {
7+ let d = getInteger(this, c)
8+ if ($isInstanceOf(d, "Int"))
9+ then {
10+ let e = d
11+ e
12+ }
13+ else 0
14+ }
15+
16+
17+func f (c) = {
18+ let d = getBoolean(this, c)
19+ if ($isInstanceOf(d, "Boolean"))
20+ then {
21+ let e = d
22+ e
23+ }
24+ else false
25+ }
26+
27+
28+func g (c) = {
29+ let d = getString(this, c)
30+ if ($isInstanceOf(d, "String"))
31+ then {
32+ let e = d
33+ e
34+ }
35+ else ""
36+ }
37+
38+
39+func h (c) = {
40+ let d = getBinary(this, c)
41+ if ($isInstanceOf(d, "ByteVector"))
42+ then {
43+ let e = d
44+ e
45+ }
46+ else base58''
47+ }
48+
49+
50+func i (j) = {
51+ let d = j
52+ if ($isInstanceOf(d, "ByteVector"))
53+ then {
54+ let e = d
55+ toBase58String(e)
56+ }
57+ else "WAVES"
58+ }
59+
60+
61+func k (l) = if ((l == "WAVES"))
62+ then unit
63+ else fromBase58String(l)
64+
65+
66+func m (l) = if ((l == "WAVES"))
67+ then wavesBalance(this).available
68+ else assetBalance(this, fromBase58String(l))
69+
70+
71+let n = [base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi', base58'HGgabTqUS8WtVFUJzfmrTDMgEccJuZLBPhFgQFxvnsoW']
72+
73+let o = ["USDT-ERC20", "USDC-ERC20"]
74+
75+let p = 500000
76+
77+@Callable(q)
78+func provideLiquidity () = {
79+ let r = toString(q.caller)
80+ let s = q.payments[0].assetId
81+ let t = i(s)
82+ let u = q.payments[0].amount
83+ let v = indexOf(n, s)
84+ if ((v == unit))
85+ then throw("non-valid asset attached")
86+ else if ((0 >= u))
87+ then throw("attach more than 0 tokens")
88+ else {
89+ let w = b((r + "_supplied"))
90+[IntegerEntry((r + "_supplied"), (w + u)), IntegerEntry("global_supplied", (b("global_supplied") + u)), IntegerEntry((t + "_balance"), (b((t + "_balance")) + u))]
91+ }
92+ }
93+
94+
95+
96+@Callable(q)
97+func withdrawLiquidity (x,y) = {
98+ let r = toString(q.caller)
99+ let w = b((r + "_supplied"))
100+ let z = k(x)
101+ let A = indexOf(n, z)
102+ if ((A == unit))
103+ then throw("non-valid asset requested")
104+ else if ((0 >= y))
105+ then throw("operations above 0 tokens supported")
106+ else if ((y > w))
107+ then throw("provided liquidity is smaller than amount to withdraw")
108+ else [IntegerEntry((r + "_supplied"), (w - y)), IntegerEntry("global_supplied", (b("global_supplied") - y)), IntegerEntry((x + "_balance"), (b((x + "_balance")) - y)), ScriptTransfer(addressFromStringValue(r), y, z)]
109+ }
110+
111+
112+
113+@Callable(q)
114+func swap (x,B) = {
115+ let s = q.payments[0].assetId
116+ let t = i(s)
117+ let C = q.payments[0].amount
118+ let v = indexOf(n, s)
119+ let z = k(x)
120+ let D = (C - fraction(C, (a - p), a))
121+ if ((v == unit))
122+ then throw("non-valid asset attached")
123+ else if ((0 >= C))
124+ then throw("attach more than 0 tokens")
125+ else if ((D > b((x + "_balance"))))
126+ then throw("contract out of reserves")
127+ else [IntegerEntry((x + "_balance"), (b((x + "_balance")) - D)), IntegerEntry((t + "_balance"), (b((t + "_balance")) + C)), ScriptTransfer(q.caller, D, z)]
128+ }
129+
130+
131+@Verifier(E)
132+func F () = sigVerify(E.bodyBytes, E.proofs[0], E.senderPublicKey)
133+

github/deemru/w8io/0e76f2f 
28.88 ms