tx · D6hqc5WY2RqpSkxEymgAchSjqak3Dmh9Cu76BqHnUrZr 3PL1kxCTN5NxPi7TTgeeqsiX4PyFhMzbcqZ: -0.01000000 Waves 2022.12.15 22:08 [3427294] smart account 3PL1kxCTN5NxPi7TTgeeqsiX4PyFhMzbcqZ > SELF 0.00000000 Waves
{ "type": 13, "id": "D6hqc5WY2RqpSkxEymgAchSjqak3Dmh9Cu76BqHnUrZr", "fee": 1000000, "feeAssetId": null, "timestamp": 1671131343726, "version": 1, "sender": "3PL1kxCTN5NxPi7TTgeeqsiX4PyFhMzbcqZ", "senderPublicKey": "BCEM1KN6H9sUq6xsPnUEsdJiKWRZFfbnGU3Fr8AajX3M", "proofs": [ "3XkDTBzWbyxX4DARRTLKpxboXtiReLS5SwvYsgWXWiz17u7ncmywhybQQzkp3ARi6kMmqoEAPhxhxRrXHU6McUjd" ], "script": "base64:BgIICAISABIAEgABAAhpbXBvcnRMcACAlOvcAwMBaQEBYQAEDXZlc3RpbmdIZWlnaHQJAGgCCQBpAgUGaGVpZ2h0AKALAKALBAdiYWxhbmNlCQELdmFsdWVPckVsc2UCCQCaCAIJAQdBZGRyZXNzAQEaAVf/DgRPtOqUtOEu7yScgVgrOf1qHN/8sHIJALkJAgkAzAgCAg9nbG9iYWxfaW1wb3J0ZWQJAMwIAgIjM1BHQ2tySEJ4Rk1pN3R6MXhxbnhnQnBlTnZuNUU0TTRnOFMJAMwIAgkApAMBBQ12ZXN0aW5nSGVpZ2h0BQNuaWwCAV8AAAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECDUFjY2VzcyBEZW5pZWQDCQECIT0CBQ12ZXN0aW5nSGVpZ2h0BQZoZWlnaHQJAAIBAgZGYWlsZWQDCQBnAgkAZAIFB2JhbGFuY2UFCGltcG9ydExwAJW0r6ANCQACAQIGRmFpbGVkBAFyCQD8BwQJAQdBZGRyZXNzAQEaAVdewZYZMMmiQ3hGadYm1vHmuEPQvfZMHrgCE3JlcGxlbmlzaFdpdGhBdG9rZW4FA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgEg1oaacWthwTdC30x+4yrVGXT/80n5kiC/TDA74pgCkbEFCGltcG9ydExwBQNuaWwDCQAAAgUBcgUBcgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBAWIAAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQINQWNjZXNzIERlbmllZAQBcgkA/AcECQEHQWRkcmVzcwEBGgFXdRLdk4IPW94ldhU5y0nVH1MoCcTocV4nAg1jb252ZXJ0VG9VU0ROBQNuaWwFA25pbAMJAAACBQFyBQFyBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEBYwADCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAg1BY2Nlc3MgRGVuaWVkBAFyCQD8BwQJAQdBZGRyZXNzAQEaAVd1Et2Tgg9b3iV2FTnLSdUfUygJxOhxXicCFXdpdGhkcmF3VmVzdGVkQWxsVVNETgkAzAgCBwkAzAgCBgUDbmlsBQNuaWwDCQAAAgUBcgUBcgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJ0eAEGdmVyaWZ5AAQHJG1hdGNoMAUCdHgDCQABAgUHJG1hdGNoMAIXSW52b2tlU2NyaXB0VHJhbnNhY3Rpb24EA2ludgUHJG1hdGNoMAMJAAACCQCkCAEIBQNpbnYEZEFwcAUEdGhpcwYJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXkJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXnoHuEm", "chainId": 87, "height": 3427294, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HxFaoWc32gezT9oq17gcLr1Emg79XGtbGRiYm7SDjU7T Next: Frt7NBnbiav9rjUaeWGxL58bjek7guoK7iz5mwgPA2eR Diff:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let viresMain = Address(base58'3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT') | |
5 | - | ||
6 | - | let viresVesting = Address(base58'3PCbvPVQfSvVu88ip8Fm5YjwJhjEYk1Txhk') | |
7 | - | ||
8 | - | let usdcLp = base58'FSRHtSyXRXQjzQLRtmaqFpBDDCNjY8PU8KNtwoGXVBmr' | |
4 | + | let importLp = 1000000000 | |
9 | 5 | ||
10 | 6 | @Callable(i) | |
11 | - | func a () = if ((i.caller != this)) | |
12 | - | then throw("Access Denied") | |
13 | - | else { | |
14 | - | let lpBalance = assetBalance(this, usdcLp) | |
15 | - | let truncatedLpBalance = if ((1000000000 > lpBalance)) | |
16 | - | then lpBalance | |
17 | - | else 1000000000 | |
18 | - | let call = invoke(viresMain, "replenishWithAtoken", nil, [AttachedPayment(usdcLp, truncatedLpBalance)]) | |
19 | - | if ((call == call)) | |
20 | - | then nil | |
21 | - | else throw("Strict value is not equal to itself.") | |
22 | - | } | |
7 | + | func a () = { | |
8 | + | let vestingHeight = ((height / 1440) * 1440) | |
9 | + | let balance = valueOrElse(getInteger(Address(base58'3PRBVq52csUvTx77NYwLTULrt2e9jdsHfRB'), makeString(["global_imported", "3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S", toString(vestingHeight)], "_")), 0) | |
10 | + | if ((i.caller != this)) | |
11 | + | then throw("Access Denied") | |
12 | + | else if ((vestingHeight != height)) | |
13 | + | then throw("Failed") | |
14 | + | else if (((balance + importLp) >= 3557546517)) | |
15 | + | then throw("Failed") | |
16 | + | else { | |
17 | + | let r = invoke(Address(base58'3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT'), "replenishWithAtoken", nil, [AttachedPayment(base58'FSRHtSyXRXQjzQLRtmaqFpBDDCNjY8PU8KNtwoGXVBmr', importLp)]) | |
18 | + | if ((r == r)) | |
19 | + | then nil | |
20 | + | else throw("Strict value is not equal to itself.") | |
21 | + | } | |
22 | + | } | |
23 | 23 | ||
24 | 24 | ||
25 | 25 | ||
27 | 27 | func b () = if ((i.caller != this)) | |
28 | 28 | then throw("Access Denied") | |
29 | 29 | else { | |
30 | - | let | |
31 | - | if (( | |
30 | + | let r = invoke(Address(base58'3PCbvPVQfSvVu88ip8Fm5YjwJhjEYk1Txhk'), "convertToUSDN", nil, nil) | |
31 | + | if ((r == r)) | |
32 | 32 | then nil | |
33 | 33 | else throw("Strict value is not equal to itself.") | |
34 | 34 | } | |
39 | 39 | func c () = if ((i.caller != this)) | |
40 | 40 | then throw("Access Denied") | |
41 | 41 | else { | |
42 | - | let | |
43 | - | if (( | |
42 | + | let r = invoke(Address(base58'3PCbvPVQfSvVu88ip8Fm5YjwJhjEYk1Txhk'), "withdrawVestedAllUSDN", [false, true], nil) | |
43 | + | if ((r == r)) | |
44 | 44 | then nil | |
45 | 45 | else throw("Strict value is not equal to itself.") | |
46 | 46 | } |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let viresMain = Address(base58'3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT') | |
5 | - | ||
6 | - | let viresVesting = Address(base58'3PCbvPVQfSvVu88ip8Fm5YjwJhjEYk1Txhk') | |
7 | - | ||
8 | - | let usdcLp = base58'FSRHtSyXRXQjzQLRtmaqFpBDDCNjY8PU8KNtwoGXVBmr' | |
4 | + | let importLp = 1000000000 | |
9 | 5 | ||
10 | 6 | @Callable(i) | |
11 | - | func a () = if ((i.caller != this)) | |
12 | - | then throw("Access Denied") | |
13 | - | else { | |
14 | - | let lpBalance = assetBalance(this, usdcLp) | |
15 | - | let truncatedLpBalance = if ((1000000000 > lpBalance)) | |
16 | - | then lpBalance | |
17 | - | else 1000000000 | |
18 | - | let call = invoke(viresMain, "replenishWithAtoken", nil, [AttachedPayment(usdcLp, truncatedLpBalance)]) | |
19 | - | if ((call == call)) | |
20 | - | then nil | |
21 | - | else throw("Strict value is not equal to itself.") | |
22 | - | } | |
7 | + | func a () = { | |
8 | + | let vestingHeight = ((height / 1440) * 1440) | |
9 | + | let balance = valueOrElse(getInteger(Address(base58'3PRBVq52csUvTx77NYwLTULrt2e9jdsHfRB'), makeString(["global_imported", "3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S", toString(vestingHeight)], "_")), 0) | |
10 | + | if ((i.caller != this)) | |
11 | + | then throw("Access Denied") | |
12 | + | else if ((vestingHeight != height)) | |
13 | + | then throw("Failed") | |
14 | + | else if (((balance + importLp) >= 3557546517)) | |
15 | + | then throw("Failed") | |
16 | + | else { | |
17 | + | let r = invoke(Address(base58'3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT'), "replenishWithAtoken", nil, [AttachedPayment(base58'FSRHtSyXRXQjzQLRtmaqFpBDDCNjY8PU8KNtwoGXVBmr', importLp)]) | |
18 | + | if ((r == r)) | |
19 | + | then nil | |
20 | + | else throw("Strict value is not equal to itself.") | |
21 | + | } | |
22 | + | } | |
23 | 23 | ||
24 | 24 | ||
25 | 25 | ||
26 | 26 | @Callable(i) | |
27 | 27 | func b () = if ((i.caller != this)) | |
28 | 28 | then throw("Access Denied") | |
29 | 29 | else { | |
30 | - | let | |
31 | - | if (( | |
30 | + | let r = invoke(Address(base58'3PCbvPVQfSvVu88ip8Fm5YjwJhjEYk1Txhk'), "convertToUSDN", nil, nil) | |
31 | + | if ((r == r)) | |
32 | 32 | then nil | |
33 | 33 | else throw("Strict value is not equal to itself.") | |
34 | 34 | } | |
35 | 35 | ||
36 | 36 | ||
37 | 37 | ||
38 | 38 | @Callable(i) | |
39 | 39 | func c () = if ((i.caller != this)) | |
40 | 40 | then throw("Access Denied") | |
41 | 41 | else { | |
42 | - | let | |
43 | - | if (( | |
42 | + | let r = invoke(Address(base58'3PCbvPVQfSvVu88ip8Fm5YjwJhjEYk1Txhk'), "withdrawVestedAllUSDN", [false, true], nil) | |
43 | + | if ((r == r)) | |
44 | 44 | then nil | |
45 | 45 | else throw("Strict value is not equal to itself.") | |
46 | 46 | } | |
47 | 47 | ||
48 | 48 | ||
49 | 49 | @Verifier(tx) | |
50 | 50 | func verify () = match tx { | |
51 | 51 | case inv: InvokeScriptTransaction => | |
52 | 52 | if ((addressFromRecipient(inv.dApp) == this)) | |
53 | 53 | then true | |
54 | 54 | else sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
55 | 55 | case _ => | |
56 | 56 | sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
57 | 57 | } | |
58 | 58 |
github/deemru/w8io/3ef1775 26.08 ms ◑