tx · DySdbdf8wTxKfh6G6sqmAEKyqqbYverrtg5VnzG7jsnp

3Mu3rHXsZEzEFRmstTmo2ibxjvaHNd4hU6t:  -0.01400000 Waves

2022.05.31 12:53 [2075682] smart account 3Mu3rHXsZEzEFRmstTmo2ibxjvaHNd4hU6t > SELF 0.00000000 Waves

{ "type": 13, "id": "DySdbdf8wTxKfh6G6sqmAEKyqqbYverrtg5VnzG7jsnp", "fee": 1400000, "feeAssetId": null, "timestamp": 1653990856738, "version": 2, "chainId": 84, "sender": "3Mu3rHXsZEzEFRmstTmo2ibxjvaHNd4hU6t", "senderPublicKey": "Cn7Ky2YAx4p6dx8e7Mcb9rTQ2Z5TD9MrRbLA8AXDsumJ", "proofs": [ "3Hu1a3qsdTpvkybppcZHouV67eM3i3oLBSYApVvJuN6hpDT49QTfooziahwMx7rhB9mGiZhDMCdsEH1Yn1Qb1nPw" ], "script": "base64:AAIFAAAAAAAAAAQIAhIAAAAAAwAAAAACQkEBAAAAIA/yHBKs5MQ8muxGGqslqLDsugcrRsxtiHLwteKSSQG0AAAAAANUQ0kBAAAAIBrCggSy4VsJx+p89lkVxbB4UD+xy3ysy22f6+YftAucAAAAAAlpc1N0b3BwZWQHAAAAAQAAAAFpAQAAAAVzdGFrZQAAAAAEAAAAA3BtdAkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAJcG10QW1vdW50CAUAAAADcG10AAAABmFtb3VudAMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAHYXNzZXRJZAUAAAACQkEJAAACAAAAAQIAAAAXWW91IGNhbiBzdGFrZSBVU0ROIG9ubHkDBQAAAAlpc1N0b3BwZWQJAAACAAAAAQIAAAAZc21hcnQgY29udHJhY3QgaXMgb24gbG9jawQAAAAKaW5UcmVhc3VyeQkAA/AAAAACBQAAAAR0aGlzBQAAAAJCQQQAAAALdG90YWxJc3N1ZWQEAAAAByRtYXRjaDAJAAPsAAAAAQUAAAADVENJAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAVBc3NldAQAAAAFYXNzZXQFAAAAByRtYXRjaDAIBQAAAAVhc3NldAAAAAhxdWFudGl0eQkAAAIAAAABAgAAABBDYW4ndCBmaW5kIGFzc2V0BAAAAAh0cmVhc3VyeQkAAGUAAAACBQAAAAppblRyZWFzdXJ5BQAAAAlwbXRBbW91bnQEAAAAEHNpbmdsZVRDSWluVmFsdWUJAABrAAAAAwUAAAALdG90YWxJc3N1ZWQAAAAAAAX14QAFAAAACHRyZWFzdXJ5BAAAAA1hbW91bnRUb0lzc3VlCQAAawAAAAMFAAAACXBtdEFtb3VudAUAAAAQc2luZ2xlVENJaW5WYWx1ZQAAAAAABfXhAAQAAAAIVENJSXNzdWUJAQAAAAdSZWlzc3VlAAAAAwUAAAADVENJBQAAAA1hbW91bnRUb0lzc3VlBgQAAAAIdHJhbnNmZXIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAANYW1vdW50VG9Jc3N1ZQUAAAADVENJCQAETAAAAAIFAAAACFRDSUlzc3VlCQAETAAAAAIFAAAACHRyYW5zZmVyBQAAAANuaWwAAAAABwZobg==", "height": 2075682, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Dp2CpBN8HNfczfKoqiQ4jyh9rLJtwa5jnqTKhJpoZovF Next: 8z5o6pn2ijuZnqq5Y5NJMbqFu8ZjJC2EnpA64qaASbtn Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let token = base58'Fm4qczu6Pepz8KUhh3Heb6LeTVfpSMX5vvNgw3x764CS'
4+let BA = base58'25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT'
55
6-let lpTCI = base58'FpG53PqcPPUmMwjHd2SQrpLPMXYHUBpdoM1ynBbMzsAk'
6+let TCI = base58'2oTdBoVmVmzU1PT9yRuyfbVfmkvTFQoy7C8du6Lg9X3Z'
77
88 let isStopped = false
9-
10-let keyStaked = "STAKED_LP"
11-
12-let keyCompound = "From_Compound"
139
1410 @Callable(i)
1511 func stake () = {
1612 let pmt = value(i.payments[0])
1713 let pmtAmount = pmt.amount
18- if ((pmt.assetId != token))
19- then throw("attach USDTUSDNLP tokens only")
14+ if ((pmt.assetId != BA))
15+ then throw("You can stake USDN only")
2016 else if (isStopped)
2117 then throw("smart contract is on lock")
2218 else {
23- let tkStaked = valueOrElse(getInteger(this, keyStaked), 0)
24- let totalIssued = match assetInfo(lpTCI) {
19+ let inTreasury = assetBalance(this, BA)
20+ let totalIssued = match assetInfo(TCI) {
2521 case asset: Asset =>
2622 asset.quantity
2723 case _ =>
2824 throw("Can't find asset")
2925 }
30- let fromCompound = valueOrElse(getInteger(this, keyCompound), 0)
31- let forOne = fraction(totalIssued, 100000000, tkStaked)
32- let toIssue = fraction(pmtAmount, forOne, 100000000)
33- let updateState = IntegerEntry(keyStaked, (tkStaked + pmtAmount))
34- if ((updateState == updateState))
35- then {
36- let LPstake = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [pmt])
37- if ((LPstake == LPstake))
38- then {
39- let LPIssue = Reissue(lpTCI, toIssue, true)
40- let transfer = ScriptTransfer(i.caller, toIssue, lpTCI)
41-[LPIssue, transfer, updateState]
42- }
43- else throw("Strict value is not equal to itself.")
44- }
45- else throw("Strict value is not equal to itself.")
26+ let treasury = (inTreasury - pmtAmount)
27+ let singleTCIinValue = fraction(totalIssued, 100000000, treasury)
28+ let amountToIssue = fraction(pmtAmount, singleTCIinValue, 100000000)
29+ let TCIIssue = Reissue(TCI, amountToIssue, true)
30+ let transfer = ScriptTransfer(i.caller, amountToIssue, TCI)
31+[TCIIssue, transfer]
4632 }
4733 }
4834
49-
50-
51-@Callable(i)
52-func compound () = {
53- let compound = value(i.payments[0])
54- let ca = compound.amount
55- if ((compound.assetId != token))
56- then throw("attach USDTUSDNLP tokens only")
57- else {
58- let fromCompound = valueOrElse(getInteger(this, keyCompound), 0)
59- let totalStaked = valueOrElse(getInteger(this, keyStaked), 0)
60- let stakeC = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [compound])
61- if ((stakeC == stakeC))
62- then {
63- let updateState = IntegerEntry(keyStaked, (totalStaked + ca))
64- let tc = IntegerEntry(keyCompound, (fromCompound + ca))
65-[updateState, tc]
66- }
67- else throw("Strict value is not equal to itself.")
68- }
69- }
70-
71-
72-
73-@Callable(i)
74-func init () = {
75- let pm = i.payments[0]
76- let am = pm.amount
77- if ((pm.assetId != token))
78- then throw("Unexpected token")
79- else {
80- let s = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [pm])
81- if ((s == s))
82- then {
83- let upd = IntegerEntry(keyStaked, am)
84- let updK = IntegerEntry(keyCompound, 0)
85-[upd]
86- }
87- else throw("Strict value is not equal to itself.")
88- }
89- }
90-
91-
92-@Verifier(tx)
93-func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
9435

github/deemru/w8io/3ef1775 
39.12 ms