tx · HHaHCxKCU111sf2rm6h8UrKPq5H3wkpzqQmd2wDg8okE 3PHeFExuCuK2QkR64j83u2tVom4YJUUXYZA: -0.01000000 Waves 2023.01.19 15:04 [3477296] smart account 3PHeFExuCuK2QkR64j83u2tVom4YJUUXYZA > SELF 0.00000000 Waves
{ "type": 13, "id": "HHaHCxKCU111sf2rm6h8UrKPq5H3wkpzqQmd2wDg8okE", "fee": 1000000, "feeAssetId": null, "timestamp": 1674129884994, "version": 2, "chainId": 87, "sender": "3PHeFExuCuK2QkR64j83u2tVom4YJUUXYZA", "senderPublicKey": "2HQLGX6a8xxw6QLPKVnKhR7WNTSNiw4XboN8pYoCfwzR", "proofs": [ "4tKKzidy2KE4ZZiPKct6wmeUcPcxTpJjJHzB12zPDBRpD9RUBDHtBnniEJ6Fq5YaXjJqUrV7f17ZfTAbbkJqiV6g" ], "script": "base64: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dmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAQAAAAFpAQAAABRjbGFpbVRyZWFzdXJ5UmV3YXJkcwAAAAAEAAAACnd4QmFsYW5jZTAJAQAAAApnZXRCYWxhbmNlAAAAAQUAAAAEd3hJZAMJAAAAAAAAAgUAAAAKd3hCYWxhbmNlMAUAAAAKd3hCYWxhbmNlMAQAAAAEaW52MQkBAAAAB2NsYWltV1gAAAABAgAAACw5N3pIRnAxQzNjQjdxZnZ4OFh2NWYycldwOW5VU0c1VW5BYW1mUGNXNnR4ZgMJAAAAAAAAAgUAAAAEaW52MQUAAAAEaW52MQQAAAAEaW52MgkBAAAAB2NsYWltV1gAAAABAgAAACxFUGhkRWZtUWFOY0h5dkRtUkdobkxoZ2NKdEtaMmE0azNaQm1LV3RBRVd5SAMJAAAAAAAAAgUAAAAEaW52MgUAAAAEaW52MgQAAAAEaW52MwkBAAAAB2NsYWltV1gAAAABAgAAACxFTXNacHFjVDhOdU1ZWkNFUEh6dnJoUUNRS2hmWGpkZWVrWnZjV3BIc052aAMJAAAAAAAAAgUAAAAEaW52MwUAAAAEaW52MwQAAAAId3hFYXJuZWQJAABlAAAAAgkBAAAACmdldEJhbGFuY2UAAAABBQAAAAR3eElkBQAAAAp3eEJhbGFuY2UwAwkAAAAAAAACBQAAAAh3eEVhcm5lZAUAAAAId3hFYXJuZWQEAAAADmV4Y2hhbmdlUmVzdWx0CQEAAAAXZXhjaGFuZ2VBblNlbmRUb1N0YWtpbmcAAAADBQAAAAR3eElkBQAAAAdwbHV0b0lkBQAAAAh3eEVhcm5lZAMJAAAAAAAAAgUAAAAOZXhjaGFuZ2VSZXN1bHQFAAAADmV4Y2hhbmdlUmVzdWx0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAPXN0YXRzX2NsYWltZWRBdF9BdHF2NTlFWXpqRkd1aXRLVm5NUms2SDhGdWtqb1Yza3RQb3JiRXlzMjVvbl8JAAGkAAAAAQUAAAAGaGVpZ2h0BQAAAAh3eEVhcm5lZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAPc3RhdHNfbGFzdENsYWltBQAAAAZoZWlnaHQFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5M2IthQ==", "height": 3477296, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AjdQgS1YFWSGLujA4kLuqwLqFSmMzDG3rsnMth2biD5B Next: 35kZrpgjRGUm8SshvLQNPaf9htHcSpCznvBeg85YV6Vs Diff:
Old | New | Differences | |
---|---|---|---|
46 | 46 | } | |
47 | 47 | ||
48 | 48 | ||
49 | + | func claimWX (lpId) = { | |
50 | + | let evaluation = split({ | |
51 | + | let @ = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "claimWxREADONLY", [lpId, toString(this)], nil) | |
52 | + | if ($isInstanceOf(@, "String")) | |
53 | + | then @ | |
54 | + | else throw("Couldn't cast Any to String") | |
55 | + | }, "__") | |
56 | + | if ((evaluation == evaluation)) | |
57 | + | then { | |
58 | + | let claimInv = if (((parseIntValue(evaluation[3]) - parseIntValue(evaluation[4])) > 0)) | |
59 | + | then invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "claimWx", [lpId], nil) | |
60 | + | else unit | |
61 | + | if ((claimInv == claimInv)) | |
62 | + | then true | |
63 | + | else throw("Strict value is not equal to itself.") | |
64 | + | } | |
65 | + | else throw("Strict value is not equal to itself.") | |
66 | + | } | |
67 | + | ||
68 | + | ||
49 | 69 | @Callable(i) | |
50 | 70 | func claimTreasuryRewards () = { | |
51 | 71 | let wxBalance0 = getBalance(wxId) | |
52 | 72 | if ((wxBalance0 == wxBalance0)) | |
53 | 73 | then { | |
54 | - | let inv1 = | |
74 | + | let inv1 = claimWX("97zHFp1C3cB7qfvx8Xv5f2rWp9nUSG5UnAamfPcW6txf") | |
55 | 75 | if ((inv1 == inv1)) | |
56 | 76 | then { | |
57 | - | let inv2 = | |
77 | + | let inv2 = claimWX("EPhdEfmQaNcHyvDmRGhnLhgcJtKZ2a4k3ZBmKWtAEWyH") | |
58 | 78 | if ((inv2 == inv2)) | |
59 | 79 | then { | |
60 | - | let inv3 = | |
80 | + | let inv3 = claimWX("EMsZpqcT8NuMYZCEPHzvrhQCQKhfXjdeekZvcWpHsNvh") | |
61 | 81 | if ((inv3 == inv3)) | |
62 | 82 | then { | |
63 | 83 | let wxEarned = (getBalance(wxId) - wxBalance0) |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let wxId = base58'Atqv59EYzjFGuitKVnMRk6H8FukjoV3ktPorbEys25on' | |
5 | 5 | ||
6 | 6 | let usdnId = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p' | |
7 | 7 | ||
8 | 8 | let plutoId = base58'Ajso6nTTjptu2UHLx6hfSXVtHFtRBJCkKYd5SAyj7zf5' | |
9 | 9 | ||
10 | 10 | let plutoStakingAddress = "3P7dGTVZp8VLDYy3XEaUQbiqfi9cMK1Ly5q" | |
11 | 11 | ||
12 | 12 | func tryGetString (key) = match getString(this, key) { | |
13 | 13 | case b: String => | |
14 | 14 | b | |
15 | 15 | case _ => | |
16 | 16 | "" | |
17 | 17 | } | |
18 | 18 | ||
19 | 19 | ||
20 | 20 | func getAssetString (assetId) = match assetId { | |
21 | 21 | case b: ByteVector => | |
22 | 22 | toBase58String(b) | |
23 | 23 | case _ => | |
24 | 24 | "WAVES" | |
25 | 25 | } | |
26 | 26 | ||
27 | 27 | ||
28 | 28 | func getAssetBytes (assetIdStr) = if ((assetIdStr == "WAVES")) | |
29 | 29 | then unit | |
30 | 30 | else fromBase58String(assetIdStr) | |
31 | 31 | ||
32 | 32 | ||
33 | 33 | func getBalance (assetId) = match assetId { | |
34 | 34 | case x: Unit => | |
35 | 35 | wavesBalance(this).available | |
36 | 36 | case _ => | |
37 | 37 | assetBalance(this, value(assetId)) | |
38 | 38 | } | |
39 | 39 | ||
40 | 40 | ||
41 | 41 | func exchangeAnSendToStaking (asset0Id,asset1Id,amount0) = { | |
42 | 42 | let exchangeInvoke = invoke(Address(base58'3PLPCb3wF2H2gtzohoAjeWcGaMKEiJvtE5X'), "exchangeAndSendTo", [getAssetString(asset1Id), plutoStakingAddress], [AttachedPayment(asset0Id, amount0)]) | |
43 | 43 | if ((exchangeInvoke == exchangeInvoke)) | |
44 | 44 | then true | |
45 | 45 | else throw("Strict value is not equal to itself.") | |
46 | 46 | } | |
47 | 47 | ||
48 | 48 | ||
49 | + | func claimWX (lpId) = { | |
50 | + | let evaluation = split({ | |
51 | + | let @ = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "claimWxREADONLY", [lpId, toString(this)], nil) | |
52 | + | if ($isInstanceOf(@, "String")) | |
53 | + | then @ | |
54 | + | else throw("Couldn't cast Any to String") | |
55 | + | }, "__") | |
56 | + | if ((evaluation == evaluation)) | |
57 | + | then { | |
58 | + | let claimInv = if (((parseIntValue(evaluation[3]) - parseIntValue(evaluation[4])) > 0)) | |
59 | + | then invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "claimWx", [lpId], nil) | |
60 | + | else unit | |
61 | + | if ((claimInv == claimInv)) | |
62 | + | then true | |
63 | + | else throw("Strict value is not equal to itself.") | |
64 | + | } | |
65 | + | else throw("Strict value is not equal to itself.") | |
66 | + | } | |
67 | + | ||
68 | + | ||
49 | 69 | @Callable(i) | |
50 | 70 | func claimTreasuryRewards () = { | |
51 | 71 | let wxBalance0 = getBalance(wxId) | |
52 | 72 | if ((wxBalance0 == wxBalance0)) | |
53 | 73 | then { | |
54 | - | let inv1 = | |
74 | + | let inv1 = claimWX("97zHFp1C3cB7qfvx8Xv5f2rWp9nUSG5UnAamfPcW6txf") | |
55 | 75 | if ((inv1 == inv1)) | |
56 | 76 | then { | |
57 | - | let inv2 = | |
77 | + | let inv2 = claimWX("EPhdEfmQaNcHyvDmRGhnLhgcJtKZ2a4k3ZBmKWtAEWyH") | |
58 | 78 | if ((inv2 == inv2)) | |
59 | 79 | then { | |
60 | - | let inv3 = | |
80 | + | let inv3 = claimWX("EMsZpqcT8NuMYZCEPHzvrhQCQKhfXjdeekZvcWpHsNvh") | |
61 | 81 | if ((inv3 == inv3)) | |
62 | 82 | then { | |
63 | 83 | let wxEarned = (getBalance(wxId) - wxBalance0) | |
64 | 84 | if ((wxEarned == wxEarned)) | |
65 | 85 | then { | |
66 | 86 | let exchangeResult = exchangeAnSendToStaking(wxId, plutoId, wxEarned) | |
67 | 87 | if ((exchangeResult == exchangeResult)) | |
68 | 88 | then [IntegerEntry(("stats_claimedAt_Atqv59EYzjFGuitKVnMRk6H8FukjoV3ktPorbEys25on_" + toString(height)), wxEarned), IntegerEntry("stats_lastClaim", height)] | |
69 | 89 | else throw("Strict value is not equal to itself.") | |
70 | 90 | } | |
71 | 91 | else throw("Strict value is not equal to itself.") | |
72 | 92 | } | |
73 | 93 | else throw("Strict value is not equal to itself.") | |
74 | 94 | } | |
75 | 95 | else throw("Strict value is not equal to itself.") | |
76 | 96 | } | |
77 | 97 | else throw("Strict value is not equal to itself.") | |
78 | 98 | } | |
79 | 99 | else throw("Strict value is not equal to itself.") | |
80 | 100 | } | |
81 | 101 | ||
82 | 102 | ||
83 | 103 | @Verifier(tx) | |
84 | 104 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
85 | 105 |
github/deemru/w8io/3ef1775 30.54 ms ◑