tx · Fm35RrkjvLNf4dZYggTUdmDGAtDW7KV7VRWJWcH1tMFc

3MwLcJy3MSb2kq6dUaUR5uBgm8zCKZMjz2S:  -0.01400000 Waves

2021.03.26 22:57 [1455161] smart account 3MwLcJy3MSb2kq6dUaUR5uBgm8zCKZMjz2S > SELF 0.00000000 Waves

{ "type": 13, "id": "Fm35RrkjvLNf4dZYggTUdmDGAtDW7KV7VRWJWcH1tMFc", "fee": 1400000, "feeAssetId": null, "timestamp": 1616788689978, "version": 2, "chainId": 84, "sender": "3MwLcJy3MSb2kq6dUaUR5uBgm8zCKZMjz2S", "senderPublicKey": "CgByewRUvLk7UtWSfRMLSYw4Ap2wT5dcdVYKideqDp9M", "proofs": [ "2yG9Dp4iArhRHv6uzAJzzXmPU8TmQRQmiVsAZmDKSRKF4qQbVqrdbBgqz8JVNViLpAt2sgjvEJw9zLFJrUTtRfKh" ], "script": "base64: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", "height": 1455161, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 53sAX32qwPVN2HodRM1PU8mprkhTKunBVwxU6tULu1eh Next: 3sPLws5tXwicZQGq4hv1AaDf27Z369MFXcftqpGZsoHa Diff:
OldNewDifferences
6969 let fee = getFeeAmount(totalAmount)
7070 let amount = (totalAmount - fee)
7171 let dyzraptAmount = usdnToDyzrapt(amount)
72- let totalFee = getTotalFeeUsd()
73- throw(((((((((("total: " + toString(totalAmount)) + "; fee: ") + toString(fee)) + "; amount: ") + toString(amount)) + "; dyzrapt: ") + toString(dyzraptAmount)) + "; totalFee: ") + toString(totalFee)))
72+ let savedFee = getTotalFeeUsd()
73+ let totalFee = (savedFee + fee)
74+[IntegerEntry(totalFeeUsdKey, totalFee), ScriptTransfer(i.caller, dyzraptAmount, dyzraptAssetId)]
7475 }
7576 }
7677
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let totalFeeEthKey = "total_fee_eth"
55
66 let totalFeeUsdKey = "total_fee_usd"
77
88 let totalFeeDyzraptKey = "total_fee_dyzrapt"
99
1010 let priceOfDyzrapt = "dyz"
1111
1212 let priceOfEth = "eth"
1313
1414 let oracleAddress = Address(base58'3N7G2kVtBTh94aEnDHQ9dpi4EdsDxAiDXjB')
1515
1616 let dyzraptAssetId = base58'Bi4jxKEFjjYG2emeyxZfpkVMS88N7uAogHNsi1urkoJA'
1717
1818 let ethAssetId = base58'3JJkzB4pFXcqdJvC9TcV8ys1FLgesr5SxbhmykkpceQp'
1919
2020 let usdnAssetId = base58'9Nf5wpj6jds3VRZKDryp6Dtf3R9d8MdbjNhencLogCr5'
2121
2222 func getFeeAmount (amount) = {
2323 let fee = fraction(amount, 3, 100)
2424 fee
2525 }
2626
2727
2828 func getIntKeyData (key) = {
2929 let v = valueOrElse(getInteger(this, key), 0)
3030 v
3131 }
3232
3333
3434 func getTotalFeeEth () = getIntKeyData(totalFeeEthKey)
3535
3636
3737 func getTotalFeeUsd () = getIntKeyData(totalFeeUsdKey)
3838
3939
4040 func getTotalFeeDyzrapt () = getIntKeyData(totalFeeDyzraptKey)
4141
4242
4343 func usdnToDyzrapt (amount) = {
4444 let dyzraptPrice = valueOrErrorMessage(getInteger(oracleAddress, "dyz"), "Unable to load price")
4545 fraction(amount, 10000, dyzraptPrice)
4646 }
4747
4848
4949 @Callable(i)
5050 func test () = {
5151 let pmt = value(i.payments[0])
5252 let assetId = pmt.assetId
5353 let amount = pmt.amount
5454 if ((assetId == dyzraptAssetId))
5555 then throw(("its a dyzrapt. Amount=" + toString(amount)))
5656 else throw("its not a dyzrapt")
5757 }
5858
5959
6060
6161 @Callable(i)
6262 func swapUsdnToDyzrapt () = {
6363 let pmt = value(i.payments[0])
6464 let assetId = pmt.assetId
6565 let totalAmount = pmt.amount
6666 if ((assetId != usdnAssetId))
6767 then throw("Only usdn tokens are allowed for swapping")
6868 else {
6969 let fee = getFeeAmount(totalAmount)
7070 let amount = (totalAmount - fee)
7171 let dyzraptAmount = usdnToDyzrapt(amount)
72- let totalFee = getTotalFeeUsd()
73- throw(((((((((("total: " + toString(totalAmount)) + "; fee: ") + toString(fee)) + "; amount: ") + toString(amount)) + "; dyzrapt: ") + toString(dyzraptAmount)) + "; totalFee: ") + toString(totalFee)))
72+ let savedFee = getTotalFeeUsd()
73+ let totalFee = (savedFee + fee)
74+[IntegerEntry(totalFeeUsdKey, totalFee), ScriptTransfer(i.caller, dyzraptAmount, dyzraptAssetId)]
7475 }
7576 }
7677
7778

github/deemru/w8io/03bedc9 
38.14 ms