tx · 7HhGoX2KGrwQJWc9LaBuDMmvHpLNsCrLd6o8dnoh7w5s

3N1ytAUyhtig9X6F2hHHs1jbzYxr47Yp8Fr:  -0.00500000 Waves

2024.10.11 09:44 [3321827] smart account 3N1ytAUyhtig9X6F2hHHs1jbzYxr47Yp8Fr > SELF 0.00000000 Waves

{ "type": 13, "id": "7HhGoX2KGrwQJWc9LaBuDMmvHpLNsCrLd6o8dnoh7w5s", "fee": 500000, "feeAssetId": null, "timestamp": 1728629047266, "version": 2, "chainId": 84, "sender": "3N1ytAUyhtig9X6F2hHHs1jbzYxr47Yp8Fr", "senderPublicKey": "jXCTQV8PjX2uC9UHBFveupYy9cjhY7stHbzE9cptymw", "proofs": [ "2yv83nketEUfwKPtCNAxz4fVqTxMUWpWuxAz4kQXsxFnJkjX5cok8fxBp2M5P3S1sEW73L3SjSXgBA8Agmp6zZid" ], "script": "base64:BwIZCAISAwoBCBIECgICGBIECgICGBIECgICGCEACXNlcGFyYXRvcgICX18AC3dhdmVzU3RyaW5nAgVXQVZFUwAQY29udHJhY3RGaWxlbmFtZQIXbWVtZV9pbV9jYWxjdWxhdG9yLnJpZGUABW11bHQ4AIDC1y8BB3dyYXBFcnIBAXMJAKwCAgkArAICBRBjb250cmFjdEZpbGVuYW1lAgI6IAUBcwEIdGhyb3dFcnIBAXMJAAIBCQEHd3JhcEVycgEFAXMBD3ZhbGlkYXRlQWRkcmVzcwEHYWRkcmVzcwkBCWlzRGVmaW5lZAEJAKYIAQUHYWRkcmVzcwAMU1RBVFVTX0VNUFRZAAAADFNUQVRVU19SRUFEWQABAAlrU2h1dGRvd24CDnNodXRkb3duX19mbGFnAAtrUHJpY2VBc3NldAIMcHJpY2VfX2Fzc2V0AA5rTGlzdGluZ1ZvbHVtZQIPbGlzdGluZ19fdm9sdW1lABFrUG9vbENvbnRyYWN0SGFzaAIUcG9vbF9fY29udHJhY3RfX2hhc2gAE2tMYXN0RW1wdHlQb29sSW5kZXgCF2xhc3RfX2VtcHR5X3Bvb2xfX2luZGV4ABRrRmlyc3RFbXB0eVBvb2xJbmRleAIZZmlyc3RfX2VtcHR5X19wb29sX19pbmRleAEVa1Bvb2xBZGRyZXNzRnJvbUluZGV4AQVpbmRleAkAuQkCCQDMCAICBHBvb2wJAMwIAgkApAMBBQVpbmRleAUDbmlsBQlzZXBhcmF0b3IBFWtQb29sSW5kZXhGcm9tQWRkcmVzcwEHYWRkcmVzcwkAuQkCCQDMCAICBHBvb2wJAMwIAgkApQgBBQdhZGRyZXNzBQNuaWwFCXNlcGFyYXRvcgEKa1Bvb2xBc3NldAEHYWRkcmVzcwkAuQkCCQDMCAICBWFzc2V0CQDMCAIJAKUIAQUHYWRkcmVzcwUDbmlsBQlzZXBhcmF0b3IBC2tQb29sU3RhdHVzAQVpbmRleAkAuQkCCQDMCAICBHBvb2wJAMwIAgIGc3RhdHVzCQDMCAIJAKQDAQUFaW5kZXgFA25pbAUJc2VwYXJhdG9yAA9rRmFjdG9yeUFkZHJlc3MCEGZhY3RvcnlfX2FkZHJlc3MAFGZhY3RvcnlBZGRyZXNzT3B0aW9uBAckbWF0Y2gwCQCdCAIFBHRoaXMFD2tGYWN0b3J5QWRkcmVzcwMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJAKYIAQUBcwMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IADmZhY3RvcnlBZGRyZXNzCQETdmFsdWVPckVycm9yTWVzc2FnZQIFFGZhY3RvcnlBZGRyZXNzT3B0aW9uCQEHd3JhcEVycgECF2ludmFsaWQgZmFjdG9yeSBhZGRyZXNzAAhzaHV0ZG93bgkBC3ZhbHVlT3JFbHNlAgkAmwgCBQ5mYWN0b3J5QWRkcmVzcwUJa1NodXRkb3duBwAObGFzdEVtcHR5SW5kZXgJAQt2YWx1ZU9yRWxzZQIJAJoIAgUOZmFjdG9yeUFkZHJlc3MFE2tMYXN0RW1wdHlQb29sSW5kZXgAAAAPZmlyc3RFbXB0eUluZGV4CQELdmFsdWVPckVsc2UCCQCaCAIFDmZhY3RvcnlBZGRyZXNzBRRrRmlyc3RFbXB0eVBvb2xJbmRleAAAAA1saXN0aW5nVm9sdW1lCQELdmFsdWVPckVsc2UCCQCaCAIFDmZhY3RvcnlBZGRyZXNzBQ5rTGlzdGluZ1ZvbHVtZQAAAQxwYXJzZUFzc2V0SWQBBWlucHV0AwkAAAIFBWlucHV0BQt3YXZlc1N0cmluZwUEdW5pdAkA2QQBBQVpbnB1dAEPYXNzZXRJZFRvU3RyaW5nAQVpbnB1dAMJAAACBQVpbnB1dAUEdW5pdAULd2F2ZXNTdHJpbmcJANgEAQkBBXZhbHVlAQUFaW5wdXQBC211c3RBZGRyZXNzAgZjYWxsZXIHYWRkcmVzcwMJAAACBQZjYWxsZXIFB2FkZHJlc3MGCQEIdGhyb3dFcnIBAhFwZXJtaXNzaW9uIGRlbmllZAEIbXVzdFRoaXMBBmNhbGxlcgkBC211c3RBZGRyZXNzAgUGY2FsbGVyBQR0aGlzAQttdXN0RmFjdG9yeQEGY2FsbGVyCQELbXVzdEFkZHJlc3MCBQZjYWxsZXIFDmZhY3RvcnlBZGRyZXNzARBwb29sQ29udHJhY3RIYXNoAAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCcCAIFDmZhY3RvcnlBZGRyZXNzBRFrUG9vbENvbnRyYWN0SGFzaAkBB3dyYXBFcnIBAiRwb29sIGNvbnRyYWN0IHNjcmlwdCBoYXNoIGlzIG5vdCBzZXQBDGlzUG9vbEV4aXN0cwELcG9vbEFkZHJlc3MJAQlpc0RlZmluZWQBCQCaCAIFDmZhY3RvcnlBZGRyZXNzCQEVa1Bvb2xJbmRleEZyb21BZGRyZXNzAQULcG9vbEFkZHJlc3MEAWkBBGluaXQBEWZhY3RvcnlBZGRyZXNzU3RyBAtjaGVja0NhbGxlcgkBCG11c3RUaGlzAQgFAWkGY2FsbGVyAwkAAAIFC2NoZWNrQ2FsbGVyBQtjaGVja0NhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCBQ9rRmFjdG9yeUFkZHJlc3MFEWZhY3RvcnlBZGRyZXNzU3RyBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEMYWRkRW1wdHlQb29sAg9jYWxsZXJQdWJsaWNLZXkEYXJncwQObmV3UG9vbEFkZHJlc3MJAKcIAQUPY2FsbGVyUHVibGljS2V5BAxuZXdQb29sSW5kZXgJAGQCBQ5sYXN0RW1wdHlJbmRleAABBAZjaGVja3MJAMwIAgMJAQEhAQUIc2h1dGRvd24GCQEIdGhyb3dFcnIBAhZub3QgYWxsb3dlZCAoc2h1dGRvd24pCQDMCAIDCQEBIQEJAQxpc1Bvb2xFeGlzdHMBBQ5uZXdQb29sQWRkcmVzcwYJAQh0aHJvd0VycgECInBvb2wgYWRkcmVzcyBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQOZmFjdG9yeUFjdGlvbnMJAMwIAgkA/AcEBQ5mYWN0b3J5QWRkcmVzcwIMaW50ZWdlckVudHJ5CQDMCAIFE2tMYXN0RW1wdHlQb29sSW5kZXgJAMwIAgUMbmV3UG9vbEluZGV4BQNuaWwFA25pbAkAzAgCCQD8BwQFDmZhY3RvcnlBZGRyZXNzAgtzdHJpbmdFbnRyeQkAzAgCCQEVa1Bvb2xBZGRyZXNzRnJvbUluZGV4AQUMbmV3UG9vbEluZGV4CQDMCAIJAKUIAQUObmV3UG9vbEFkZHJlc3MFA25pbAUDbmlsCQDMCAIJAPwHBAUOZmFjdG9yeUFkZHJlc3MCDGludGVnZXJFbnRyeQkAzAgCCQEVa1Bvb2xJbmRleEZyb21BZGRyZXNzAQUObmV3UG9vbEFkZHJlc3MJAMwIAgUMbmV3UG9vbEluZGV4BQNuaWwFA25pbAkAzAgCCQD8BwQFDmZhY3RvcnlBZGRyZXNzAgxpbnRlZ2VyRW50cnkJAMwIAgkBC2tQb29sU3RhdHVzAQUMbmV3UG9vbEluZGV4CQDMCAIFDFNUQVRVU19FTVBUWQUDbmlsBQNuaWwFA25pbAkAlAoCBQNuaWwFDmZhY3RvcnlBY3Rpb25zCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCmNyZWF0ZVBvb2wCD2NhbGxlclB1YmxpY0tleQRhcmdzBAZjaGVja3MJAMwIAgMJAQEhAQUIc2h1dGRvd24GCQEIdGhyb3dFcnIBAhZub3QgYWxsb3dlZCAoc2h1dGRvd24pCQDMCAIJAQttdXN0RmFjdG9yeQEIBQFpBmNhbGxlcgkAzAgCAwkAZgIJAGUCBQ5sYXN0RW1wdHlJbmRleAUPZmlyc3RFbXB0eUluZGV4AAAGCQEIdGhyb3dFcnIBAhhubyBlbXB0eSBwb29scyBhdmFpbGFibGUJAMwIAgMJAAACCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFBHVuaXQGCQEIdGhyb3dFcnIBAhpwYXltZW50IHNob3VsZCBiZSBpbiBXQVZFUwkAzAgCAwkAZgIICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BQ1saXN0aW5nVm9sdW1lBgkBCHRocm93RXJyAQI0cGF5bWVudCBhbW91bnQgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiBsaXN0aW5nIHZvbHVtZQkAzAgCAwkBCWlzRGVmaW5lZAEJAJEDAgUEYXJncwAABgkBCHRocm93RXJyAQIZdG9rZW5OYW1lIGlzIG5vdCBwcm92aWRlZAkAzAgCAwkBCWlzRGVmaW5lZAEJAJEDAgUEYXJncwABBgkBCHRocm93RXJyAQIgdG9rZW5EZXNjcmlwdGlvbiBpcyBub3QgcHJvdmlkZWQJAMwIAgMJAQlpc0RlZmluZWQBCQCRAwIFBGFyZ3MAAgYJAQh0aHJvd0VycgECHXRva2VuUXVhbnRpdHkgaXMgbm90IHByb3ZpZGVkBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MECXBvb2xJbmRleAkAZAIFD2ZpcnN0RW1wdHlJbmRleAABBBFwb29sQWRkcmVzc1N0cmluZwkBEUBleHRyTmF0aXZlKDEwNTMpAgUOZmFjdG9yeUFkZHJlc3MJARVrUG9vbEFkZHJlc3NGcm9tSW5kZXgBBQlwb29sSW5kZXgEC3Bvb2xBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA2MikBBRFwb29sQWRkcmVzc1N0cmluZwQNY2FsbGVyQWRkcmVzcwkApwgBBQ9jYWxsZXJQdWJsaWNLZXkECnBvb2xEb21haW4JAK8CAgURcG9vbEFkZHJlc3NTdHJpbmcACAQJcG9vbE93bmVyCQClCAEFDWNhbGxlckFkZHJlc3MECXRva2VuTmFtZQkAkQMCBQRhcmdzAAAECXRva2VuRGVzYwkAkQMCBQRhcmdzAAEEDXRva2VuUXVhbnRpdHkJAJEDAgUEYXJncwACBA5pbml0UG9vbEludm9rZQkA/AcEBQ5mYWN0b3J5QWRkcmVzcwIOaW5pdFBvb2xJbnZva2UJAMwIAgURcG9vbEFkZHJlc3NTdHJpbmcJAMwIAgkAzAgCBQpwb29sRG9tYWluCQDMCAIFCXBvb2xPd25lcgkAzAgCBQl0b2tlbk5hbWUJAMwIAgUJdG9rZW5EZXNjCQDMCAIFDXRva2VuUXVhbnRpdHkFA25pbAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BQNuaWwDCQAAAgUOaW5pdFBvb2xJbnZva2UFDmluaXRQb29sSW52b2tlBA5mYWN0b3J5QWN0aW9ucwkAzAgCCQD8BwQFDmZhY3RvcnlBZGRyZXNzAgxpbnRlZ2VyRW50cnkJAMwIAgUUa0ZpcnN0RW1wdHlQb29sSW5kZXgJAMwIAgUJcG9vbEluZGV4BQNuaWwFA25pbAkAzAgCCQD8BwQFDmZhY3RvcnlBZGRyZXNzAgxpbnRlZ2VyRW50cnkJAMwIAgkBC2tQb29sU3RhdHVzAQUJcG9vbEluZGV4CQDMCAIFDFNUQVRVU19SRUFEWQUDbmlsBQNuaWwFA25pbAkAlAoCBQNuaWwFDmZhY3RvcnlBY3Rpb25zCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEm5vdGlmeVN0YXR1c1VwZGF0ZQIPY2FsbGVyUHVibGljS2V5BGFyZ3MEC3Bvb2xBZGRyZXNzCQCnCAEFD2NhbGxlclB1YmxpY0tleQQGY2hlY2tzCQDMCAIDCQEMaXNQb29sRXhpc3RzAQULcG9vbEFkZHJlc3MGCQEIdGhyb3dFcnIBAg5wb29sIG5vdCBmb3VuZAUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBAlwb29sSW5kZXgJARFAZXh0ck5hdGl2ZSgxMDUwKQIFDmZhY3RvcnlBZGRyZXNzCQEVa1Bvb2xJbmRleEZyb21BZGRyZXNzAQULcG9vbEFkZHJlc3MECW5ld1N0YXR1cwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBGFyZ3MAAAQOZmFjdG9yeUFjdGlvbnMJAMwIAgkA/AcEBQ5mYWN0b3J5QWRkcmVzcwIMaW50ZWdlckVudHJ5CQDMCAIJAQtrUG9vbFN0YXR1cwEFCXBvb2xJbmRleAkAzAgCBQluZXdTdGF0dXMFA25pbAUDbmlsBQNuaWwJAJQKAgUDbmlsBQ5mYWN0b3J5QWN0aW9ucwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAECdqF", "height": 3321827, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BqMAkFU9AWozCyNuz8h8rFKcT3e2vpdScyn3RTyYf9aE Next: none Diff:
OldNewDifferences
9494 func L () = valueOrErrorMessage(getBinary(z, o), e("pool contract script hash is not set"))
9595
9696
97-@Callable(M)
98-func init (N) = {
99- let O = J(M.caller)
100- if ((O == O))
101- then [StringEntry(w, N)]
97+func M (N) = isDefined(getInteger(z, t(N)))
98+
99+
100+@Callable(O)
101+func init (P) = {
102+ let Q = J(O.caller)
103+ if ((Q == Q))
104+ then [StringEntry(w, P)]
102105 else throw("Strict value is not equal to itself.")
103106 }
104107
105108
106109
107-@Callable(M)
108-func addEmptyPool (P,Q) = {
109- let R = addressFromPublicKey(P)
110- let S = (B + 1)
111- let T = [if (!(A))
110+@Callable(O)
111+func addEmptyPool (R,S) = {
112+ let T = addressFromPublicKey(R)
113+ let U = (B + 1)
114+ let V = [if (!(A))
112115 then true
113- else g("not allowed (shutdown)"), if (!(isDefined(getInteger(z, t(R)))))
116+ else g("not allowed (shutdown)"), if (!(M(T)))
114117 then true
115118 else g("pool address is already registered")]
116- if ((T == T))
119+ if ((V == V))
117120 then {
118- let U = [invoke(z, "integerEntry", [p, S], nil), invoke(z, "stringEntry", [r(S), toString(R)], nil), invoke(z, "integerEntry", [t(R), S], nil), invoke(z, "integerEntry", [v(S), j], nil)]
119- $Tuple2(nil, U)
121+ let W = [invoke(z, "integerEntry", [p, U], nil), invoke(z, "stringEntry", [r(U), toString(T)], nil), invoke(z, "integerEntry", [t(T), U], nil), invoke(z, "integerEntry", [v(U), j], nil)]
122+ $Tuple2(nil, W)
120123 }
121124 else throw("Strict value is not equal to itself.")
122125 }
123126
124127
125128
126-@Callable(M)
127-func createPool (P,Q) = {
128- let T = [if (!(A))
129+@Callable(O)
130+func createPool (R,S) = {
131+ let V = [if (!(A))
129132 then true
130- else g("not allowed (shutdown)"), K(M.caller), if (((B - C) > 0))
133+ else g("not allowed (shutdown)"), K(O.caller), if (((B - C) > 0))
131134 then true
132- else g("no empty pools available"), if ((M.payments[0].assetId == unit))
135+ else g("no empty pools available"), if ((O.payments[0].assetId == unit))
133136 then true
134- else g("payment should be in WAVES"), if ((M.payments[0].amount > D))
137+ else g("payment should be in WAVES"), if ((O.payments[0].amount > D))
135138 then true
136- else g("payment amount should be greater than listing volume"), if (isDefined(Q[0]))
139+ else g("payment amount should be greater than listing volume"), if (isDefined(S[0]))
137140 then true
138- else g("tokenName is not provided"), if (isDefined(Q[1]))
141+ else g("tokenName is not provided"), if (isDefined(S[1]))
139142 then true
140- else g("tokenDescription is not provided"), if (isDefined(Q[2]))
143+ else g("tokenDescription is not provided"), if (isDefined(S[2]))
141144 then true
142145 else g("tokenQuantity is not provided")]
143- if ((T == T))
146+ if ((V == V))
144147 then {
145- let V = (C + 1)
146- let W = getStringValue(z, r(V))
147- let X = addressFromStringValue(W)
148- let Y = addressFromPublicKey(P)
149- let Z = take(W, 8)
150- let aa = toString(Y)
151- let ab = Q[0]
152- let ac = Q[1]
153- let ad = Q[2]
154- let ae = invoke(z, "initPoolInvoke", [W, [Z, aa, ab, ac, ad]], [AttachedPayment(M.payments[0].assetId, M.payments[0].amount)])
155- if ((ae == ae))
148+ let X = (C + 1)
149+ let Y = getStringValue(z, r(X))
150+ let N = addressFromStringValue(Y)
151+ let Z = addressFromPublicKey(R)
152+ let aa = take(Y, 8)
153+ let ab = toString(Z)
154+ let ac = S[0]
155+ let ad = S[1]
156+ let ae = S[2]
157+ let af = invoke(z, "initPoolInvoke", [Y, [aa, ab, ac, ad, ae]], [AttachedPayment(O.payments[0].assetId, O.payments[0].amount)])
158+ if ((af == af))
156159 then {
157- let U = [invoke(z, "integerEntry", [q, V], nil), invoke(z, "integerEntry", [v(V), k], nil)]
158- $Tuple2(nil, U)
160+ let W = [invoke(z, "integerEntry", [q, X], nil), invoke(z, "integerEntry", [v(X), k], nil)]
161+ $Tuple2(nil, W)
159162 }
160163 else throw("Strict value is not equal to itself.")
164+ }
165+ else throw("Strict value is not equal to itself.")
166+ }
167+
168+
169+
170+@Callable(O)
171+func notifyStatusUpdate (R,S) = {
172+ let N = addressFromPublicKey(R)
173+ let V = [if (M(N))
174+ then true
175+ else g("pool not found")]
176+ if ((V == V))
177+ then {
178+ let X = getIntegerValue(z, t(N))
179+ let ag = parseIntValue(S[0])
180+ let W = [invoke(z, "integerEntry", [v(X), ag], nil)]
181+ $Tuple2(nil, W)
161182 }
162183 else throw("Strict value is not equal to itself.")
163184 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 7 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = "WAVES"
77
88 let c = "meme_im_calculator.ride"
99
1010 let d = 100000000
1111
1212 func e (f) = ((c + ": ") + f)
1313
1414
1515 func g (f) = throw(e(f))
1616
1717
1818 func h (i) = isDefined(addressFromString(i))
1919
2020
2121 let j = 0
2222
2323 let k = 1
2424
2525 let l = "shutdown__flag"
2626
2727 let m = "price__asset"
2828
2929 let n = "listing__volume"
3030
3131 let o = "pool__contract__hash"
3232
3333 let p = "last__empty_pool__index"
3434
3535 let q = "first__empty__pool__index"
3636
3737 func r (s) = makeString(["pool", toString(s)], a)
3838
3939
4040 func t (i) = makeString(["pool", toString(i)], a)
4141
4242
4343 func u (i) = makeString(["asset", toString(i)], a)
4444
4545
4646 func v (s) = makeString(["pool", "status", toString(s)], a)
4747
4848
4949 let w = "factory__address"
5050
5151 let x = {
5252 let y = getString(this, w)
5353 if ($isInstanceOf(y, "String"))
5454 then {
5555 let f = y
5656 addressFromString(f)
5757 }
5858 else if ($isInstanceOf(y, "Unit"))
5959 then unit
6060 else throw("Match error")
6161 }
6262
6363 let z = valueOrErrorMessage(x, e("invalid factory address"))
6464
6565 let A = valueOrElse(getBoolean(z, l), false)
6666
6767 let B = valueOrElse(getInteger(z, p), 0)
6868
6969 let C = valueOrElse(getInteger(z, q), 0)
7070
7171 let D = valueOrElse(getInteger(z, n), 0)
7272
7373 func E (F) = if ((F == b))
7474 then unit
7575 else fromBase58String(F)
7676
7777
7878 func G (F) = if ((F == unit))
7979 then b
8080 else toBase58String(value(F))
8181
8282
8383 func H (I,i) = if ((I == i))
8484 then true
8585 else g("permission denied")
8686
8787
8888 func J (I) = H(I, this)
8989
9090
9191 func K (I) = H(I, z)
9292
9393
9494 func L () = valueOrErrorMessage(getBinary(z, o), e("pool contract script hash is not set"))
9595
9696
97-@Callable(M)
98-func init (N) = {
99- let O = J(M.caller)
100- if ((O == O))
101- then [StringEntry(w, N)]
97+func M (N) = isDefined(getInteger(z, t(N)))
98+
99+
100+@Callable(O)
101+func init (P) = {
102+ let Q = J(O.caller)
103+ if ((Q == Q))
104+ then [StringEntry(w, P)]
102105 else throw("Strict value is not equal to itself.")
103106 }
104107
105108
106109
107-@Callable(M)
108-func addEmptyPool (P,Q) = {
109- let R = addressFromPublicKey(P)
110- let S = (B + 1)
111- let T = [if (!(A))
110+@Callable(O)
111+func addEmptyPool (R,S) = {
112+ let T = addressFromPublicKey(R)
113+ let U = (B + 1)
114+ let V = [if (!(A))
112115 then true
113- else g("not allowed (shutdown)"), if (!(isDefined(getInteger(z, t(R)))))
116+ else g("not allowed (shutdown)"), if (!(M(T)))
114117 then true
115118 else g("pool address is already registered")]
116- if ((T == T))
119+ if ((V == V))
117120 then {
118- let U = [invoke(z, "integerEntry", [p, S], nil), invoke(z, "stringEntry", [r(S), toString(R)], nil), invoke(z, "integerEntry", [t(R), S], nil), invoke(z, "integerEntry", [v(S), j], nil)]
119- $Tuple2(nil, U)
121+ let W = [invoke(z, "integerEntry", [p, U], nil), invoke(z, "stringEntry", [r(U), toString(T)], nil), invoke(z, "integerEntry", [t(T), U], nil), invoke(z, "integerEntry", [v(U), j], nil)]
122+ $Tuple2(nil, W)
120123 }
121124 else throw("Strict value is not equal to itself.")
122125 }
123126
124127
125128
126-@Callable(M)
127-func createPool (P,Q) = {
128- let T = [if (!(A))
129+@Callable(O)
130+func createPool (R,S) = {
131+ let V = [if (!(A))
129132 then true
130- else g("not allowed (shutdown)"), K(M.caller), if (((B - C) > 0))
133+ else g("not allowed (shutdown)"), K(O.caller), if (((B - C) > 0))
131134 then true
132- else g("no empty pools available"), if ((M.payments[0].assetId == unit))
135+ else g("no empty pools available"), if ((O.payments[0].assetId == unit))
133136 then true
134- else g("payment should be in WAVES"), if ((M.payments[0].amount > D))
137+ else g("payment should be in WAVES"), if ((O.payments[0].amount > D))
135138 then true
136- else g("payment amount should be greater than listing volume"), if (isDefined(Q[0]))
139+ else g("payment amount should be greater than listing volume"), if (isDefined(S[0]))
137140 then true
138- else g("tokenName is not provided"), if (isDefined(Q[1]))
141+ else g("tokenName is not provided"), if (isDefined(S[1]))
139142 then true
140- else g("tokenDescription is not provided"), if (isDefined(Q[2]))
143+ else g("tokenDescription is not provided"), if (isDefined(S[2]))
141144 then true
142145 else g("tokenQuantity is not provided")]
143- if ((T == T))
146+ if ((V == V))
144147 then {
145- let V = (C + 1)
146- let W = getStringValue(z, r(V))
147- let X = addressFromStringValue(W)
148- let Y = addressFromPublicKey(P)
149- let Z = take(W, 8)
150- let aa = toString(Y)
151- let ab = Q[0]
152- let ac = Q[1]
153- let ad = Q[2]
154- let ae = invoke(z, "initPoolInvoke", [W, [Z, aa, ab, ac, ad]], [AttachedPayment(M.payments[0].assetId, M.payments[0].amount)])
155- if ((ae == ae))
148+ let X = (C + 1)
149+ let Y = getStringValue(z, r(X))
150+ let N = addressFromStringValue(Y)
151+ let Z = addressFromPublicKey(R)
152+ let aa = take(Y, 8)
153+ let ab = toString(Z)
154+ let ac = S[0]
155+ let ad = S[1]
156+ let ae = S[2]
157+ let af = invoke(z, "initPoolInvoke", [Y, [aa, ab, ac, ad, ae]], [AttachedPayment(O.payments[0].assetId, O.payments[0].amount)])
158+ if ((af == af))
156159 then {
157- let U = [invoke(z, "integerEntry", [q, V], nil), invoke(z, "integerEntry", [v(V), k], nil)]
158- $Tuple2(nil, U)
160+ let W = [invoke(z, "integerEntry", [q, X], nil), invoke(z, "integerEntry", [v(X), k], nil)]
161+ $Tuple2(nil, W)
159162 }
160163 else throw("Strict value is not equal to itself.")
164+ }
165+ else throw("Strict value is not equal to itself.")
166+ }
167+
168+
169+
170+@Callable(O)
171+func notifyStatusUpdate (R,S) = {
172+ let N = addressFromPublicKey(R)
173+ let V = [if (M(N))
174+ then true
175+ else g("pool not found")]
176+ if ((V == V))
177+ then {
178+ let X = getIntegerValue(z, t(N))
179+ let ag = parseIntValue(S[0])
180+ let W = [invoke(z, "integerEntry", [v(X), ag], nil)]
181+ $Tuple2(nil, W)
161182 }
162183 else throw("Strict value is not equal to itself.")
163184 }
164185
165186

github/deemru/w8io/c3f4982 
37.12 ms