tx · 5R5BHKikDAGwFGHyA72uMjcsx5XfXsQJNRvZmsmcyxUB

3MwLcJy3MSb2kq6dUaUR5uBgm8zCKZMjz2S:  -0.01400000 Waves

2021.03.26 23:42 [1455204] smart account 3MwLcJy3MSb2kq6dUaUR5uBgm8zCKZMjz2S > SELF 0.00000000 Waves

{ "type": 13, "id": "5R5BHKikDAGwFGHyA72uMjcsx5XfXsQJNRvZmsmcyxUB", "fee": 1400000, "feeAssetId": null, "timestamp": 1616791367112, "version": 2, "chainId": 84, "sender": "3MwLcJy3MSb2kq6dUaUR5uBgm8zCKZMjz2S", "senderPublicKey": "CgByewRUvLk7UtWSfRMLSYw4Ap2wT5dcdVYKideqDp9M", "proofs": [ "2mg1d45Fq2mdvF8rX4g2AbNZK7eaMa7MkvwwtR44hBUJ9A8W5Fub5jrLfMk4P4h4aK7AanAX8tLVNdoHtYxSq3mS" ], "script": "base64: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b3RhbEFtb3VudAUAAAADZmVlBAAAAA1keXpyYXB0QW1vdW50CQEAAAANdXNkblRvRHl6cmFwdAAAAAEFAAAABmFtb3VudAQAAAAIc2F2ZWRGZWUJAQAAAA5nZXRUb3RhbEZlZVVzZAAAAAAEAAAACHRvdGFsRmVlCQAAZAAAAAIFAAAACHNhdmVkRmVlBQAAAANmZWUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADnRvdGFsRmVlVXNkS2V5BQAAAAh0b3RhbEZlZQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAADWR5enJhcHRBbW91bnQFAAAADmR5enJhcHRBc3NldElkBQAAAANuaWwAAAABaQEAAAAQc3dhcEV0aFRvRHl6cmFwdAAAAAAEAAAAA3BtdAkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAHYXNzZXRJZAgFAAAAA3BtdAAAAAdhc3NldElkBAAAAAt0b3RhbEFtb3VudAgFAAAAA3BtdAAAAAZhbW91bnQDCQEAAAACIT0AAAACBQAAAAdhc3NldElkBQAAAApldGhBc3NldElkCQAAAgAAAAECAAAAKU9ubHkgV0VUSCB0b2tlbnMgYXJlIGFsbG93ZWQgZm9yIHN3YXBwaW5nBAAAAANmZWUJAQAAAAxnZXRGZWVBbW91bnQAAAABBQAAAAt0b3RhbEFtb3VudAQAAAAGYW1vdW50CQAAZQAAAAIFAAAAC3RvdGFsQW1vdW50BQAAAANmZWUEAAAACGV0aFByaWNlCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAANb3JhY2xlQWRkcmVzcwUAAAANcHJpY2VPZkV0aEtleQIAAAAUVW5hYmxlIHRvIGxvYWQgcHJpY2UEAAAACnVzZG5BbW91bnQJAABrAAAAAwUAAAAGYW1vdW50BQAAAAhldGhQcmljZQAAAAAAAAAnEAQAAAANZHl6cmFwdEFtb3VudAkBAAAADXVzZG5Ub0R5enJhcHQAAAABBQAAAAp1c2RuQW1vdW50BAAAAAhzYXZlZEZlZQkBAAAADmdldFRvdGFsRmVlRXRoAAAAAAQAAAAIdG90YWxGZWUJAABkAAAAAgUAAAAIc2F2ZWRGZWUFAAAAA2ZlZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAOdG90YWxGZWVFdGhLZXkFAAAACHRvdGFsRmVlCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAANZHl6cmFwdEFtb3VudAUAAAAOZHl6cmFwdEFzc2V0SWQFAAAAA25pbAAAAAFpAQAAABFzd2FwRHl6cmFwdFRvVXNkbgAAAAAEAAAAA3BtdAkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAHYXNzZXRJZAgFAAAAA3BtdAAAAAdhc3NldElkBAAAAAt0b3RhbEFtb3VudAgFAAAAA3BtdAAAAAZhbW91bnQDCQEAAAACIT0AAAACBQAAAAdhc3NldElkBQAAAA5keXpyYXB0QXNzZXRJZAkAAAIAAAABAgAAACxPbmx5IERZWlJBUFQgdG9rZW5zIGFyZSBhbGxvd2VkIGZvciBzd2FwcGluZwQAAAADZmVlCQEAAAAMZ2V0RmVlQW1vdW50AAAAAQUAAAALdG90YWxBbW91bnQEAAAABmFtb3VudAkAAGUAAAACBQAAAAt0b3RhbEFtb3VudAUAAAADZmVlBAAAAAp1c2RuQW1vdW50CQEAAAANZHl6cmFwdFRvVXNkbgAAAAEFAAAABmFtb3VudAQAAAAIc2F2ZWRGZWUJAQAAABJnZXRUb3RhbEZlZUR5enJhcHQAAAAABAAAAAh0b3RhbEZlZQkAAGQAAAACBQAAAAhzYXZlZEZlZQUAAAADZmVlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA50b3RhbEZlZVVzZEtleQUAAAAIdG90YWxGZWUJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAAp1c2RuQW1vdW50BQAAAAt1c2RuQXNzZXRJZAUAAAADbmlsAAAAAPEs+Hc=", "height": 1455204, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3sPLws5tXwicZQGq4hv1AaDf27Z369MFXcftqpGZsoHa Next: 2YNjFpGgKgw4E9zFmqoJ3auPoUMF72DbQ1qQtGd6gBTS Diff:
OldNewDifferences
4646 }
4747
4848
49+func dyzraptToUsdn (amount) = {
50+ let dyzraptPrice = valueOrErrorMessage(getInteger(oracleAddress, priceOfDyzraptKey), "Unable to load price")
51+ fraction(amount, dyzraptPrice, 10000)
52+ }
53+
54+
4955 @Callable(i)
5056 func test () = {
5157 let pmt = value(i.payments[0])
6470 let assetId = pmt.assetId
6571 let totalAmount = pmt.amount
6672 if ((assetId != usdnAssetId))
67- then throw("Only usdn tokens are allowed for swapping")
73+ then throw("Only USDN tokens are allowed for swapping")
6874 else {
6975 let fee = getFeeAmount(totalAmount)
7076 let amount = (totalAmount - fee)
8389 let assetId = pmt.assetId
8490 let totalAmount = pmt.amount
8591 if ((assetId != ethAssetId))
86- then throw("Only weth tokens are allowed for swapping")
92+ then throw("Only WETH tokens are allowed for swapping")
8793 else {
8894 let fee = getFeeAmount(totalAmount)
8995 let amount = (totalAmount - fee)
97103 }
98104
99105
106+
107+@Callable(i)
108+func swapDyzraptToUsdn () = {
109+ let pmt = value(i.payments[0])
110+ let assetId = pmt.assetId
111+ let totalAmount = pmt.amount
112+ if ((assetId != dyzraptAssetId))
113+ then throw("Only DYZRAPT tokens are allowed for swapping")
114+ else {
115+ let fee = getFeeAmount(totalAmount)
116+ let amount = (totalAmount - fee)
117+ let usdnAmount = dyzraptToUsdn(amount)
118+ let savedFee = getTotalFeeDyzrapt()
119+ let totalFee = (savedFee + fee)
120+[IntegerEntry(totalFeeUsdKey, totalFee), ScriptTransfer(i.caller, usdnAmount, usdnAssetId)]
121+ }
122+ }
123+
124+
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 priceOfDyzraptKey = "dyz"
1111
1212 let priceOfEthKey = "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, priceOfDyzraptKey), "Unable to load price")
4545 fraction(amount, 10000, dyzraptPrice)
4646 }
4747
4848
49+func dyzraptToUsdn (amount) = {
50+ let dyzraptPrice = valueOrErrorMessage(getInteger(oracleAddress, priceOfDyzraptKey), "Unable to load price")
51+ fraction(amount, dyzraptPrice, 10000)
52+ }
53+
54+
4955 @Callable(i)
5056 func test () = {
5157 let pmt = value(i.payments[0])
5258 let assetId = pmt.assetId
5359 let amount = pmt.amount
5460 if ((assetId == dyzraptAssetId))
5561 then throw(("its a dyzrapt. Amount=" + toString(amount)))
5662 else throw("its not a dyzrapt")
5763 }
5864
5965
6066
6167 @Callable(i)
6268 func swapUsdnToDyzrapt () = {
6369 let pmt = value(i.payments[0])
6470 let assetId = pmt.assetId
6571 let totalAmount = pmt.amount
6672 if ((assetId != usdnAssetId))
67- then throw("Only usdn tokens are allowed for swapping")
73+ then throw("Only USDN tokens are allowed for swapping")
6874 else {
6975 let fee = getFeeAmount(totalAmount)
7076 let amount = (totalAmount - fee)
7177 let dyzraptAmount = usdnToDyzrapt(amount)
7278 let savedFee = getTotalFeeUsd()
7379 let totalFee = (savedFee + fee)
7480 [IntegerEntry(totalFeeUsdKey, totalFee), ScriptTransfer(i.caller, dyzraptAmount, dyzraptAssetId)]
7581 }
7682 }
7783
7884
7985
8086 @Callable(i)
8187 func swapEthToDyzrapt () = {
8288 let pmt = value(i.payments[0])
8389 let assetId = pmt.assetId
8490 let totalAmount = pmt.amount
8591 if ((assetId != ethAssetId))
86- then throw("Only weth tokens are allowed for swapping")
92+ then throw("Only WETH tokens are allowed for swapping")
8793 else {
8894 let fee = getFeeAmount(totalAmount)
8995 let amount = (totalAmount - fee)
9096 let ethPrice = valueOrErrorMessage(getInteger(oracleAddress, priceOfEthKey), "Unable to load price")
9197 let usdnAmount = fraction(amount, ethPrice, 10000)
9298 let dyzraptAmount = usdnToDyzrapt(usdnAmount)
9399 let savedFee = getTotalFeeEth()
94100 let totalFee = (savedFee + fee)
95101 [IntegerEntry(totalFeeEthKey, totalFee), ScriptTransfer(i.caller, dyzraptAmount, dyzraptAssetId)]
96102 }
97103 }
98104
99105
106+
107+@Callable(i)
108+func swapDyzraptToUsdn () = {
109+ let pmt = value(i.payments[0])
110+ let assetId = pmt.assetId
111+ let totalAmount = pmt.amount
112+ if ((assetId != dyzraptAssetId))
113+ then throw("Only DYZRAPT tokens are allowed for swapping")
114+ else {
115+ let fee = getFeeAmount(totalAmount)
116+ let amount = (totalAmount - fee)
117+ let usdnAmount = dyzraptToUsdn(amount)
118+ let savedFee = getTotalFeeDyzrapt()
119+ let totalFee = (savedFee + fee)
120+[IntegerEntry(totalFeeUsdKey, totalFee), ScriptTransfer(i.caller, usdnAmount, usdnAssetId)]
121+ }
122+ }
123+
124+

github/deemru/w8io/873ac7e 
54.30 ms