tx · tSfw1P2akHbhJ9QhPMqfryhLfeC8d2FawK5AgqmZBCB 3PC9xNkxwtsRA9ep91EV67Mdpv1NT64r3Mg: -0.01000000 Waves 2022.02.15 02:23 [2989024] smart account 3PC9xNkxwtsRA9ep91EV67Mdpv1NT64r3Mg > SELF 0.00000000 Waves
{ "type": 13, "id": "tSfw1P2akHbhJ9QhPMqfryhLfeC8d2FawK5AgqmZBCB", "fee": 1000000, "feeAssetId": null, "timestamp": 1644880996177, "version": 2, "chainId": 87, "sender": "3PC9xNkxwtsRA9ep91EV67Mdpv1NT64r3Mg", "senderPublicKey": "6Fa9aS1f9Xfc6eYh1PjokfCqtYWxXCG8qcfTZ1WumZi5", "proofs": [ "26JzuHDe2pQDPGQhPDoMhdhtcgnosnae4qYRdPqmXRyR5n6TNLsSzDRJmYQQENQukDzBidDKBHpQuqaGPWbKbG5D" ], "script": "base64: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bmNlCQAD8AAAAAIFAAAABHRoaXMFAAAACXd4QXNzZXRJZAMJAAAAAAAAAgUAAAAJd3hCYWxhbmNlBQAAAAl3eEJhbGFuY2UEAAAAC2NsYWltV1hDYWxsCQAD/AAAAAQFAAAAC2RBcHBBZGRyZXNzAgAAAAdjbGFpbVd4CQAETAAAAAIFAAAACWxwQXNzZXRJZAUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAAC2NsYWltV1hDYWxsBQAAAAtjbGFpbVdYQ2FsbAQAAAAPY2xhaW1lZFdYQW1vdW50CQAAZQAAAAIJAAPwAAAAAgUAAAAEdGhpcwUAAAAJd3hBc3NldElkBQAAAAl3eEJhbGFuY2UDCQAAAAAAAAIFAAAAD2NsYWltZWRXWEFtb3VudAUAAAAPY2xhaW1lZFdYQW1vdW50BAAAABJ0b3RhbENsYWltZWRXWFBvb2wJAABkAAAAAgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB8AAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAABNjYWxsZXJBZGRyZXNzU3RyaW5nAgAAAAFfBQAAAAlscEFzc2V0SWQCAAAAEV90b3RhbF9jbGFpbWVkX3d4AAAAAAAAAAAABQAAAA9jbGFpbWVkV1hBbW91bnQEAAAADnRvdGFsQ2xhaW1lZFdYCQAAZAAAAAIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwIAAAAQdG90YWxfY2xhaW1lZF93eAAAAAAAAAAAAAUAAAAPY2xhaW1lZFdYQW1vdW50BAAAAAtsb2NrRmVlUmF0ZQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwIAAAAIbG9ja19mZWUEAAAAC3RlYW1GZWVSYXRlCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzAgAAAAh0ZWFtX2ZlZQQAAAAHbG9ja0ZlZQkAAGsAAAADBQAAAA9jbGFpbWVkV1hBbW91bnQFAAAAC2xvY2tGZWVSYXRlAAAAAAAAAABkBAAAAAd0ZWFtRmVlCQAAawAAAAMFAAAAD2NsYWltZWRXWEFtb3VudAUAAAALdGVhbUZlZVJhdGUAAAAAAAAAAGQEAAAAFXRvdGFsQ29sbGVjdGVkRmVl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QWxsb2NhdGlvbgUAAAAKd3hiQXNzZXRJZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAPdG90YWxfbG9ja2VkX3d4BQAAAA10b3RhbExvY2tlZFdYCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAABNjYWxsZXJBZGRyZXNzU3RyaW5nAgAAAAFfBQAAAAlscEFzc2V0SWQCAAAAEV90b3RhbF9jbGFpbWVkX3d4BQAAABJ0b3RhbENsYWltZWRXWFBvb2wJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAEHRvdGFsX2NsYWltZWRfd3gFAAAADnRvdGFsQ2xhaW1lZFdYCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAABNjYWxsZXJBZGRyZXNzU3RyaW5nAgAAAAFfBQAAAAlscEFzc2V0SWQCAAAAEl90b3RhbF9jbGFpbWVkX3d4YgUAAAATdG90YWxDbGFpbWVkV1hCUG9vbAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAARdG90YWxfY2xhaW1lZF93eGIFAAAAD3RvdGFsQ2xhaW1lZFdYQgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAATY2FsbGVyQWRkcmVzc1N0cmluZwIAAAABXwUAAAAJbHBBc3NldElkAgAAABRfdG90YWxfY29sbGVjdGVkX2ZlZQUAAAAVdG90YWxDb2xsZWN0ZWRGZWVQb29sCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABN0b3RhbF9jb2xsZWN0ZWRfZmVlBQAAABF0b3RhbENvbGxlY3RlZEZlZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAATY2FsbGVyQWRkcmVzc1N0cmluZwIAAAABXwUAAAAJbHBBc3NldElkAgAAAA9fdG90YWxfbG9ja19mZWUFAAAAEHRvdGFsTG9ja0ZlZVBvb2wJAARMAAAAAgkBAAAA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", "height": 2989024, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 5JE63uG8Tmmj4yVnUycWecPEZnsCVWQPHaJHrfzPsRAq Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 5 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let dAppAddress = Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV') | |
5 | + | ||
6 | + | let wxAssetId = base58'Atqv59EYzjFGuitKVnMRk6H8FukjoV3ktPorbEys25on' | |
7 | + | ||
8 | + | let wxbAssetId = base58'BbP9tmd5Zxk345y9zipXkYaqDfxDG1suTj64eJmy1BAT' | |
9 | + | ||
10 | + | let giveawayAssetId = base58'Atqv59EYzjFGuitKVnMRk6H8FukjoV3ktPorbEys25on' | |
11 | + | ||
12 | + | let wxLockAddress = Address(base58'3PJL8Hn8LACaSBWLQ3UVhctA5cTQLBFwBAP') | |
13 | + | ||
14 | + | let teamFeeAddress = Address(base58'3PH8NXNHpYR5gLn3cwtqnvmKVwQQWb7FrwY') | |
15 | + | ||
16 | + | @Callable(i) | |
17 | + | func stakeLP () = { | |
18 | + | let callerAddressString = toString(i.caller) | |
19 | + | let isWhitelisted = valueOrElse(getBoolean((callerAddressString + "_whitelisted")), false) | |
20 | + | let lpAssetId = valueOrElse(getString((callerAddressString + "_assetId")), "") | |
21 | + | if (if (if (if (isWhitelisted) | |
22 | + | then (size(i.payments) == 1) | |
23 | + | else false) | |
24 | + | then (i.payments[0].amount > 0) | |
25 | + | else false) | |
26 | + | then (i.payments[0].assetId == fromBase58String(lpAssetId)) | |
27 | + | else false) | |
28 | + | then { | |
29 | + | let stakeLPCall = invoke(dAppAddress, "stake", nil, [AttachedPayment(i.payments[0].assetId, i.payments[0].amount)]) | |
30 | + | if ((stakeLPCall == stakeLPCall)) | |
31 | + | then { | |
32 | + | let balance = (valueOrElse(getInteger((((callerAddressString + "_") + lpAssetId) + "_balance")), 0) + i.payments[0].amount) | |
33 | + | $Tuple2([IntegerEntry((((callerAddressString + "_") + lpAssetId) + "_balance"), balance)], unit) | |
34 | + | } | |
35 | + | else throw("Strict value is not equal to itself.") | |
36 | + | } | |
37 | + | else throw("") | |
38 | + | } | |
39 | + | ||
40 | + | ||
41 | + | ||
42 | + | @Callable(i) | |
43 | + | func unstakeLP (amount) = { | |
44 | + | let callerAddressString = toString(i.caller) | |
45 | + | let isWhitelisted = valueOrElse(getBoolean((callerAddressString + "_whitelisted")), false) | |
46 | + | if (isWhitelisted) | |
47 | + | then { | |
48 | + | let lpAssetId = valueOrElse(getString((callerAddressString + "_assetId")), "") | |
49 | + | let unstakeLPCall = invoke(dAppAddress, "unstake", [lpAssetId, amount], nil) | |
50 | + | if ((unstakeLPCall == unstakeLPCall)) | |
51 | + | then { | |
52 | + | let balance = (valueOrElse(getInteger((((callerAddressString + "_") + lpAssetId) + "_balance")), 0) - amount) | |
53 | + | $Tuple2([ScriptTransfer(i.caller, amount, fromBase58String(lpAssetId)), IntegerEntry((((callerAddressString + "_") + lpAssetId) + "_balance"), balance)], unit) | |
54 | + | } | |
55 | + | else throw("Strict value is not equal to itself.") | |
56 | + | } | |
57 | + | else throw("") | |
58 | + | } | |
59 | + | ||
60 | + | ||
61 | + | ||
62 | + | @Callable(i) | |
63 | + | func claim () = { | |
64 | + | let callerAddressString = toString(i.caller) | |
65 | + | let isWhitelisted = valueOrElse(getBoolean((callerAddressString + "_whitelisted")), false) | |
66 | + | if (isWhitelisted) | |
67 | + | then { | |
68 | + | let lpAssetId = valueOrElse(getString((callerAddressString + "_assetId")), "") | |
69 | + | let wxBalance = assetBalance(this, wxAssetId) | |
70 | + | if ((wxBalance == wxBalance)) | |
71 | + | then { | |
72 | + | let claimWXCall = invoke(dAppAddress, "claimWx", [lpAssetId], nil) | |
73 | + | if ((claimWXCall == claimWXCall)) | |
74 | + | then { | |
75 | + | let claimedWXAmount = (assetBalance(this, wxAssetId) - wxBalance) | |
76 | + | if ((claimedWXAmount == claimedWXAmount)) | |
77 | + | then { | |
78 | + | let totalClaimedWXPool = (valueOrElse(getInteger((((callerAddressString + "_") + lpAssetId) + "_total_claimed_wx")), 0) + claimedWXAmount) | |
79 | + | let totalClaimedWX = (valueOrElse(getInteger(this, "total_claimed_wx"), 0) + claimedWXAmount) | |
80 | + | let lockFeeRate = getIntegerValue(this, "lock_fee") | |
81 | + | let teamFeeRate = getIntegerValue(this, "team_fee") | |
82 | + | let lockFee = fraction(claimedWXAmount, lockFeeRate, 100) | |
83 | + | let teamFee = fraction(claimedWXAmount, teamFeeRate, 100) | |
84 | + | let totalCollectedFeePool = ((valueOrElse(getInteger((((callerAddressString + "_") + lpAssetId) + "_total_collected_fee")), 0) + lockFee) + teamFee) | |
85 | + | let totalCollectedFee = ((valueOrElse(getInteger("total_collected_fee"), 0) + lockFee) + teamFee) | |
86 | + | let totalLockFeePool = (valueOrElse(getInteger((((callerAddressString + "_") + lpAssetId) + "_total_lock_fee")), 0) + lockFee) | |
87 | + | let totalLockFee = (valueOrElse(getInteger("total_lock_fee"), 0) + lockFee) | |
88 | + | let totalTeamFeePool = (valueOrElse(getInteger((((callerAddressString + "_") + lpAssetId) + "_total_team_fee")), 0) + teamFee) | |
89 | + | let totalTeamFee = (valueOrElse(getInteger("total_team_fee"), 0) + teamFee) | |
90 | + | let wxLockCall = invoke(wxLockAddress, "increaseLock", [0], [AttachedPayment(wxAssetId, lockFee)]) | |
91 | + | if ((wxLockCall == wxLockCall)) | |
92 | + | then { | |
93 | + | let totalLockedWX = (valueOrElse(getInteger("total_locked_wx"), 0) + lockFee) | |
94 | + | let wxbAllocation = valueOrElse(getInteger((((callerAddressString + "_") + lpAssetId) + "_wxb_allocation")), 0) | |
95 | + | let totalClaimedWXBPool = (valueOrElse(getInteger((((callerAddressString + "_") + lpAssetId) + "_total_claimed_wxb")), 0) + wxbAllocation) | |
96 | + | let totalClaimedWXB = (valueOrElse(getInteger("total_claimed_wxb"), 0) + wxbAllocation) | |
97 | + | $Tuple2([ScriptTransfer(i.caller, ((claimedWXAmount - lockFee) - teamFee), wxAssetId), ScriptTransfer(teamFeeAddress, teamFee, wxAssetId), ScriptTransfer(i.caller, wxbAllocation, wxbAssetId), IntegerEntry("total_locked_wx", totalLockedWX), IntegerEntry((((callerAddressString + "_") + lpAssetId) + "_total_claimed_wx"), totalClaimedWXPool), IntegerEntry("total_claimed_wx", totalClaimedWX), IntegerEntry((((callerAddressString + "_") + lpAssetId) + "_total_claimed_wxb"), totalClaimedWXBPool), IntegerEntry("total_claimed_wxb", totalClaimedWXB), IntegerEntry((((callerAddressString + "_") + lpAssetId) + "_total_collected_fee"), totalCollectedFeePool), IntegerEntry("total_collected_fee", totalCollectedFee), IntegerEntry((((callerAddressString + "_") + lpAssetId) + "_total_lock_fee"), totalLockFeePool), IntegerEntry("total_lock_fee", totalLockFee), IntegerEntry((((callerAddressString + "_") + lpAssetId) + "_total_team_fee"), totalTeamFeePool), IntegerEntry("total_team_fee", totalTeamFee)], unit) | |
98 | + | } | |
99 | + | else throw("Strict value is not equal to itself.") | |
100 | + | } | |
101 | + | else throw("Strict value is not equal to itself.") | |
102 | + | } | |
103 | + | else throw("Strict value is not equal to itself.") | |
104 | + | } | |
105 | + | else throw("Strict value is not equal to itself.") | |
106 | + | } | |
107 | + | else throw("") | |
108 | + | } | |
109 | + | ||
110 | + | ||
111 | + | ||
112 | + | @Callable(i) | |
113 | + | func init () = { | |
114 | + | let initialized = valueOrElse(getBoolean("initialized"), false) | |
115 | + | if (!(initialized)) | |
116 | + | then { | |
117 | + | let firstLock = invoke(wxLockAddress, "lock", [2102400], [AttachedPayment(i.payments[0].assetId, i.payments[0].amount)]) | |
118 | + | if ((firstLock == firstLock)) | |
119 | + | then $Tuple2([BooleanEntry("initialized", true), IntegerEntry("it_all_started_in_this_block", height), IntegerEntry("total_locked_wx", i.payments[0].amount), IntegerEntry("lock_duration", (2102400 + height)), IntegerEntry("lock_fee", 15), IntegerEntry("team_fee", 0)], unit) | |
120 | + | else throw("Strict value is not equal to itself.") | |
121 | + | } | |
122 | + | else throw("") | |
123 | + | } | |
124 | + | ||
125 | + | ||
126 | + | ||
127 | + | @Callable(i) | |
128 | + | func setFee (lockFee,teamFee) = if ((i.caller == this)) | |
129 | + | then $Tuple2([IntegerEntry("lock_fee", lockFee), IntegerEntry("team_fee", teamFee)], unit) | |
130 | + | else throw("") | |
131 | + | ||
132 | + | ||
133 | + | ||
134 | + | @Callable(i) | |
135 | + | func whitelist (whitelistAddress,assetId,allocation) = if ((i.caller == this)) | |
136 | + | then $Tuple2([BooleanEntry((whitelistAddress + "_whitelisted"), true), StringEntry((whitelistAddress + "_assetId"), assetId), IntegerEntry((((whitelistAddress + "_") + assetId) + "_wxb_allocation"), allocation)], unit) | |
137 | + | else throw("") | |
138 | + | ||
139 | + | ||
140 | + | ||
141 | + | @Callable(i) | |
142 | + | func removeWhitelist (whitelistAddress) = if ((i.caller == this)) | |
143 | + | then $Tuple2([BooleanEntry((whitelistAddress + "_whitelisted"), false)], unit) | |
144 | + | else throw("") | |
145 | + | ||
146 | + | ||
147 | + | ||
148 | + | @Callable(i) | |
149 | + | func setAllocation (amount,whitelistAddress,assetId) = if ((i.caller == this)) | |
150 | + | then [IntegerEntry((((whitelistAddress + "_") + assetId) + "_wxb_allocation"), amount)] | |
151 | + | else throw("") | |
152 | + | ||
153 | + | ||
154 | + | ||
155 | + | @Callable(i) | |
156 | + | func giveaway () = { | |
157 | + | let callerAddressString = toString(i.caller) | |
158 | + | let isWhitelisted = valueOrElse(getBoolean((callerAddressString + "_whitelisted")), false) | |
159 | + | if (if (if (if (isWhitelisted) | |
160 | + | then (size(i.payments) == 1) | |
161 | + | else false) | |
162 | + | then (i.payments[0].assetId == giveawayAssetId) | |
163 | + | else false) | |
164 | + | then (i.payments[0].amount > 0) | |
165 | + | else false) | |
166 | + | then { | |
167 | + | let wxLockCall = invoke(wxLockAddress, "increaseLock", [0], [AttachedPayment(i.payments[0].assetId, i.payments[0].amount)]) | |
168 | + | if ((wxLockCall == wxLockCall)) | |
169 | + | then { | |
170 | + | let totalLockedWX = (valueOrElse(getInteger("total_locked_wx"), 0) + i.payments[0].amount) | |
171 | + | let totalGiveawayWX = (valueOrElse(getInteger("total_giveaway_wx"), 0) + i.payments[0].amount) | |
172 | + | $Tuple2([IntegerEntry("total_locked_wx", totalLockedWX), IntegerEntry("total_giveaway_wx", totalGiveawayWX)], unit) | |
173 | + | } | |
174 | + | else throw("Strict value is not equal to itself.") | |
175 | + | } | |
176 | + | else throw("") | |
177 | + | } | |
178 | + | ||
179 | + | ||
180 | + | ||
181 | + | @Callable(i) | |
182 | + | func increaseLockDuration (duration) = if ((i.caller == this)) | |
183 | + | then { | |
184 | + | let increaseLockDurationCall = invoke(wxLockAddress, "increaseLock", [duration], nil) | |
185 | + | if ((increaseLockDurationCall == increaseLockDurationCall)) | |
186 | + | then { | |
187 | + | let lockDuration = (getIntegerValue("lock_duration") + duration) | |
188 | + | $Tuple2([IntegerEntry("lock_duration", lockDuration)], unit) | |
189 | + | } | |
190 | + | else throw("Strict value is not equal to itself.") | |
191 | + | } | |
192 | + | else throw("") | |
193 | + | ||
194 | + |
github/deemru/w8io/3ef1775 24.20 ms ◑