tx · 6afjE2GJ9yrFhZynkCRYQMpTg4h59YgJNMsjumUhWxLP
3N4aFcsnij7Y1qGaQTLFNN2px73fHsXQHe9: -0.03700000 Waves
2022.10.06 10:42 [2260170] smart account 3N4aFcsnij7Y1qGaQTLFNN2px73fHsXQHe9 > SELF 0.00000000 Waves
{
"type": 13,
"id": "6afjE2GJ9yrFhZynkCRYQMpTg4h59YgJNMsjumUhWxLP",
"fee": 3700000,
"feeAssetId": null,
"timestamp": 1665042166528,
"version": 2,
"chainId": 84,
"sender": "3N4aFcsnij7Y1qGaQTLFNN2px73fHsXQHe9",
"senderPublicKey": "9tSn5bcPwQj2eR4oxkB2oUpmEoBqc2on24JrNhCgFoTK",
"proofs": [
"59uBek37EHVRJALjpxCxh6VNHXgWD5a81ia3gCK4qaBimNiskjqR3J2JpzpJem54yBCvLN3FM8fWE9UW1fabTezZ"
],
"script": "base64:BgIQCAISAwoBCBIDCgEBEgASABQAC2tfaW5zdXJhbmNlAgtrX2luc3VyYW5jZQAUa19jb29yZGluYXRvckFkZHJlc3MCFGtfY29vcmRpbmF0b3JBZGRyZXNzAAVrX2FtbQIFa19hbW0AD2tfYWRtaW5fYWRkcmVzcwIPa19hZG1pbl9hZGRyZXNzABJrX2FkbWluX3B1YmxpY19rZXkCEmtfYWRtaW5fcHVibGljX2tleQANa19xdW90ZV9hc3NldAINa19xdW90ZV9hc3NldAAPa19xdW90ZV9zdGFraW5nAg9rX3F1b3RlX3N0YWtpbmcAEWtfbWFuYWdlcl9hZGRyZXNzAhFrX21hbmFnZXJfYWRkcmVzcwANa19pbml0aWFsaXplZAINa19pbml0aWFsaXplZAEOdG9Db21wb3NpdGVLZXkCBF9rZXkIX2FkZHJlc3MJAKwCAgkArAICBQRfa2V5AgFfBQhfYWRkcmVzcwEJaW5zdXJhbmNlAAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQtrX2luc3VyYW5jZQAAAQtjb29yZGluYXRvcgAJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwUUa19jb29yZGluYXRvckFkZHJlc3MCE0Nvb3JkaW5hdG9yIG5vdCBzZXQCE0Nvb3JkaW5hdG9yIG5vdCBzZXQBC2lzV2hpdGVsaXN0AQhfYWRkcmVzcwkBC3ZhbHVlT3JFbHNlAgkAmwgCCQELY29vcmRpbmF0b3IACQEOdG9Db21wb3NpdGVLZXkCBQVrX2FtbQUIX2FkZHJlc3MHAQtpbml0aWFsaXplZAAJAQt2YWx1ZU9yRWxzZQIJAJsIAgUEdGhpcwUNa19pbml0aWFsaXplZAcBDGFkbWluQWRkcmVzcwAJAKYIAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIJAQtjb29yZGluYXRvcgAFD2tfYWRtaW5fYWRkcmVzcwIVQWRtaW4gYWRkcmVzcyBub3Qgc2V0AQ5hZG1pblB1YmxpY0tleQAJANkEAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIJAQtjb29yZGluYXRvcgAFEmtfYWRtaW5fcHVibGljX2tleQIYQWRtaW4gcHVibGljIGtleSBub3Qgc2V0AQpxdW90ZUFzc2V0AAkA2QQBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgkBC2Nvb3JkaW5hdG9yAAUNa19xdW90ZV9hc3NldAITUXVvdGUgYXNzZXQgbm90IHNldAERcXVvdGVBc3NldFN0YWtpbmcACQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIJAQtjb29yZGluYXRvcgAFD2tfcXVvdGVfc3Rha2luZwIbUXVvdGUgYXNzZXQgc3Rha2luZyBub3Qgc2V0AhtRdW90ZSBhc3NldCBzdGFraW5nIG5vdCBzZXQBDm1hbmFnZXJBZGRyZXNzAAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCCQELY29vcmRpbmF0b3IABRFrX21hbmFnZXJfYWRkcmVzcwIPTWFuYWdlciBub3Qgc2V0Ag9NYW5hZ2VyIG5vdCBzZXQBD3VwZGF0ZUluc3VyYW5jZQEBaQkAzAgCCQEMSW50ZWdlckVudHJ5AgULa19pbnN1cmFuY2UFAWkFA25pbAQBaQEKaW5pdGlhbGl6ZQEMX2Nvb3JkaW5hdG9yAwkBC2luaXRpYWxpemVkAAkAAgECE0FscmVhZHkgaW5pdGlhbGl6ZWQJAMwIAgkBC1N0cmluZ0VudHJ5AgUUa19jb29yZGluYXRvckFkZHJlc3MFDF9jb29yZGluYXRvcgkAzAgCCQEMQm9vbGVhbkVudHJ5AgUNa19pbml0aWFsaXplZAYFA25pbAFpAQh3aXRoZHJhdwEHX2Ftb3VudAMDAwkBASEBCQELaXNXaGl0ZWxpc3QBCQClCAEIBQFpBmNhbGxlcgYJAQEhAQkBC2luaXRpYWxpemVkAAYJAGYCBQdfYW1vdW50CQEJaW5zdXJhbmNlAAkAAgEJAKwCAgkArAICCQCsAgICGEludmFsaWQgd2l0aGRyYXcgcGFyYW1zIAkApAMBBQdfYW1vdW50AgMgPiAJAKQDAQkBCWluc3VyYW5jZQAEB3Vuc3Rha2UJAPwHBAkBDm1hbmFnZXJBZGRyZXNzAAIId2l0aGRyYXcJAMwIAgkA2AQBCQEKcXVvdGVBc3NldAAJAMwIAgUHX2Ftb3VudAUDbmlsBQNuaWwDCQAAAgUHdW5zdGFrZQUHdW5zdGFrZQkAzggCCQEPdXBkYXRlSW5zdXJhbmNlAQkAZQIJAQlpbnN1cmFuY2UABQdfYW1vdW50CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUHX2Ftb3VudAkBCnF1b3RlQXNzZXQABQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEHZGVwb3NpdAAEB19hbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50AwMDCQECIT0CCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQJAQpxdW90ZUFzc2V0AAYJAQEhAQkBC2luaXRpYWxpemVkAAYDCQEBIQEJAQtpc1doaXRlbGlzdAEJAKUIAQgFAWkGY2FsbGVyCQECIT0CCAUBaQZjYWxsZXIJAQxhZG1pbkFkZHJlc3MABwkAAgECFkludmFsaWQgZGVwb3NpdCBwYXJhbXMEBXN0YWtlCQD8BwQJAQ5tYW5hZ2VyQWRkcmVzcwACB2RlcG9zaXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkBCnF1b3RlQXNzZXQABQdfYW1vdW50BQNuaWwDCQAAAgUFc3Rha2UFBXN0YWtlCQEPdXBkYXRlSW5zdXJhbmNlAQkAZAIJAQlpbnN1cmFuY2UABQdfYW1vdW50CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEG1pZ3JhdGVMaXF1aWRpdHkABAZhbW91bnQJAQlpbnN1cmFuY2UABAd1bnN0YWtlCQD8BwQJARFxdW90ZUFzc2V0U3Rha2luZwACDnVubG9ja05ldXRyaW5vCQDMCAIFBmFtb3VudAkAzAgCCQDYBAEJAQpxdW90ZUFzc2V0AAUDbmlsBQNuaWwDCQAAAgUHdW5zdGFrZQUHdW5zdGFrZQQFc3Rha2UJAPwHBAkBDm1hbmFnZXJBZGRyZXNzAAIHZGVwb3NpdAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQEKcXVvdGVBc3NldAAFBmFtb3VudAUDbmlsAwkAAAIFBXN0YWtlBQVzdGFrZQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJ0eAEGdmVyaWZ5AAkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAkBDmFkbWluUHVibGljS2V5AJp4IHE=",
"height": 2260170,
"applicationStatus": "succeeded",
"spentComplexity": 0
}
View: original | compacted
Prev: AzwYdTNQpQJC2qTbgndBAFuYFZhPrpWnETmrS1Hrh2or
Next: 2X8Wi8q659CMUgK4Uc9UTxRzqBFzq7MyFUkiw9Vag4Ad
Diff:
Old | New | | Differences |
---|
1 | | - | {-# STDLIB_VERSION 5 #-} |
---|
| 1 | + | {-# STDLIB_VERSION 6 #-} |
---|
2 | 2 | | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | 3 | | {-# CONTENT_TYPE DAPP #-} |
---|
4 | 4 | | let a = "k_insurance" |
---|
|
15 | 15 | | |
---|
16 | 16 | | let g = "k_quote_staking" |
---|
17 | 17 | | |
---|
18 | | - | let h = "k_staking_address" |
---|
| 18 | + | let h = "k_manager_address" |
---|
19 | 19 | | |
---|
20 | 20 | | let i = "k_initialized" |
---|
21 | 21 | | |
---|
|
25 | 25 | | func m () = valueOrElse(getInteger(this, a), 0) |
---|
26 | 26 | | |
---|
27 | 27 | | |
---|
28 | | - | func n () = valueOrErrorMessage(addressFromString(getStringValue(this, b)), "Coordinator not set") |
---|
| 28 | + | func n () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, b), "Coordinator not set")), "Coordinator not set") |
---|
29 | 29 | | |
---|
30 | 30 | | |
---|
31 | 31 | | func o (l) = valueOrElse(getBoolean(n(), j(c, l)), false) |
---|
|
34 | 34 | | func p () = valueOrElse(getBoolean(this, i), false) |
---|
35 | 35 | | |
---|
36 | 36 | | |
---|
37 | | - | func q () = addressFromString(getStringValue(n(), d)) |
---|
| 37 | + | func q () = addressFromString(valueOrErrorMessage(getString(n(), d), "Admin address not set")) |
---|
38 | 38 | | |
---|
39 | 39 | | |
---|
40 | | - | func r () = fromBase58String(getStringValue(n(), e)) |
---|
| 40 | + | func r () = fromBase58String(valueOrErrorMessage(getString(n(), e), "Admin public key not set")) |
---|
41 | 41 | | |
---|
42 | 42 | | |
---|
43 | | - | func s () = fromBase58String(getStringValue(n(), f)) |
---|
| 43 | + | func s () = fromBase58String(valueOrErrorMessage(getString(n(), f), "Quote asset not set")) |
---|
44 | 44 | | |
---|
45 | 45 | | |
---|
46 | | - | func t () = valueOrErrorMessage(addressFromString(getStringValue(n(), g)), "Quote asset staking not set") |
---|
| 46 | + | func t () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(n(), g), "Quote asset staking not set")), "Quote asset staking not set") |
---|
47 | 47 | | |
---|
48 | 48 | | |
---|
49 | | - | func u () = valueOrErrorMessage(addressFromString(getStringValue(n(), h)), "Insurance not set") |
---|
| 49 | + | func u () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(n(), h), "Manager not set")), "Manager not set") |
---|
50 | 50 | | |
---|
51 | 51 | | |
---|
52 | 52 | | func v (w) = [IntegerEntry(a, w)] |
---|
|
67 | 67 | | else (y > m())) |
---|
68 | 68 | | then throw(((("Invalid withdraw params " + toString(y)) + " > ") + toString(m()))) |
---|
69 | 69 | | else { |
---|
70 | | - | let z = invoke(t(), "unlockNeutrino", [y, toBase58String(s())], nil) |
---|
| 70 | + | let z = invoke(u(), "withdraw", [toBase58String(s()), y], nil) |
---|
71 | 71 | | if ((z == z)) |
---|
72 | 72 | | then (v((m() - y)) ++ [ScriptTransfer(w.caller, y, s())]) |
---|
73 | 73 | | else throw("Strict value is not equal to itself.") |
---|
|
87 | 87 | | else false) |
---|
88 | 88 | | then throw("Invalid deposit params") |
---|
89 | 89 | | else { |
---|
90 | | - | let A = invoke(t(), "lockNeutrino", nil, [AttachedPayment(s(), y)]) |
---|
| 90 | + | let A = invoke(u(), "deposit", nil, [AttachedPayment(s(), y)]) |
---|
91 | 91 | | if ((A == A)) |
---|
92 | 92 | | then v((m() + y)) |
---|
93 | 93 | | else throw("Strict value is not equal to itself.") |
---|
|
95 | 95 | | } |
---|
96 | 96 | | |
---|
97 | 97 | | |
---|
98 | | - | @Verifier(B) |
---|
99 | | - | func C () = sigVerify(B.bodyBytes, B.proofs[0], r()) |
---|
| 98 | + | |
---|
| 99 | + | @Callable(w) |
---|
| 100 | + | func migrateLiquidity () = { |
---|
| 101 | + | let B = m() |
---|
| 102 | + | let z = invoke(t(), "unlockNeutrino", [B, toBase58String(s())], nil) |
---|
| 103 | + | if ((z == z)) |
---|
| 104 | + | then { |
---|
| 105 | + | let A = invoke(u(), "deposit", nil, [AttachedPayment(s(), B)]) |
---|
| 106 | + | if ((A == A)) |
---|
| 107 | + | then nil |
---|
| 108 | + | else throw("Strict value is not equal to itself.") |
---|
| 109 | + | } |
---|
| 110 | + | else throw("Strict value is not equal to itself.") |
---|
| 111 | + | } |
---|
| 112 | + | |
---|
| 113 | + | |
---|
| 114 | + | @Verifier(C) |
---|
| 115 | + | func D () = sigVerify(C.bodyBytes, C.proofs[0], r()) |
---|
100 | 116 | | |
---|
Full:
Old | New | | Differences |
---|
1 | | - | {-# STDLIB_VERSION 5 #-} |
---|
| 1 | + | {-# STDLIB_VERSION 6 #-} |
---|
2 | 2 | | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | 3 | | {-# CONTENT_TYPE DAPP #-} |
---|
4 | 4 | | let a = "k_insurance" |
---|
5 | 5 | | |
---|
6 | 6 | | let b = "k_coordinatorAddress" |
---|
7 | 7 | | |
---|
8 | 8 | | let c = "k_amm" |
---|
9 | 9 | | |
---|
10 | 10 | | let d = "k_admin_address" |
---|
11 | 11 | | |
---|
12 | 12 | | let e = "k_admin_public_key" |
---|
13 | 13 | | |
---|
14 | 14 | | let f = "k_quote_asset" |
---|
15 | 15 | | |
---|
16 | 16 | | let g = "k_quote_staking" |
---|
17 | 17 | | |
---|
18 | | - | let h = "k_staking_address" |
---|
| 18 | + | let h = "k_manager_address" |
---|
19 | 19 | | |
---|
20 | 20 | | let i = "k_initialized" |
---|
21 | 21 | | |
---|
22 | 22 | | func j (k,l) = ((k + "_") + l) |
---|
23 | 23 | | |
---|
24 | 24 | | |
---|
25 | 25 | | func m () = valueOrElse(getInteger(this, a), 0) |
---|
26 | 26 | | |
---|
27 | 27 | | |
---|
28 | | - | func n () = valueOrErrorMessage(addressFromString(getStringValue(this, b)), "Coordinator not set") |
---|
| 28 | + | func n () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, b), "Coordinator not set")), "Coordinator not set") |
---|
29 | 29 | | |
---|
30 | 30 | | |
---|
31 | 31 | | func o (l) = valueOrElse(getBoolean(n(), j(c, l)), false) |
---|
32 | 32 | | |
---|
33 | 33 | | |
---|
34 | 34 | | func p () = valueOrElse(getBoolean(this, i), false) |
---|
35 | 35 | | |
---|
36 | 36 | | |
---|
37 | | - | func q () = addressFromString(getStringValue(n(), d)) |
---|
| 37 | + | func q () = addressFromString(valueOrErrorMessage(getString(n(), d), "Admin address not set")) |
---|
38 | 38 | | |
---|
39 | 39 | | |
---|
40 | | - | func r () = fromBase58String(getStringValue(n(), e)) |
---|
| 40 | + | func r () = fromBase58String(valueOrErrorMessage(getString(n(), e), "Admin public key not set")) |
---|
41 | 41 | | |
---|
42 | 42 | | |
---|
43 | | - | func s () = fromBase58String(getStringValue(n(), f)) |
---|
| 43 | + | func s () = fromBase58String(valueOrErrorMessage(getString(n(), f), "Quote asset not set")) |
---|
44 | 44 | | |
---|
45 | 45 | | |
---|
46 | | - | func t () = valueOrErrorMessage(addressFromString(getStringValue(n(), g)), "Quote asset staking not set") |
---|
| 46 | + | func t () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(n(), g), "Quote asset staking not set")), "Quote asset staking not set") |
---|
47 | 47 | | |
---|
48 | 48 | | |
---|
49 | | - | func u () = valueOrErrorMessage(addressFromString(getStringValue(n(), h)), "Insurance not set") |
---|
| 49 | + | func u () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(n(), h), "Manager not set")), "Manager not set") |
---|
50 | 50 | | |
---|
51 | 51 | | |
---|
52 | 52 | | func v (w) = [IntegerEntry(a, w)] |
---|
53 | 53 | | |
---|
54 | 54 | | |
---|
55 | 55 | | @Callable(w) |
---|
56 | 56 | | func initialize (x) = if (p()) |
---|
57 | 57 | | then throw("Already initialized") |
---|
58 | 58 | | else [StringEntry(b, x), BooleanEntry(i, true)] |
---|
59 | 59 | | |
---|
60 | 60 | | |
---|
61 | 61 | | |
---|
62 | 62 | | @Callable(w) |
---|
63 | 63 | | func withdraw (y) = if (if (if (!(o(toString(w.caller)))) |
---|
64 | 64 | | then true |
---|
65 | 65 | | else !(p())) |
---|
66 | 66 | | then true |
---|
67 | 67 | | else (y > m())) |
---|
68 | 68 | | then throw(((("Invalid withdraw params " + toString(y)) + " > ") + toString(m()))) |
---|
69 | 69 | | else { |
---|
70 | | - | let z = invoke(t(), "unlockNeutrino", [y, toBase58String(s())], nil) |
---|
| 70 | + | let z = invoke(u(), "withdraw", [toBase58String(s()), y], nil) |
---|
71 | 71 | | if ((z == z)) |
---|
72 | 72 | | then (v((m() - y)) ++ [ScriptTransfer(w.caller, y, s())]) |
---|
73 | 73 | | else throw("Strict value is not equal to itself.") |
---|
74 | 74 | | } |
---|
75 | 75 | | |
---|
76 | 76 | | |
---|
77 | 77 | | |
---|
78 | 78 | | @Callable(w) |
---|
79 | 79 | | func deposit () = { |
---|
80 | 80 | | let y = w.payments[0].amount |
---|
81 | 81 | | if (if (if ((w.payments[0].assetId != s())) |
---|
82 | 82 | | then true |
---|
83 | 83 | | else !(p())) |
---|
84 | 84 | | then true |
---|
85 | 85 | | else if (!(o(toString(w.caller)))) |
---|
86 | 86 | | then (w.caller != q()) |
---|
87 | 87 | | else false) |
---|
88 | 88 | | then throw("Invalid deposit params") |
---|
89 | 89 | | else { |
---|
90 | | - | let A = invoke(t(), "lockNeutrino", nil, [AttachedPayment(s(), y)]) |
---|
| 90 | + | let A = invoke(u(), "deposit", nil, [AttachedPayment(s(), y)]) |
---|
91 | 91 | | if ((A == A)) |
---|
92 | 92 | | then v((m() + y)) |
---|
93 | 93 | | else throw("Strict value is not equal to itself.") |
---|
94 | 94 | | } |
---|
95 | 95 | | } |
---|
96 | 96 | | |
---|
97 | 97 | | |
---|
98 | | - | @Verifier(B) |
---|
99 | | - | func C () = sigVerify(B.bodyBytes, B.proofs[0], r()) |
---|
| 98 | + | |
---|
| 99 | + | @Callable(w) |
---|
| 100 | + | func migrateLiquidity () = { |
---|
| 101 | + | let B = m() |
---|
| 102 | + | let z = invoke(t(), "unlockNeutrino", [B, toBase58String(s())], nil) |
---|
| 103 | + | if ((z == z)) |
---|
| 104 | + | then { |
---|
| 105 | + | let A = invoke(u(), "deposit", nil, [AttachedPayment(s(), B)]) |
---|
| 106 | + | if ((A == A)) |
---|
| 107 | + | then nil |
---|
| 108 | + | else throw("Strict value is not equal to itself.") |
---|
| 109 | + | } |
---|
| 110 | + | else throw("Strict value is not equal to itself.") |
---|
| 111 | + | } |
---|
| 112 | + | |
---|
| 113 | + | |
---|
| 114 | + | @Verifier(C) |
---|
| 115 | + | func D () = sigVerify(C.bodyBytes, C.proofs[0], r()) |
---|
100 | 116 | | |
---|