tx · EK6tfbE8VauEQgMCo1Hc8gaho8dBdGytmu7uYAZvdfLZ

3PPK7G7BQf3yWQdXapuBhEhYkaqNBfcvNtk:  -0.01000000 Waves

2023.02.02 11:15 [3497278] smart account 3PPK7G7BQf3yWQdXapuBhEhYkaqNBfcvNtk > SELF 0.00000000 Waves

{ "type": 13, "id": "EK6tfbE8VauEQgMCo1Hc8gaho8dBdGytmu7uYAZvdfLZ", "fee": 1000000, "feeAssetId": null, "timestamp": 1675325733032, "version": 2, "chainId": 87, "sender": "3PPK7G7BQf3yWQdXapuBhEhYkaqNBfcvNtk", "senderPublicKey": "A7NMFMzFrP68kDc9YuQ5eyn4AvoXyFaRuanTKhzinA7k", "proofs": [ "2cBGgUt53LEqN1RRXyhBHWiyiTKn7H2ZGX2wRNTDpuWGtcuSR3ryTcaY74w2y6zpCLcqunRCCbewwJsxYWuEoVbc" ], "script": "base64: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", "height": 3497278, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2rbSxqXqwSA17nSfZo8e2MvGoymTVZi6MVAH57cffnDM Next: DE3hUHkYx9H8rFQc7mXW6UmeaHTsVGVQtjH3YBcvoHfa Diff:
OldNewDifferences
88 let TCI = base58'4CDoUKSAtLTwVTpdxFu6EcbafiCDZUSBXrWGjrAcCPoL'
99
1010 let isStopped = false
11+
12+let multi8 = 100000000
13+
14+let multi10 = 10000000000
1115
1216 @Callable(i)
1317 func stake () = {
2731 }
2832 let treasury = (inTreasury - pmtAmount)
2933 let singleTCIinValue = fraction(totalIssued, 100000000, treasury)
30- let amountToIssue = fraction(pmtAmount, singleTCIinValue, 100000000)
34+ let fee = fraction(pmtAmount, multi8, multi10)
35+ let depositBalanceAfterFee = (pmtAmount - fee)
36+ let amountToIssue = fraction(depositBalanceAfterFee, singleTCIinValue, 100000000)
3137 let TCIIssue = Reissue(TCI, amountToIssue, true)
3238 let transfer = ScriptTransfer(i.caller, amountToIssue, TCI)
39+ let transferFee = ScriptTransfer(Address(tw), fee, BA)
3340 [TCIIssue, transfer]
3441 }
3542 }
5461 case _ =>
5562 0
5663 }
57- let vp = fraction(assetBalance(this, BA), 100000000, TCIAmount)
58- let toRep = fraction(vp, amount, 100000000)
59- let tc = fraction(toRep, 100000000, 10000000000)
64+ let vp = fraction(assetBalance(this, BA), multi8, TCIAmount)
65+ let toRep = fraction(vp, amount, multi8)
66+ let tc = fraction(toRep, multi8, multi10)
6067 let brn = Burn(TCI, amount)
6168 let trb = (toRep - tc)
6269 let trsf = ScriptTransfer(i.caller, trb, BA)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let tw = base58'3P93R2GBkTGVehRPhytHr7sdxYww93jkbhm'
55
66 let BA = base58'8wUmN9Y15f3JR4KZfE81XLXpkdgwnqoBNG6NmocZpKQx'
77
88 let TCI = base58'4CDoUKSAtLTwVTpdxFu6EcbafiCDZUSBXrWGjrAcCPoL'
99
1010 let isStopped = false
11+
12+let multi8 = 100000000
13+
14+let multi10 = 10000000000
1115
1216 @Callable(i)
1317 func stake () = {
1418 let pmt = value(i.payments[0])
1519 let pmtAmount = pmt.amount
1620 if ((pmt.assetId != BA))
1721 then throw("You can stake sNSBT only")
1822 else if (isStopped)
1923 then throw("smart contract is on lock")
2024 else {
2125 let inTreasury = assetBalance(this, BA)
2226 let totalIssued = match assetInfo(TCI) {
2327 case asset: Asset =>
2428 asset.quantity
2529 case _ =>
2630 throw("Can't find asset")
2731 }
2832 let treasury = (inTreasury - pmtAmount)
2933 let singleTCIinValue = fraction(totalIssued, 100000000, treasury)
30- let amountToIssue = fraction(pmtAmount, singleTCIinValue, 100000000)
34+ let fee = fraction(pmtAmount, multi8, multi10)
35+ let depositBalanceAfterFee = (pmtAmount - fee)
36+ let amountToIssue = fraction(depositBalanceAfterFee, singleTCIinValue, 100000000)
3137 let TCIIssue = Reissue(TCI, amountToIssue, true)
3238 let transfer = ScriptTransfer(i.caller, amountToIssue, TCI)
39+ let transferFee = ScriptTransfer(Address(tw), fee, BA)
3340 [TCIIssue, transfer]
3441 }
3542 }
3643
3744
3845
3946 @Callable(i)
4047 func withdraw () = {
4148 let w = value(i.payments[0])
4249 let amount = w.amount
4350 let balance = assetBalance(i.caller, TCI)
4451 if ((w.assetId != TCI))
4552 then throw("sdasda")
4653 else if ((0 >= amount))
4754 then throw("Can't withdraw 0 or negative ammount")
4855 else if ((0 >= balance))
4956 then throw("Unsuficient account balance")
5057 else {
5158 let TCIAmount = match assetInfo(TCI) {
5259 case q: Asset =>
5360 q.quantity
5461 case _ =>
5562 0
5663 }
57- let vp = fraction(assetBalance(this, BA), 100000000, TCIAmount)
58- let toRep = fraction(vp, amount, 100000000)
59- let tc = fraction(toRep, 100000000, 10000000000)
64+ let vp = fraction(assetBalance(this, BA), multi8, TCIAmount)
65+ let toRep = fraction(vp, amount, multi8)
66+ let tc = fraction(toRep, multi8, multi10)
6067 let brn = Burn(TCI, amount)
6168 let trb = (toRep - tc)
6269 let trsf = ScriptTransfer(i.caller, trb, BA)
6370 let ttr = ScriptTransfer(Address(tw), tc, BA)
6471 [brn, trsf, ttr]
6572 }
6673 }
6774
6875
6976 @Verifier(tx)
7077 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
7178

github/deemru/w8io/6500d08 
31.88 ms