tx · 5rYS7akgsToDJxRmuPcYW66bfqptVESH1eSWEsn6qcdK 3MsAdLsHFmArSyEuYFG9xRRbsutUBovzBhn: -0.00200000 Waves 2024.04.28 20:55 [3083029] smart account 3MsAdLsHFmArSyEuYFG9xRRbsutUBovzBhn > SELF 0.00000000 Waves
{ "type": 13, "id": "5rYS7akgsToDJxRmuPcYW66bfqptVESH1eSWEsn6qcdK", "fee": 200000, "feeAssetId": null, "timestamp": 1714326937792, "version": 1, "sender": "3MsAdLsHFmArSyEuYFG9xRRbsutUBovzBhn", "senderPublicKey": "DYkCWKFho9N7rw3PcdgaRtsA18qdjXsRGSXS831MBXdA", "proofs": [ "2U7osN39UbciRebvcsYXbEHkMzSFHGXob2ArpvoeScDoCi9nUgypvXF7BnKjCVcBwrANYX6MLF4sh4uC7LVdBv5N" ], "script": "base64:BgIbCAISAwoBCBIDCgEIEgMKAQgSAwoBCBIDCgEIAQAJZGVsZWdhdGVzCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMCD3NldHVwX2RlbGVnYXRlcwIjM01zS2E1aW9BZ2hpZFczQ0ZZV1R1WmVhNTlqYlV6c2hUelcFAWkBEnJlcXVlc3RSZWJhbGFuY2luZwEFcmViSWQEB3Bvb2xTdHIJAKUIAQgFAWkGY2FsbGVyAwkBAiE9AgkAmggCBQR0aGlzCQCsAgICE3JlYmFsYW5jaW5nX3N0YXR1c18FBXJlYklkBQR1bml0CQACAQIacmViYWxhbmNpbmcgYWxyZWFkeSBleGlzdHMJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICAhVwb29sX2xhc3RSZWJhbGFuY2luZ18FB3Bvb2xTdHIFBXJlYklkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgICE3JlYmFsYW5jaW5nX3N0YXR1c18FBXJlYklkAAEFA25pbAFpARJhcHByb3ZlUmViYWxhbmNpbmcBBXJlYklkAwkAAAIJALMJAgUJZGVsZWdhdGVzCQClCAEIBQFpBmNhbGxlcgUEdW5pdAkAAgECHGF2YWlsYWJsZSBvbmx5IGZvciBkZWxlZ2F0ZXMJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgITcmViYWxhbmNpbmdfc3RhdHVzXwUFcmViSWQAAgUDbmlsAWkBEmRlY2xpbmVSZWJhbGFuY2luZwEFcmViSWQDCQAAAgkAswkCBQlkZWxlZ2F0ZXMJAKUIAQgFAWkGY2FsbGVyBQR1bml0CQACAQIcYXZhaWxhYmxlIG9ubHkgZm9yIGRlbGVnYXRlcwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICAhNyZWJhbGFuY2luZ19zdGF0dXNfBQVyZWJJZAAABQNuaWwBaQEVbm90aWZ5UmViYWxhbmNpbmdEb25lAQVyZWJJZAQHcG9vbFN0cgkApQgBCAUBaQZjYWxsZXIDCQECIT0CCQCaCAIFBHRoaXMJAKwCAgITcmViYWxhbmNpbmdfc3RhdHVzXwUFcmViSWQAAgkAAgECHXJlYmFsYW5jaW5nIGlzIG5vdCBpbiBwcm9jZXNzAwkBAiE9AgkAnQgCBQR0aGlzCQCsAgICFXBvb2xfbGFzdFJlYmFsYW5jaW5nXwUHcG9vbFN0cgUFcmViSWQJAAIBAiF0aGlzIHBvb2wgZG9lc24ndCBydW4gcmViYWxhbmNpbmcJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgITcmViYWxhbmNpbmdfc3RhdHVzXwUFcmViSWQAAwUDbmlsAWkBC2FkZERlbGVnYXRlAQdhZGRyZXNzAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIiYXZhaWxhYmxlIG9ubHkgZm9yIHNlbGYgaW52b2NhdGlvbgkAzAgCCQELU3RyaW5nRW50cnkCAg9zZXR1cF9kZWxlZ2F0ZXMJAKwCAgkArAICBQlkZWxlZ2F0ZXMCASwFB2FkZHJlc3MFA25pbAECdHgBBnZlcmlmeQAJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXnYjNcB", "chainId": 84, "height": 3083029, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 6 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let delegates = valueOrElse(getString(this, "setup_delegates"), "3MsKa5ioAghidW3CFYWTuZea59jbUzshTzW") | |
5 | + | ||
6 | + | @Callable(i) | |
7 | + | func requestRebalancing (rebId) = { | |
8 | + | let poolStr = toString(i.caller) | |
9 | + | if ((getInteger(this, ("rebalancing_status_" + rebId)) != unit)) | |
10 | + | then throw("rebalancing already exists") | |
11 | + | else [StringEntry(("pool_lastRebalancing_" + poolStr), rebId), IntegerEntry(("rebalancing_status_" + rebId), 1)] | |
12 | + | } | |
13 | + | ||
14 | + | ||
15 | + | ||
16 | + | @Callable(i) | |
17 | + | func approveRebalancing (rebId) = if ((indexOf(delegates, toString(i.caller)) == unit)) | |
18 | + | then throw("available only for delegates") | |
19 | + | else [IntegerEntry(("rebalancing_status_" + rebId), 2)] | |
20 | + | ||
21 | + | ||
22 | + | ||
23 | + | @Callable(i) | |
24 | + | func declineRebalancing (rebId) = if ((indexOf(delegates, toString(i.caller)) == unit)) | |
25 | + | then throw("available only for delegates") | |
26 | + | else [IntegerEntry(("rebalancing_status_" + rebId), 0)] | |
27 | + | ||
28 | + | ||
29 | + | ||
30 | + | @Callable(i) | |
31 | + | func notifyRebalancingDone (rebId) = { | |
32 | + | let poolStr = toString(i.caller) | |
33 | + | if ((getInteger(this, ("rebalancing_status_" + rebId)) != 2)) | |
34 | + | then throw("rebalancing is not in process") | |
35 | + | else if ((getString(this, ("pool_lastRebalancing_" + poolStr)) != rebId)) | |
36 | + | then throw("this pool doesn't run rebalancing") | |
37 | + | else [IntegerEntry(("rebalancing_status_" + rebId), 3)] | |
38 | + | } | |
39 | + | ||
40 | + | ||
41 | + | ||
42 | + | @Callable(i) | |
43 | + | func addDelegate (address) = if ((i.caller != this)) | |
44 | + | then throw("available only for self invocation") | |
45 | + | else [StringEntry("setup_delegates", ((delegates + ",") + address))] | |
46 | + | ||
47 | + | ||
48 | + | @Verifier(tx) | |
49 | + | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
50 | + |
github/deemru/w8io/3ef1775 18.31 ms ◑