tx · AEWQDPGy8gZPtmCjHCTbEmw7MYrNENUFpeUekH5LXinY 3MxiR4vDPzVeaEPgznfS4zi4uLd2nnQuGy9: -0.01100000 Waves 2023.10.06 11:55 [2786549] smart account 3MxiR4vDPzVeaEPgznfS4zi4uLd2nnQuGy9 > SELF 0.00000000 Waves
{ "type": 13, "id": "AEWQDPGy8gZPtmCjHCTbEmw7MYrNENUFpeUekH5LXinY", "fee": 1100000, "feeAssetId": null, "timestamp": 1696582534537, "version": 2, "chainId": 84, "sender": "3MxiR4vDPzVeaEPgznfS4zi4uLd2nnQuGy9", "senderPublicKey": "4AVkL2DQJ8sngCNyArYueNuPS7cvygnakPJhU65LfPfu", "proofs": [ "5PpZtTENAhjhuhpS8mDdNq83cYNoyE9aA1DFEUwT3XYUYqwGzPMBSzhiWBBduGbtxipvTcxd1TyYcrfLw1pG1ADv", "4pkhQrynym59PJFdFrABjVnyBqYx2H7VqwJZKyYrHVXq18cT4dSatokG2t8dek1rE4BusCD39KYShbGV76aaWUre" ], "script": "base64:BgIRCAISAwoBGBIDCgEYEgMKARgcAA5BWExZX01BSU5fQUREUgkBB0FkZHJlc3MBARoBVEdh0UpNzn/72+6l9L3Wwi2aSOpC0rlhmwAMQVhMWV9GQVJNSU5HCQEHQWRkcmVzcwEBGgFUiFrCGKZVQmFa0TmuSd5FGDc6uNWQtIjpAA5BWExZX1RPS0VOT01JQwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFDEFYTFlfRkFSTUlORwIRdG9rZW5vbWljQ29udHJhY3QCGENhbid0IGdldCB0b2tlbm9taWMgYWRkcgANQVhMWV9URUFNX0JPWAkBB0FkZHJlc3MBARoBVOklXEf1z5bkgzXbUQsFjOvwGd12KKCp+gAMQVhMWV9TVEFLSU5HCQEHQWRkcmVzcwEBGgFUoahv7LNLfrTJXgHTjP0PfUhduUwxjCRLAAdTRl9QT09MAgJTRgAHV1hfUE9PTAICV1gAFEFNT1VOVF9XQVZFU19GT1JfRkVFAIDC1y8AD1BFUkNFTlRfVE9fVEVBTQAyAAlrQXhseVBvb2wCCGF4bHlQb29sAAxrQVhMWVRva2VuSWQCC2F4bHlUb2tlbklkAAprU2hhcmVQb29sAgxfcG9vbFNoYXJlSWQABWtQb29sAgVwb29sXwAJa0FkbWluMVBLAhVncm91cDFfYWRtaW4xX3B1Yl9rZXkACWtBZG1pbjJQSwIVZ3JvdXAxX2FkbWluMl9wdWJfa2V5AAlrQWRtaW4zUEsCFWdyb3VwMV9hZG1pbjNfcHViX2tleQAPa09wZXJhdG9yQ2FsbFBLAhJhZG1pbl9jYWxsX3B1Yl9rZXkACGFkbWluMVBLCQDZBAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQ5BWExZX01BSU5fQUREUgUJa0FkbWluMVBLAhJDYW4ndCBnZXQgYWRtaW4xUEsACGFkbWluMlBLCQDZBAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQ5BWExZX01BSU5fQUREUgUJa0FkbWluMlBLAhJDYW4ndCBnZXQgYWRtaW4yUEsACGFkbWluM1BLCQDZBAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQ5BWExZX01BSU5fQUREUgUJa0FkbWluM1BLAhJDYW4ndCBnZXQgYWRtaW4zUEsACm9wZXJhdG9yUEsJANkEAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFDkFYTFlfTUFJTl9BRERSBQ9rT3BlcmF0b3JDYWxsUEsCFENhbid0IGdldCBvcGVyYXRvclBLAAZheGx5SWQJANkEAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFDkFYTFlfVE9LRU5PTUlDBQxrQVhMWVRva2VuSWQCF0Nhbid0IGdldCBheGx5IHRva2VuIGlkAAhheGx5UG9vbAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQxBWExZX0ZBUk1JTkcFCWtBeGx5UG9vbAIWQ2FuJ3QgZ2V0IGF4bHlQb29sIGtleQITQ2FuJ3QgZ2V0IGF4bHkgcG9vbAEPdW5rbm93blBvb2xUeXBlAAkAAgECD1dyb25nIHBvb2wgdHlwZQEKaXNTZWxmQ2FsbAEBaQMJAAACCAUBaQZjYWxsZXIFBHRoaXMFBHVuaXQJAAIBAitPbmx5IGNvbnRyYWN0IGl0c2VsZiBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uAQlsaXN0VG9JbnQCAWEEaXRlbQkAzQgCBQFhCQENcGFyc2VJbnRWYWx1ZQEFBGl0ZW0BEGRpcmVjdFN3b3BmaUNQTU0BBXJBcmdzBARkQXBwCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFBXJBcmdzAAEEA3BtdAQEcG10UAkAtQkCCQCRAwIFBXJBcmdzAAICAXwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJANkEAQkAkQMCBQRwbXRQAAAJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQRwbXRQAAEFA25pbAQLbWluVG9SZWNpdmUJAJEDAgUFckFyZ3MAAwkA/AcEBQRkQXBwAgxjYWxsRnVuY3Rpb24JAMwIAgIIZXhjaGFuZ2UJAMwIAgkAzAgCBQttaW5Ub1JlY2l2ZQUDbmlsBQNuaWwFA3BtdAETZGlyZWN0Um91dGluZ1N3b3BmaQEFckFyZ3MEBGRBcHAJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUFckFyZ3MAAQQDcG10BARw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a2VucyB0byBhaXJkcm9wBANpbnYJAPwHBAUIYXhseVBvb2wCDGNhbGxGdW5jdGlvbgkAzAgCAghleGNoYW5nZQkAzAgCCQDMCAICATAFA25pbAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQR1bml0BQl0b1N0YWtpbmcFA25pbAMJAAACBQNpbnYFA2ludgQLYXhseUJhbGFuY2UJAPAHAgUEdGhpcwUGYXhseUlkAwkAAAIFC2F4bHlCYWxhbmNlBQtheGx5QmFsYW5jZQQEaW52QQkA/AcEBQxBWExZX1NUQUtJTkcCB2FpcmRyb3AFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUGYXhseUlkBQtheGx5QmFsYW5jZQUDbmlsAwkAAAIFBGludkEFBGludkEJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUNQVhMWV9URUFNX0JPWAUGdG9UZWFtBQR1bml0BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAnR4AQZ2ZXJpZnkABAckbWF0Y2gwBQJ0eAMJAAECBQckbWF0Y2gwAhdJbnZva2VTY3JpcHRUcmFuc2FjdGlvbgQDaW52BQckbWF0Y2gwBAppc1JpZ2h0RmVlAwkAAAIIBQNpbnYDZmVlAKD3NgkAAAIIBQNpbnYKZmVlQXNzZXRJZAUEdW5pdAcECmlzRXhMcENhbGwJAAACCAUDaW52CGZ1bmN0aW9uAgtleGNoYW5nZUxwcwQOaXNFeFRva2Vuc0NhbGwJAAACCAUDaW52CGZ1bmN0aW9uAg5leGNoYW5nZVRva2VucwQQaXNBaXJkcm9wU3Rha2luZwkAAAIIBQNpbnYIZnVuY3Rpb24CDmFpcmRyb3BTdGFraW5nBBJhZG1pblB1YktleTFTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQhhZG1pbjFQSwABAAAEEmFkbWluUHViS2V5MlNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFCGFkbWluMlBLAAEAAAQSYWRtaW5QdWJLZXkzU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUIYWRtaW4zUEsAAQAABBVhZG1pblB1YktleUNhbGxTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQpvcGVyYXRvclBLAAEAAAQQc2lnbmVkQnlPbmVBZG1pbgkAZwIJAGQCCQBkAgkAZAIFEmFkbWluUHViS2V5MVNpZ25lZAUSYWRtaW5QdWJLZXkyU2lnbmVkBRJhZG1pblB1YktleTNTaWduZWQFFWFkbWluUHViS2V5Q2FsbFNpZ25lZAABAwMFCmlzUmlnaHRGZWUDAwUKaXNFeExwQ2FsbAYFDmlzRXhUb2tlbnNDYWxsBgUQaXNBaXJkcm9wU3Rha2luZwcFEHNpZ25lZEJ5T25lQWRtaW4HBBJhZG1pblB1YktleTFTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQhhZG1pbjFQSwABAAAEEmFkbWluUHViS2V5MlNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAEFCGFkbWluMlBLAAEAAAQSYWRtaW5QdWJLZXkzU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAgUIYWRtaW4zUEsAAQAACQBnAgkAZAIJAGQCBRJhZG1pblB1YktleTFTaWduZWQFEmFkbWluUHViS2V5MlNpZ25lZAUSYWRtaW5QdWJLZXkzU2lnbmVkAAIvvm2U", "height": 2786549, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: C4XZSBFndDbybXHs9EzPDfkXAvhrG7sWnKHANTw58CxQ Next: EmgAvuhRknuiKRvjrYgSmCVBFbk8Uju4iHUtrqH1EKUL Diff:
Old | New | Differences | |
---|---|---|---|
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = Address(base58'3MvRWw2FPEimFCTGtK7qY9uAJbM7XJ4ZfJS') | |
5 | 5 | ||
6 | - | let b = | |
6 | + | let b = Address(base58'3N2M4PztorHwrfENp7D6LhYGgGodjiD1fjn') | |
7 | 7 | ||
8 | - | let c = " | |
8 | + | let c = addressFromStringValue(valueOrErrorMessage(getString(b, "tokenomicContract"), "Can't get tokenomic addr")) | |
9 | 9 | ||
10 | - | let d = | |
10 | + | let d = Address(base58'3NBAqyU7HpCjXtX7ymiEGiUkrw7qe9bSdxm') | |
11 | 11 | ||
12 | - | let e = | |
12 | + | let e = Address(base58'3N4erM2YbPHzpzNT31KQbgHxQoRdiJdFFTY') | |
13 | 13 | ||
14 | - | let f = " | |
14 | + | let f = "SF" | |
15 | 15 | ||
16 | - | let g = " | |
16 | + | let g = "WX" | |
17 | 17 | ||
18 | - | let h = | |
18 | + | let h = 100000000 | |
19 | 19 | ||
20 | - | let i = | |
20 | + | let i = 50 | |
21 | 21 | ||
22 | - | let j = | |
22 | + | let j = "axlyPool" | |
23 | 23 | ||
24 | - | let k = | |
24 | + | let k = "axlyTokenId" | |
25 | 25 | ||
26 | - | let l = | |
26 | + | let l = "_poolShareId" | |
27 | 27 | ||
28 | - | let m = | |
28 | + | let m = "pool_" | |
29 | 29 | ||
30 | - | func n () = throw("Wrong pool type") | |
30 | + | let n = "group1_admin1_pub_key" | |
31 | + | ||
32 | + | let o = "group1_admin2_pub_key" | |
33 | + | ||
34 | + | let p = "group1_admin3_pub_key" | |
35 | + | ||
36 | + | let q = "admin_call_pub_key" | |
37 | + | ||
38 | + | let r = fromBase58String(valueOrErrorMessage(getString(a, n), "Can't get admin1PK")) | |
39 | + | ||
40 | + | let s = fromBase58String(valueOrErrorMessage(getString(a, o), "Can't get admin2PK")) | |
41 | + | ||
42 | + | let t = fromBase58String(valueOrErrorMessage(getString(a, p), "Can't get admin3PK")) | |
43 | + | ||
44 | + | let u = fromBase58String(valueOrErrorMessage(getString(a, q), "Can't get operatorPK")) | |
45 | + | ||
46 | + | let v = fromBase58String(valueOrErrorMessage(getString(c, k), "Can't get axly token id")) | |
47 | + | ||
48 | + | let w = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(b, j), "Can't get axlyPool key")), "Can't get axly pool") | |
49 | + | ||
50 | + | func x () = throw("Wrong pool type") | |
31 | 51 | ||
32 | 52 | ||
33 | - | func o (p,q) = (p :+ parseIntValue(q)) | |
53 | + | func y (z) = if ((z.caller == this)) | |
54 | + | then unit | |
55 | + | else throw("Only contract itself can call this function") | |
34 | 56 | ||
35 | 57 | ||
36 | - | func r (s) = { | |
37 | - | let t = addressFromStringValue(s[1]) | |
38 | - | let u = { | |
39 | - | let v = split(s[2], "|") | |
40 | - | [AttachedPayment(fromBase58String(v[0]), parseIntValue(v[1]))] | |
58 | + | func A (B,C) = (B :+ parseIntValue(C)) | |
59 | + | ||
60 | + | ||
61 | + | func D (E) = { | |
62 | + | let F = addressFromStringValue(E[1]) | |
63 | + | let G = { | |
64 | + | let H = split(E[2], "|") | |
65 | + | [AttachedPayment(fromBase58String(H[0]), parseIntValue(H[1]))] | |
41 | 66 | } | |
42 | - | let | |
43 | - | invoke( | |
67 | + | let I = E[3] | |
68 | + | invoke(F, "callFunction", ["exchange", [I]], G) | |
44 | 69 | } | |
45 | 70 | ||
46 | 71 | ||
47 | - | func | |
48 | - | let | |
49 | - | let | |
50 | - | let | |
51 | - | [AttachedPayment(fromBase58String( | |
72 | + | func J (E) = { | |
73 | + | let F = addressFromStringValue(E[1]) | |
74 | + | let G = { | |
75 | + | let H = split(E[2], "|") | |
76 | + | [AttachedPayment(fromBase58String(H[0]), parseIntValue(H[1]))] | |
52 | 77 | } | |
53 | - | let | |
54 | - | let | |
55 | - | let | |
56 | - | let | |
57 | - | let | |
58 | - | let | |
59 | - | let | |
60 | - | let | |
61 | - | func | |
62 | - | then | |
63 | - | else | |
78 | + | let K = { | |
79 | + | let L = split(E[3], "|") | |
80 | + | let M = split(L[0], ",") | |
81 | + | let N = split(L[1], ",") | |
82 | + | let O = { | |
83 | + | let P = split(L[2], ",") | |
84 | + | let Q = size(P) | |
85 | + | let R = nil | |
86 | + | func S (T,U) = if ((U >= Q)) | |
87 | + | then T | |
88 | + | else A(T, P[U]) | |
64 | 89 | ||
65 | - | func | |
66 | - | then | |
90 | + | func V (T,U) = if ((U >= Q)) | |
91 | + | then T | |
67 | 92 | else throw("List size exceeds 3") | |
68 | 93 | ||
69 | - | | |
94 | + | V(S(S(S(R, 0), 1), 2), 3) | |
70 | 95 | } | |
71 | - | let | |
72 | - | let | |
73 | - | let | |
74 | - | let | |
75 | - | func | |
76 | - | then | |
77 | - | else | |
96 | + | let W = { | |
97 | + | let P = split(L[3], ",") | |
98 | + | let Q = size(P) | |
99 | + | let R = nil | |
100 | + | func X (T,U) = if ((U >= Q)) | |
101 | + | then T | |
102 | + | else A(T, P[U]) | |
78 | 103 | ||
79 | - | func | |
80 | - | then | |
104 | + | func Y (T,U) = if ((U >= Q)) | |
105 | + | then T | |
81 | 106 | else throw("List size exceeds 3") | |
82 | 107 | ||
83 | - | | |
108 | + | Y(X(X(X(R, 0), 1), 2), 3) | |
84 | 109 | } | |
85 | - | let | |
86 | - | let | |
87 | - | [ | |
110 | + | let Z = split(L[4], ",") | |
111 | + | let I = parseIntValue(L[5]) | |
112 | + | [M, N, O, W, Z, I] | |
88 | 113 | } | |
89 | - | invoke( | |
114 | + | invoke(F, "routingTrade", K, G) | |
90 | 115 | } | |
91 | 116 | ||
92 | 117 | ||
93 | - | @Callable( | |
94 | - | func exchangeLps ( | |
95 | - | func | |
96 | - | let | |
97 | - | let | |
98 | - | let | |
99 | - | let | |
100 | - | let | |
101 | - | if (( | |
118 | + | @Callable(z) | |
119 | + | func exchangeLps (aa) = valueOrElse(y(z), { | |
120 | + | func ab (B,ac) = { | |
121 | + | let ad = fromBase58String(ac) | |
122 | + | let ae = assetBalance(this, ad) | |
123 | + | let af = valueOrErrorMessage(getString(a, (ac + l)), ("Can't get pool of lp:" + ac)) | |
124 | + | let ag = valueOrErrorMessage(getString(a, (m + af)), "Pool is not inited") | |
125 | + | let ah = valueOrErrorMessage(addressFromString(af), "unknown addr") | |
126 | + | if ((ae > 0)) | |
102 | 127 | then { | |
103 | - | let | |
104 | - | then invoke( | |
105 | - | else if (( | |
106 | - | then invoke( | |
107 | - | else | |
108 | - | if (( | |
109 | - | then ( | |
128 | + | let ai = if ((ag == f)) | |
129 | + | then invoke(ah, "callFunction", ["withdraw", ["0"]], [AttachedPayment(ad, ae)]) | |
130 | + | else if ((ag == g)) | |
131 | + | then invoke(ah, "get", nil, [AttachedPayment(ad, ae)]) | |
132 | + | else x() | |
133 | + | if ((ai == ai)) | |
134 | + | then (B :+ true) | |
110 | 135 | else throw("Strict value is not equal to itself.") | |
111 | 136 | } | |
112 | - | else ( | |
137 | + | else (B :+ false) | |
113 | 138 | } | |
114 | 139 | ||
115 | - | let | |
116 | - | let | |
117 | - | let | |
118 | - | let | |
119 | - | func | |
120 | - | then | |
121 | - | else | |
140 | + | let aj = { | |
141 | + | let P = aa | |
142 | + | let Q = size(P) | |
143 | + | let R = nil | |
144 | + | func S (T,U) = if ((U >= Q)) | |
145 | + | then T | |
146 | + | else ab(T, P[U]) | |
122 | 147 | ||
123 | - | func | |
124 | - | then | |
148 | + | func V (T,U) = if ((U >= Q)) | |
149 | + | then T | |
125 | 150 | else throw("List size exceeds 50") | |
126 | 151 | ||
127 | - | | |
152 | + | V(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(R, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50) | |
128 | 153 | } | |
129 | - | $Tuple2(nil, | |
130 | - | } | |
154 | + | $Tuple2(nil, aj) | |
155 | + | }) | |
131 | 156 | ||
132 | 157 | ||
133 | 158 | ||
134 | - | @Callable( | |
135 | - | func exchangeTokens ( | |
136 | - | func | |
137 | - | let | |
138 | - | if (( | |
159 | + | @Callable(z) | |
160 | + | func exchangeTokens (ak) = valueOrElse(y(z), { | |
161 | + | func al (am,an) = { | |
162 | + | let E = split(an, "__") | |
163 | + | if ((E[0] == "directSwopfiCPMM")) | |
139 | 164 | then { | |
140 | - | let | |
141 | - | if (( | |
142 | - | then ( | |
165 | + | let ai = D(E) | |
166 | + | if ((ai == ai)) | |
167 | + | then (am :+ ai) | |
143 | 168 | else throw("Strict value is not equal to itself.") | |
144 | 169 | } | |
145 | - | else if (( | |
170 | + | else if ((E[0] == "routingSwopfi")) | |
146 | 171 | then { | |
147 | - | let | |
148 | - | if (( | |
149 | - | then ( | |
172 | + | let ai = J(E) | |
173 | + | if ((ai == ai)) | |
174 | + | then (am :+ ai) | |
150 | 175 | else throw("Strict value is not equal to itself.") | |
151 | 176 | } | |
152 | 177 | else throw("Unknown route type") | |
153 | 178 | } | |
154 | 179 | ||
155 | - | let | |
156 | - | let | |
157 | - | let | |
158 | - | let | |
159 | - | func | |
160 | - | then | |
161 | - | else | |
180 | + | let aj = { | |
181 | + | let P = ak | |
182 | + | let Q = size(P) | |
183 | + | let R = nil | |
184 | + | func S (T,U) = if ((U >= Q)) | |
185 | + | then T | |
186 | + | else al(T, P[U]) | |
162 | 187 | ||
163 | - | func | |
164 | - | then | |
188 | + | func V (T,U) = if ((U >= Q)) | |
189 | + | then T | |
165 | 190 | else throw("List size exceeds 30") | |
166 | 191 | ||
167 | - | | |
192 | + | V(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(R, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30) | |
168 | 193 | } | |
169 | - | if (( | |
194 | + | if ((aj == aj)) | |
170 | 195 | then nil | |
171 | 196 | else throw("Strict value is not equal to itself.") | |
172 | - | } | |
197 | + | }) | |
173 | 198 | ||
174 | 199 | ||
175 | - | @Verifier(ad) | |
176 | - | func ae () = { | |
177 | - | let af = ad | |
178 | - | if ($isInstanceOf(af, "InvokeScriptTransaction")) | |
200 | + | ||
201 | + | @Callable(z) | |
202 | + | func airdropStaking (ak) = valueOrElse(y(z), { | |
203 | + | let ao = wavesBalance(this).available | |
204 | + | let ap = (ao - h) | |
205 | + | let aq = fraction(ap, i, 100) | |
206 | + | let ar = (ap - aq) | |
207 | + | if ((0 >= ap)) | |
208 | + | then throw("No tokens to airdrop") | |
209 | + | else if ((0 >= ar)) | |
210 | + | then throw("No tokens to airdrop") | |
211 | + | else { | |
212 | + | let ai = invoke(w, "callFunction", ["exchange", ["0"]], [AttachedPayment(unit, ar)]) | |
213 | + | if ((ai == ai)) | |
214 | + | then { | |
215 | + | let as = assetBalance(this, v) | |
216 | + | if ((as == as)) | |
217 | + | then { | |
218 | + | let at = invoke(e, "airdrop", nil, [AttachedPayment(v, as)]) | |
219 | + | if ((at == at)) | |
220 | + | then [ScriptTransfer(d, aq, unit)] | |
221 | + | else throw("Strict value is not equal to itself.") | |
222 | + | } | |
223 | + | else throw("Strict value is not equal to itself.") | |
224 | + | } | |
225 | + | else throw("Strict value is not equal to itself.") | |
226 | + | } | |
227 | + | }) | |
228 | + | ||
229 | + | ||
230 | + | @Verifier(au) | |
231 | + | func av () = { | |
232 | + | let aw = au | |
233 | + | if ($isInstanceOf(aw, "InvokeScriptTransaction")) | |
179 | 234 | then { | |
180 | - | let | |
181 | - | let | |
182 | - | then ( | |
235 | + | let ai = aw | |
236 | + | let ax = if ((ai.fee == 900000)) | |
237 | + | then (ai.feeAssetId == unit) | |
183 | 238 | else false | |
184 | - | let ah = (X.function == "exchangeLps") | |
185 | - | let ai = (X.function == "exchangeTokens") | |
186 | - | let aj = if (sigVerify(ad.bodyBytes, ad.proofs[0], j)) | |
239 | + | let ay = (ai.function == "exchangeLps") | |
240 | + | let az = (ai.function == "exchangeTokens") | |
241 | + | let aA = (ai.function == "airdropStaking") | |
242 | + | let aB = if (sigVerify(au.bodyBytes, au.proofs[0], r)) | |
187 | 243 | then 1 | |
188 | 244 | else 0 | |
189 | - | let | |
245 | + | let aC = if (sigVerify(au.bodyBytes, au.proofs[0], s)) | |
190 | 246 | then 1 | |
191 | 247 | else 0 | |
192 | - | let | |
248 | + | let aD = if (sigVerify(au.bodyBytes, au.proofs[0], t)) | |
193 | 249 | then 1 | |
194 | 250 | else 0 | |
195 | - | let | |
251 | + | let aE = if (sigVerify(au.bodyBytes, au.proofs[0], u)) | |
196 | 252 | then 1 | |
197 | 253 | else 0 | |
198 | - | let | |
199 | - | if (if ( | |
200 | - | then if ( | |
254 | + | let aF = ((((aB + aC) + aD) + aE) >= 1) | |
255 | + | if (if (ax) | |
256 | + | then if (if (ay) | |
201 | 257 | then true | |
202 | - | else ai | |
258 | + | else az) | |
259 | + | then true | |
260 | + | else aA | |
203 | 261 | else false) | |
204 | - | then | |
262 | + | then aF | |
205 | 263 | else false | |
206 | 264 | } | |
207 | 265 | else { | |
208 | - | let | |
266 | + | let aB = if (sigVerify(au.bodyBytes, au.proofs[0], r)) | |
209 | 267 | then 1 | |
210 | 268 | else 0 | |
211 | - | let | |
269 | + | let aC = if (sigVerify(au.bodyBytes, au.proofs[1], s)) | |
212 | 270 | then 1 | |
213 | 271 | else 0 | |
214 | - | let | |
272 | + | let aD = if (sigVerify(au.bodyBytes, au.proofs[2], t)) | |
215 | 273 | then 1 | |
216 | 274 | else 0 | |
217 | - | ((( | |
275 | + | (((aB + aC) + aD) >= 2) | |
218 | 276 | } | |
219 | 277 | } | |
220 | 278 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = Address(base58'3MvRWw2FPEimFCTGtK7qY9uAJbM7XJ4ZfJS') | |
5 | 5 | ||
6 | - | let b = | |
6 | + | let b = Address(base58'3N2M4PztorHwrfENp7D6LhYGgGodjiD1fjn') | |
7 | 7 | ||
8 | - | let c = " | |
8 | + | let c = addressFromStringValue(valueOrErrorMessage(getString(b, "tokenomicContract"), "Can't get tokenomic addr")) | |
9 | 9 | ||
10 | - | let d = | |
10 | + | let d = Address(base58'3NBAqyU7HpCjXtX7ymiEGiUkrw7qe9bSdxm') | |
11 | 11 | ||
12 | - | let e = | |
12 | + | let e = Address(base58'3N4erM2YbPHzpzNT31KQbgHxQoRdiJdFFTY') | |
13 | 13 | ||
14 | - | let f = " | |
14 | + | let f = "SF" | |
15 | 15 | ||
16 | - | let g = " | |
16 | + | let g = "WX" | |
17 | 17 | ||
18 | - | let h = | |
18 | + | let h = 100000000 | |
19 | 19 | ||
20 | - | let i = | |
20 | + | let i = 50 | |
21 | 21 | ||
22 | - | let j = | |
22 | + | let j = "axlyPool" | |
23 | 23 | ||
24 | - | let k = | |
24 | + | let k = "axlyTokenId" | |
25 | 25 | ||
26 | - | let l = | |
26 | + | let l = "_poolShareId" | |
27 | 27 | ||
28 | - | let m = | |
28 | + | let m = "pool_" | |
29 | 29 | ||
30 | - | func n () = throw("Wrong pool type") | |
30 | + | let n = "group1_admin1_pub_key" | |
31 | + | ||
32 | + | let o = "group1_admin2_pub_key" | |
33 | + | ||
34 | + | let p = "group1_admin3_pub_key" | |
35 | + | ||
36 | + | let q = "admin_call_pub_key" | |
37 | + | ||
38 | + | let r = fromBase58String(valueOrErrorMessage(getString(a, n), "Can't get admin1PK")) | |
39 | + | ||
40 | + | let s = fromBase58String(valueOrErrorMessage(getString(a, o), "Can't get admin2PK")) | |
41 | + | ||
42 | + | let t = fromBase58String(valueOrErrorMessage(getString(a, p), "Can't get admin3PK")) | |
43 | + | ||
44 | + | let u = fromBase58String(valueOrErrorMessage(getString(a, q), "Can't get operatorPK")) | |
45 | + | ||
46 | + | let v = fromBase58String(valueOrErrorMessage(getString(c, k), "Can't get axly token id")) | |
47 | + | ||
48 | + | let w = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(b, j), "Can't get axlyPool key")), "Can't get axly pool") | |
49 | + | ||
50 | + | func x () = throw("Wrong pool type") | |
31 | 51 | ||
32 | 52 | ||
33 | - | func o (p,q) = (p :+ parseIntValue(q)) | |
53 | + | func y (z) = if ((z.caller == this)) | |
54 | + | then unit | |
55 | + | else throw("Only contract itself can call this function") | |
34 | 56 | ||
35 | 57 | ||
36 | - | func r (s) = { | |
37 | - | let t = addressFromStringValue(s[1]) | |
38 | - | let u = { | |
39 | - | let v = split(s[2], "|") | |
40 | - | [AttachedPayment(fromBase58String(v[0]), parseIntValue(v[1]))] | |
58 | + | func A (B,C) = (B :+ parseIntValue(C)) | |
59 | + | ||
60 | + | ||
61 | + | func D (E) = { | |
62 | + | let F = addressFromStringValue(E[1]) | |
63 | + | let G = { | |
64 | + | let H = split(E[2], "|") | |
65 | + | [AttachedPayment(fromBase58String(H[0]), parseIntValue(H[1]))] | |
41 | 66 | } | |
42 | - | let | |
43 | - | invoke( | |
67 | + | let I = E[3] | |
68 | + | invoke(F, "callFunction", ["exchange", [I]], G) | |
44 | 69 | } | |
45 | 70 | ||
46 | 71 | ||
47 | - | func | |
48 | - | let | |
49 | - | let | |
50 | - | let | |
51 | - | [AttachedPayment(fromBase58String( | |
72 | + | func J (E) = { | |
73 | + | let F = addressFromStringValue(E[1]) | |
74 | + | let G = { | |
75 | + | let H = split(E[2], "|") | |
76 | + | [AttachedPayment(fromBase58String(H[0]), parseIntValue(H[1]))] | |
52 | 77 | } | |
53 | - | let | |
54 | - | let | |
55 | - | let | |
56 | - | let | |
57 | - | let | |
58 | - | let | |
59 | - | let | |
60 | - | let | |
61 | - | func | |
62 | - | then | |
63 | - | else | |
78 | + | let K = { | |
79 | + | let L = split(E[3], "|") | |
80 | + | let M = split(L[0], ",") | |
81 | + | let N = split(L[1], ",") | |
82 | + | let O = { | |
83 | + | let P = split(L[2], ",") | |
84 | + | let Q = size(P) | |
85 | + | let R = nil | |
86 | + | func S (T,U) = if ((U >= Q)) | |
87 | + | then T | |
88 | + | else A(T, P[U]) | |
64 | 89 | ||
65 | - | func | |
66 | - | then | |
90 | + | func V (T,U) = if ((U >= Q)) | |
91 | + | then T | |
67 | 92 | else throw("List size exceeds 3") | |
68 | 93 | ||
69 | - | | |
94 | + | V(S(S(S(R, 0), 1), 2), 3) | |
70 | 95 | } | |
71 | - | let | |
72 | - | let | |
73 | - | let | |
74 | - | let | |
75 | - | func | |
76 | - | then | |
77 | - | else | |
96 | + | let W = { | |
97 | + | let P = split(L[3], ",") | |
98 | + | let Q = size(P) | |
99 | + | let R = nil | |
100 | + | func X (T,U) = if ((U >= Q)) | |
101 | + | then T | |
102 | + | else A(T, P[U]) | |
78 | 103 | ||
79 | - | func | |
80 | - | then | |
104 | + | func Y (T,U) = if ((U >= Q)) | |
105 | + | then T | |
81 | 106 | else throw("List size exceeds 3") | |
82 | 107 | ||
83 | - | | |
108 | + | Y(X(X(X(R, 0), 1), 2), 3) | |
84 | 109 | } | |
85 | - | let | |
86 | - | let | |
87 | - | [ | |
110 | + | let Z = split(L[4], ",") | |
111 | + | let I = parseIntValue(L[5]) | |
112 | + | [M, N, O, W, Z, I] | |
88 | 113 | } | |
89 | - | invoke( | |
114 | + | invoke(F, "routingTrade", K, G) | |
90 | 115 | } | |
91 | 116 | ||
92 | 117 | ||
93 | - | @Callable( | |
94 | - | func exchangeLps ( | |
95 | - | func | |
96 | - | let | |
97 | - | let | |
98 | - | let | |
99 | - | let | |
100 | - | let | |
101 | - | if (( | |
118 | + | @Callable(z) | |
119 | + | func exchangeLps (aa) = valueOrElse(y(z), { | |
120 | + | func ab (B,ac) = { | |
121 | + | let ad = fromBase58String(ac) | |
122 | + | let ae = assetBalance(this, ad) | |
123 | + | let af = valueOrErrorMessage(getString(a, (ac + l)), ("Can't get pool of lp:" + ac)) | |
124 | + | let ag = valueOrErrorMessage(getString(a, (m + af)), "Pool is not inited") | |
125 | + | let ah = valueOrErrorMessage(addressFromString(af), "unknown addr") | |
126 | + | if ((ae > 0)) | |
102 | 127 | then { | |
103 | - | let | |
104 | - | then invoke( | |
105 | - | else if (( | |
106 | - | then invoke( | |
107 | - | else | |
108 | - | if (( | |
109 | - | then ( | |
128 | + | let ai = if ((ag == f)) | |
129 | + | then invoke(ah, "callFunction", ["withdraw", ["0"]], [AttachedPayment(ad, ae)]) | |
130 | + | else if ((ag == g)) | |
131 | + | then invoke(ah, "get", nil, [AttachedPayment(ad, ae)]) | |
132 | + | else x() | |
133 | + | if ((ai == ai)) | |
134 | + | then (B :+ true) | |
110 | 135 | else throw("Strict value is not equal to itself.") | |
111 | 136 | } | |
112 | - | else ( | |
137 | + | else (B :+ false) | |
113 | 138 | } | |
114 | 139 | ||
115 | - | let | |
116 | - | let | |
117 | - | let | |
118 | - | let | |
119 | - | func | |
120 | - | then | |
121 | - | else | |
140 | + | let aj = { | |
141 | + | let P = aa | |
142 | + | let Q = size(P) | |
143 | + | let R = nil | |
144 | + | func S (T,U) = if ((U >= Q)) | |
145 | + | then T | |
146 | + | else ab(T, P[U]) | |
122 | 147 | ||
123 | - | func | |
124 | - | then | |
148 | + | func V (T,U) = if ((U >= Q)) | |
149 | + | then T | |
125 | 150 | else throw("List size exceeds 50") | |
126 | 151 | ||
127 | - | | |
152 | + | V(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(R, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50) | |
128 | 153 | } | |
129 | - | $Tuple2(nil, | |
130 | - | } | |
154 | + | $Tuple2(nil, aj) | |
155 | + | }) | |
131 | 156 | ||
132 | 157 | ||
133 | 158 | ||
134 | - | @Callable( | |
135 | - | func exchangeTokens ( | |
136 | - | func | |
137 | - | let | |
138 | - | if (( | |
159 | + | @Callable(z) | |
160 | + | func exchangeTokens (ak) = valueOrElse(y(z), { | |
161 | + | func al (am,an) = { | |
162 | + | let E = split(an, "__") | |
163 | + | if ((E[0] == "directSwopfiCPMM")) | |
139 | 164 | then { | |
140 | - | let | |
141 | - | if (( | |
142 | - | then ( | |
165 | + | let ai = D(E) | |
166 | + | if ((ai == ai)) | |
167 | + | then (am :+ ai) | |
143 | 168 | else throw("Strict value is not equal to itself.") | |
144 | 169 | } | |
145 | - | else if (( | |
170 | + | else if ((E[0] == "routingSwopfi")) | |
146 | 171 | then { | |
147 | - | let | |
148 | - | if (( | |
149 | - | then ( | |
172 | + | let ai = J(E) | |
173 | + | if ((ai == ai)) | |
174 | + | then (am :+ ai) | |
150 | 175 | else throw("Strict value is not equal to itself.") | |
151 | 176 | } | |
152 | 177 | else throw("Unknown route type") | |
153 | 178 | } | |
154 | 179 | ||
155 | - | let | |
156 | - | let | |
157 | - | let | |
158 | - | let | |
159 | - | func | |
160 | - | then | |
161 | - | else | |
180 | + | let aj = { | |
181 | + | let P = ak | |
182 | + | let Q = size(P) | |
183 | + | let R = nil | |
184 | + | func S (T,U) = if ((U >= Q)) | |
185 | + | then T | |
186 | + | else al(T, P[U]) | |
162 | 187 | ||
163 | - | func | |
164 | - | then | |
188 | + | func V (T,U) = if ((U >= Q)) | |
189 | + | then T | |
165 | 190 | else throw("List size exceeds 30") | |
166 | 191 | ||
167 | - | | |
192 | + | V(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(R, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30) | |
168 | 193 | } | |
169 | - | if (( | |
194 | + | if ((aj == aj)) | |
170 | 195 | then nil | |
171 | 196 | else throw("Strict value is not equal to itself.") | |
172 | - | } | |
197 | + | }) | |
173 | 198 | ||
174 | 199 | ||
175 | - | @Verifier(ad) | |
176 | - | func ae () = { | |
177 | - | let af = ad | |
178 | - | if ($isInstanceOf(af, "InvokeScriptTransaction")) | |
200 | + | ||
201 | + | @Callable(z) | |
202 | + | func airdropStaking (ak) = valueOrElse(y(z), { | |
203 | + | let ao = wavesBalance(this).available | |
204 | + | let ap = (ao - h) | |
205 | + | let aq = fraction(ap, i, 100) | |
206 | + | let ar = (ap - aq) | |
207 | + | if ((0 >= ap)) | |
208 | + | then throw("No tokens to airdrop") | |
209 | + | else if ((0 >= ar)) | |
210 | + | then throw("No tokens to airdrop") | |
211 | + | else { | |
212 | + | let ai = invoke(w, "callFunction", ["exchange", ["0"]], [AttachedPayment(unit, ar)]) | |
213 | + | if ((ai == ai)) | |
214 | + | then { | |
215 | + | let as = assetBalance(this, v) | |
216 | + | if ((as == as)) | |
217 | + | then { | |
218 | + | let at = invoke(e, "airdrop", nil, [AttachedPayment(v, as)]) | |
219 | + | if ((at == at)) | |
220 | + | then [ScriptTransfer(d, aq, unit)] | |
221 | + | else throw("Strict value is not equal to itself.") | |
222 | + | } | |
223 | + | else throw("Strict value is not equal to itself.") | |
224 | + | } | |
225 | + | else throw("Strict value is not equal to itself.") | |
226 | + | } | |
227 | + | }) | |
228 | + | ||
229 | + | ||
230 | + | @Verifier(au) | |
231 | + | func av () = { | |
232 | + | let aw = au | |
233 | + | if ($isInstanceOf(aw, "InvokeScriptTransaction")) | |
179 | 234 | then { | |
180 | - | let | |
181 | - | let | |
182 | - | then ( | |
235 | + | let ai = aw | |
236 | + | let ax = if ((ai.fee == 900000)) | |
237 | + | then (ai.feeAssetId == unit) | |
183 | 238 | else false | |
184 | - | let ah = (X.function == "exchangeLps") | |
185 | - | let ai = (X.function == "exchangeTokens") | |
186 | - | let aj = if (sigVerify(ad.bodyBytes, ad.proofs[0], j)) | |
239 | + | let ay = (ai.function == "exchangeLps") | |
240 | + | let az = (ai.function == "exchangeTokens") | |
241 | + | let aA = (ai.function == "airdropStaking") | |
242 | + | let aB = if (sigVerify(au.bodyBytes, au.proofs[0], r)) | |
187 | 243 | then 1 | |
188 | 244 | else 0 | |
189 | - | let | |
245 | + | let aC = if (sigVerify(au.bodyBytes, au.proofs[0], s)) | |
190 | 246 | then 1 | |
191 | 247 | else 0 | |
192 | - | let | |
248 | + | let aD = if (sigVerify(au.bodyBytes, au.proofs[0], t)) | |
193 | 249 | then 1 | |
194 | 250 | else 0 | |
195 | - | let | |
251 | + | let aE = if (sigVerify(au.bodyBytes, au.proofs[0], u)) | |
196 | 252 | then 1 | |
197 | 253 | else 0 | |
198 | - | let | |
199 | - | if (if ( | |
200 | - | then if ( | |
254 | + | let aF = ((((aB + aC) + aD) + aE) >= 1) | |
255 | + | if (if (ax) | |
256 | + | then if (if (ay) | |
201 | 257 | then true | |
202 | - | else ai | |
258 | + | else az) | |
259 | + | then true | |
260 | + | else aA | |
203 | 261 | else false) | |
204 | - | then | |
262 | + | then aF | |
205 | 263 | else false | |
206 | 264 | } | |
207 | 265 | else { | |
208 | - | let | |
266 | + | let aB = if (sigVerify(au.bodyBytes, au.proofs[0], r)) | |
209 | 267 | then 1 | |
210 | 268 | else 0 | |
211 | - | let | |
269 | + | let aC = if (sigVerify(au.bodyBytes, au.proofs[1], s)) | |
212 | 270 | then 1 | |
213 | 271 | else 0 | |
214 | - | let | |
272 | + | let aD = if (sigVerify(au.bodyBytes, au.proofs[2], t)) | |
215 | 273 | then 1 | |
216 | 274 | else 0 | |
217 | - | ((( | |
275 | + | (((aB + aC) + aD) >= 2) | |
218 | 276 | } | |
219 | 277 | } | |
220 | 278 |
github/deemru/w8io/169f3d6 118.37 ms ◑![]()