2021.12.06 01:13 [2886509] smart account 3P984CrEYKGfoBLdwRFiNE2j3gFoYA1cvYp > SELF 0.00000000 Waves
{ "type": 13, "id": "G7VYmRPcU7DdPVPAbAmzyZxr2NZWg1NiZ3569ikEBDpH", "fee": 1000000, "feeAssetId": null, "timestamp": 1638742437289, "version": 2, "chainId": 87, "sender": "3P984CrEYKGfoBLdwRFiNE2j3gFoYA1cvYp", "senderPublicKey": "9mKotRjaeDuiRhrXqMg55Uh1V1WzwG4kDaAcE7HGzh43", "proofs": [ "29kuxDrnDNdXKUNjUvoVPqbnJce7zrsSBkMqyhFmjNbFaYnXesowHDf315SEQ9vHh9P5jjQ1Egos4T1a6QDCmDeZ" ], "script": "base64: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", "height": 2886509, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6eGRSztd8fCANzef1wWE2sBvkyPyf6Z7ts5toiNmSwxw Next: GuqqU8iZRh4mkdRGdYXCteRVBCYb7RMeJHVyGquNKvA5 Diff:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let USDN = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p' | |
5 | + | ||
6 | + | let NEUTRINO = base58'3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ' | |
7 | + | ||
8 | + | @Callable(i) | |
9 | + | func stakeUSDN (amount) = { | |
10 | + | let USDNBalance = assetBalance(this, USDN) | |
11 | + | if (!((USDNBalance > amount))) | |
12 | + | then throw("exceeds the available amount") | |
13 | + | else { | |
14 | + | let result = invoke(Address(NEUTRINO), "lockNeutrino", nil, [AttachedPayment(USDN, amount)]) | |
15 | + | if ((result == result)) | |
16 | + | then { | |
17 | + | let stakedUSDN = valueOrElse(getInteger(this, "staked_usdn_amount"), 0) | |
18 | + | let totalStakedUSDN = (stakedUSDN + amount) | |
19 | + | $Tuple2([IntegerEntry("staked_usdn_amount", totalStakedUSDN)], unit) | |
20 | + | } | |
21 | + | else throw("Strict value is not equal to itself.") | |
22 | + | } | |
23 | + | } | |
24 | + | ||
25 | + | ||
26 | + | ||
27 | + | @Callable(i) | |
28 | + | func unstakeUSDN () = { | |
29 | + | let totalStakedUSDN = getIntegerValue(this, "staked_usdn_amount") | |
30 | + | let totalStakedUSDNNeutrino = getIntegerValue(Address(NEUTRINO), ("rpd_balance_DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p_" + toString(this))) | |
31 | + | if (!((totalStakedUSDN == totalStakedUSDNNeutrino))) | |
32 | + | then throw("amounts are not matching, check it!!!") | |
33 | + | else { | |
34 | + | let result = invoke(Address(NEUTRINO), "unlockNeutrino", [totalStakedUSDN, "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"], nil) | |
35 | + | if ((result == result)) | |
36 | + | then $Tuple2([BooleanEntry("unstaked_usdn", true), IntegerEntry("unstaked_usdn_amount", totalStakedUSDN), IntegerEntry("staked_usdn_amount", 0)], unit) | |
37 | + | else throw("Strict value is not equal to itself.") | |
38 | + | } | |
39 | + | } | |
40 | + | ||
41 | + | ||
42 | + | ||
43 | + | @Callable(i) | |
44 | + | func stakeWaves (amount) = { | |
45 | + | let availableWavesBalance = wavesBalance(this).available | |
46 | + | if (!(((availableWavesBalance - 200000000) >= amount))) | |
47 | + | then throw("not enough waves amount to lease") | |
48 | + | else { | |
49 | + | let LeaseAction = Lease(Address(base58'3P9DEDP5VbyXQyKtXDUt2crRPn5B7gs6ujc'), amount) | |
50 | + | let leaseId = calculateLeaseId(LeaseAction) | |
51 | + | let leasedAmount = valueOrElse(getInteger(this, "leased_amount"), 0) | |
52 | + | let totalLeasedAmount = (leasedAmount + amount) | |
53 | + | $Tuple2([LeaseAction, IntegerEntry("leased_amount", totalLeasedAmount), BinaryEntry("leasing_id", leaseId)], unit) | |
54 | + | } | |
55 | + | } | |
56 | + | ||
57 | + | ||
58 | + | ||
59 | + | @Callable(i) | |
60 | + | func unstakeWaves () = { | |
61 | + | let leaseid = getBinaryValue(this, "leasing_id") | |
62 | + | $Tuple2([DeleteEntry("staked_usdn_amount"), DeleteEntry("unstaked_usdn"), DeleteEntry("unstaked_usdn_amount"), LeaseCancel(leaseid)], unit) | |
63 | + | } | |
64 | + | ||
4 | 65 | ||
5 | 66 | ||
6 | 67 | @Callable(i) |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let USDN = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p' | |
5 | + | ||
6 | + | let NEUTRINO = base58'3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ' | |
7 | + | ||
8 | + | @Callable(i) | |
9 | + | func stakeUSDN (amount) = { | |
10 | + | let USDNBalance = assetBalance(this, USDN) | |
11 | + | if (!((USDNBalance > amount))) | |
12 | + | then throw("exceeds the available amount") | |
13 | + | else { | |
14 | + | let result = invoke(Address(NEUTRINO), "lockNeutrino", nil, [AttachedPayment(USDN, amount)]) | |
15 | + | if ((result == result)) | |
16 | + | then { | |
17 | + | let stakedUSDN = valueOrElse(getInteger(this, "staked_usdn_amount"), 0) | |
18 | + | let totalStakedUSDN = (stakedUSDN + amount) | |
19 | + | $Tuple2([IntegerEntry("staked_usdn_amount", totalStakedUSDN)], unit) | |
20 | + | } | |
21 | + | else throw("Strict value is not equal to itself.") | |
22 | + | } | |
23 | + | } | |
24 | + | ||
25 | + | ||
26 | + | ||
27 | + | @Callable(i) | |
28 | + | func unstakeUSDN () = { | |
29 | + | let totalStakedUSDN = getIntegerValue(this, "staked_usdn_amount") | |
30 | + | let totalStakedUSDNNeutrino = getIntegerValue(Address(NEUTRINO), ("rpd_balance_DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p_" + toString(this))) | |
31 | + | if (!((totalStakedUSDN == totalStakedUSDNNeutrino))) | |
32 | + | then throw("amounts are not matching, check it!!!") | |
33 | + | else { | |
34 | + | let result = invoke(Address(NEUTRINO), "unlockNeutrino", [totalStakedUSDN, "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"], nil) | |
35 | + | if ((result == result)) | |
36 | + | then $Tuple2([BooleanEntry("unstaked_usdn", true), IntegerEntry("unstaked_usdn_amount", totalStakedUSDN), IntegerEntry("staked_usdn_amount", 0)], unit) | |
37 | + | else throw("Strict value is not equal to itself.") | |
38 | + | } | |
39 | + | } | |
40 | + | ||
41 | + | ||
42 | + | ||
43 | + | @Callable(i) | |
44 | + | func stakeWaves (amount) = { | |
45 | + | let availableWavesBalance = wavesBalance(this).available | |
46 | + | if (!(((availableWavesBalance - 200000000) >= amount))) | |
47 | + | then throw("not enough waves amount to lease") | |
48 | + | else { | |
49 | + | let LeaseAction = Lease(Address(base58'3P9DEDP5VbyXQyKtXDUt2crRPn5B7gs6ujc'), amount) | |
50 | + | let leaseId = calculateLeaseId(LeaseAction) | |
51 | + | let leasedAmount = valueOrElse(getInteger(this, "leased_amount"), 0) | |
52 | + | let totalLeasedAmount = (leasedAmount + amount) | |
53 | + | $Tuple2([LeaseAction, IntegerEntry("leased_amount", totalLeasedAmount), BinaryEntry("leasing_id", leaseId)], unit) | |
54 | + | } | |
55 | + | } | |
56 | + | ||
57 | + | ||
58 | + | ||
59 | + | @Callable(i) | |
60 | + | func unstakeWaves () = { | |
61 | + | let leaseid = getBinaryValue(this, "leasing_id") | |
62 | + | $Tuple2([DeleteEntry("staked_usdn_amount"), DeleteEntry("unstaked_usdn"), DeleteEntry("unstaked_usdn_amount"), LeaseCancel(leaseid)], unit) | |
63 | + | } | |
64 | + | ||
4 | 65 | ||
5 | 66 | ||
6 | 67 | @Callable(i) | |
7 | 68 | func sendit () = if ((toString(i.caller) != "3PJVLNCkc7ChN4ADTTwDzGWyCXgVNuF124s")) | |
8 | 69 | then throw("not that") | |
9 | 70 | else $Tuple2([ScriptTransfer(i.caller, 1000, base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p')], unit) | |
10 | 71 | ||
11 | 72 |
github/deemru/w8io/786bc32 23.93 ms ◑