tx · HPFLofcHhv7RV3dgj5CaMYiKYKB1Tj3fNiNeWhvs5A6M

3Mq4LDNtBNSJicpMR5TxG89n1D9mMavMAj7:  -0.04000000 Waves

2022.04.15 15:53 [2009694] smart account 3Mq4LDNtBNSJicpMR5TxG89n1D9mMavMAj7 > SELF 0.00000000 Waves

{ "type": 13, "id": "HPFLofcHhv7RV3dgj5CaMYiKYKB1Tj3fNiNeWhvs5A6M", "fee": 4000000, "feeAssetId": null, "timestamp": 1650027186353, "version": 2, "chainId": 84, "sender": "3Mq4LDNtBNSJicpMR5TxG89n1D9mMavMAj7", "senderPublicKey": "FJZaKJq3aMAC6bg2qfp2qgfv31a2jNRDaYaCR9TY5HP3", "proofs": [ "39L85ZQkqGZD6mvKUKaDNkpy8btS2dCUa5LEvoqKGNzhg7eDsLvqLmF5Pavuw5q2sqpMFb9qF3zCQ3RQVTx3T9BQ" ], "script": "base64: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", "height": 2009694, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CGeCPnUyuaEEhzCwdH8q36WMPQJ7d5CU7f24Wo3CUfbo Next: 6RFeKNwx4Qr3hWNuVBxYdpYCRK1adGWJp2jn9qUYdYwQ Diff:
OldNewDifferences
2323 case _ =>
2424 throw("Can't find asset")
2525 }
26- let singleLPinValue = ((totalIssued * 100000000) / inTreasury)
27- let amountToIssue = ((pmtAmount * singleLPinValue) / 100000000)
26+ let singleLPinValue = (((totalIssued * 100000000) / ((inTreasury * 100000000) - pmtAmount)) * pmtAmount)
27+ let amountToIssue = (singleLPinValue / 100000000)
2828 let LPIssue = Reissue(LP, amountToIssue, true)
2929 let transfer = ScriptTransfer(i.caller, amountToIssue, LP)
3030 [LPIssue, transfer]
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let ID = base58'ET8t5TozeUrUQfMzLzVeHTVo2vmiEeu2apj3AN6zwzsG'
55
66 let LP = base58'2nGfqMHdunJuX8jYzruMKz1e1vMNrhJtWMjHizRhB8Fk'
77
88 let isStopped = false
99
1010 @Callable(i)
1111 func stake () = {
1212 let pmt = value(i.payments[0])
1313 let pmtAmount = pmt.amount
1414 if ((pmt.assetId != ID))
1515 then throw("attach testNSBT tokens only")
1616 else if (isStopped)
1717 then throw("smart contract is on lock")
1818 else {
1919 let inTreasury = assetBalance(this, ID)
2020 let totalIssued = match assetInfo(LP) {
2121 case asset: Asset =>
2222 asset.quantity
2323 case _ =>
2424 throw("Can't find asset")
2525 }
26- let singleLPinValue = ((totalIssued * 100000000) / inTreasury)
27- let amountToIssue = ((pmtAmount * singleLPinValue) / 100000000)
26+ let singleLPinValue = (((totalIssued * 100000000) / ((inTreasury * 100000000) - pmtAmount)) * pmtAmount)
27+ let amountToIssue = (singleLPinValue / 100000000)
2828 let LPIssue = Reissue(LP, amountToIssue, true)
2929 let transfer = ScriptTransfer(i.caller, amountToIssue, LP)
3030 [LPIssue, transfer]
3131 }
3232 }
3333
3434
3535
3636 @Callable(i)
3737 func withdraw (amount) = {
3838 let attached = i.payments[0]
3939 let paymentID = i.payments[0].assetId
4040 if ((paymentID != LP))
4141 then throw("Attach the correct LP token")
4242 else {
4343 let newAmount = (attached.amount - amount)
4444 if ((0 > amount))
4545 then throw("Can't withdraw negative amount")
4646 else if ((0 > newAmount))
4747 then throw("Not enough balance")
4848 else {
4949 let burning = Burn(LP, amount)
5050 let transfer = ScriptTransfer(i.caller, newAmount, ID)
5151 [burning, transfer]
5252 }
5353 }
5454 }
5555
5656
5757 @Verifier(tx)
5858 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
5959

github/deemru/w8io/873ac7e 
29.59 ms