tx · 9NnHueLGEi62d3ggwunUKwNLujFro7PbZXVTLqLSZzRE

3MwBGvHwMsCkfpjNczpKyPwjZn8kguZc1aT:  -0.04000000 Waves

2022.05.19 12:21 [2058371] smart account 3MwBGvHwMsCkfpjNczpKyPwjZn8kguZc1aT > SELF 0.00000000 Waves

{ "type": 13, "id": "9NnHueLGEi62d3ggwunUKwNLujFro7PbZXVTLqLSZzRE", "fee": 4000000, "feeAssetId": null, "timestamp": 1652952070566, "version": 2, "chainId": 84, "sender": "3MwBGvHwMsCkfpjNczpKyPwjZn8kguZc1aT", "senderPublicKey": "HR6KqHHmjzGx8fdbFkG9LMHCiNx2t8ExYHP5fWMomCJu", "proofs": [ "4DoL1m8u6W5jHiSarZDUwyBxpzSrXBDXm849TiAmAULtWtLS2cTn96QdwBWZxf8sXoxRzJieoB83mC3npcntbQDz" ], "script": "base64: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", "height": 2058371, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4W9v1aAwno6c7kkZTit8tQjP9RXckV8hADLjFr4s4fiX Next: GLQGCerPZxBeq6T51izriESQFkkfBux6QFDu22QfovYb Diff:
OldNewDifferences
2525 let updateState = IntegerEntry(keyStaked, (tkStaked + i.payments[0].amount))
2626 if ((updateState == updateState))
2727 then {
28- let totalIssued = match assetInfo(lpTCI) {
29- case asset: Asset =>
30- asset.quantity
31- case _ =>
32- throw("Can't find asset")
33- }
34- let treasury = (tkStaked + assetBalance(this, token))
35- let forOne = fraction(totalIssued, 100000000, treasury)
28+ let totalIssued = (tkStaked - fromCompound)
29+ let forOne = fraction(totalIssued, 100000000, tkStaked)
3630 let toIssue = fraction(pmtAmount, forOne, 100000000)
3731 let LPstake = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [pmt])
3832 if ((LPstake == LPstake))
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let token = base58'Fm4qczu6Pepz8KUhh3Heb6LeTVfpSMX5vvNgw3x764CS'
55
66 let lpTCI = base58'2mGo9byNgTSxPC4J8wXkGkdjhB3Tk3gjGYiiHsyCrnHd'
77
88 let isStopped = false
99
1010 let keyStaked = "STAKED_LP"
1111
1212 let keyCompound = "From_Compound"
1313
1414 @Callable(i)
1515 func stake () = {
1616 let pmt = value(i.payments[0])
1717 let pmtAmount = pmt.amount
1818 if ((pmt.assetId != token))
1919 then throw("attach USDTUSDNLP tokens only")
2020 else if (isStopped)
2121 then throw("smart contract is on lock")
2222 else {
2323 let tkStaked = valueOrElse(getInteger(this, keyStaked), 0)
2424 let fromCompound = valueOrElse(getInteger(this, keyCompound), 0)
2525 let updateState = IntegerEntry(keyStaked, (tkStaked + i.payments[0].amount))
2626 if ((updateState == updateState))
2727 then {
28- let totalIssued = match assetInfo(lpTCI) {
29- case asset: Asset =>
30- asset.quantity
31- case _ =>
32- throw("Can't find asset")
33- }
34- let treasury = (tkStaked + assetBalance(this, token))
35- let forOne = fraction(totalIssued, 100000000, treasury)
28+ let totalIssued = (tkStaked - fromCompound)
29+ let forOne = fraction(totalIssued, 100000000, tkStaked)
3630 let toIssue = fraction(pmtAmount, forOne, 100000000)
3731 let LPstake = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [pmt])
3832 if ((LPstake == LPstake))
3933 then {
4034 let LPIssue = Reissue(lpTCI, toIssue, true)
4135 let transfer = ScriptTransfer(i.caller, toIssue, lpTCI)
4236 [LPIssue, transfer, updateState]
4337 }
4438 else throw("Strict value is not equal to itself.")
4539 }
4640 else throw("Strict value is not equal to itself.")
4741 }
4842 }
4943
5044
5145
5246 @Callable(i)
5347 func compound () = {
5448 let compound = value(i.payments[0])
5549 let ca = compound.amount
5650 if ((compound.assetId != token))
5751 then throw("attach USDTUSDNLP tokens only")
5852 else {
5953 let fromCompound = valueOrElse(getInteger(this, keyCompound), 0)
6054 let totalStaked = valueOrElse(getInteger(this, keyStaked), 0)
6155 let stakeC = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [compound])
6256 if ((stakeC == stakeC))
6357 then {
6458 let updateState = IntegerEntry(keyStaked, (totalStaked + ca))
6559 let tc = IntegerEntry(keyCompound, (fromCompound + ca))
6660 [updateState, tc]
6761 }
6862 else throw("Strict value is not equal to itself.")
6963 }
7064 }
7165
7266

github/deemru/w8io/3ef1775 
31.93 ms