tx · 2GWm7BkWcubddzHbk3gwuizvVQbvLwFcY6TPVg9fBbGN

3NADYuG3G91PrmsrRqQfyeDCf2Pi53UV5id:  -0.01400000 Waves

2021.05.06 00:54 [1512956] smart account 3NADYuG3G91PrmsrRqQfyeDCf2Pi53UV5id > SELF 0.00000000 Waves

{ "type": 13, "id": "2GWm7BkWcubddzHbk3gwuizvVQbvLwFcY6TPVg9fBbGN", "fee": 1400000, "feeAssetId": null, "timestamp": 1620251638096, "version": 2, "chainId": 84, "sender": "3NADYuG3G91PrmsrRqQfyeDCf2Pi53UV5id", "senderPublicKey": "8agr5kfwDL7NLuMetvciXCcd9TcDKZhRwYZPPTAShaCC", "proofs": [ "2wrZkuzXT6pKPKfPMrkkCs3YX1ZuEF4nLBaq3F7Jc75NqrVjhNVNheRaLUuduy8NZkBDy8Pf1FT9N3MkpMt7UPTD" ], "script": "base64:AAIEAAAAAAAAAA0IAhIECgIBARIDCgEIAAAABwAAAAAPa2V5RXhjaGFuZ2VSYXRlAgAAAA1leGNoYW5nZV9yYXRlAAAAAB1rZXlFeGNoYW5nZVJhdGVTY2FsZURlbGltaXRlcgIAAAAdZXhjaGFuZ2VfcmF0ZV9zY2FsZV9kZWxpbWl0ZXIAAAAABFVTRE4BAAAAILYmKcME9c5TkaQOS3UkL2SMUbH6369UKb1I0h0qsqrRAAAAAAZVV09STEQBAAAAIC0YU6VQO6jm5AnV7EgahViVvI+ERufkxe853ucbrizpAAAAAAdhc3NldElkBQAAAARVU0ROAAAAAApjb21taXNzaW9uAAAAAAAAAHUwAAAAABhjb21taXNzaW9uU2NhbGVEZWxpbWl0ZXIAAAAAAAAPQkAAAAACAAAAAWkBAAAACXNldFBhcmFtcwAAAAIAAAAMZXhjaGFuZ2VSYXRlAAAAGmV4Y2hhbmdlUmF0ZVNjYWxlRGVsaW1pdGVyAwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAAR0aGlzCQAAAgAAAAECAAAAK09ubHkgdGhlIERBcHAgaXRzZWxmIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAD2tleUV4Y2hhbmdlUmF0ZQUAAAAMZXhjaGFuZ2VSYXRlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAB1rZXlFeGNoYW5nZVJhdGVTY2FsZURlbGltaXRlcgUAAAAaZXhjaGFuZ2VSYXRlU2NhbGVEZWxpbWl0ZXIFAAAAA25pbAAAAAFpAQAAAAttYWtlUGF5bWVudAAAAAEAAAAJcmVjaXBpZW50BAAAABByZWNpcGllbnRBZGRyZXNzCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAAAlyZWNpcGllbnQEAAAACSR0MDkxMjk4NwkABRQAAAACCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAZhbW91bnQICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAAB2Fzc2V0SWQEAAAACXBtdEFtb3VudAgFAAAACSR0MDkxMjk4NwAAAAJfMQQAAAAKcG10QXNzZXRJZAgFAAAACSR0MDkxMjk4NwAAAAJfMgMJAQAAAAIhPQAAAAIFAAAACnBtdEFzc2V0SWQFAAAAB2Fzc2V0SWQJAAACAAAAAQIAAAAXQXNzZXQgbXVzdCBiZSBVU0ROIG9ubHkEAAAAEGFtb3VudENvbW1pc3Npb24JAABrAAAAAwUAAAAJcG10QW1vdW50BQAAAApjb21taXNzaW9uBQAAABhjb21taXNzaW9uU2NhbGVEZWxpbWl0ZXIEAAAAF2Ftb3VudFdpdGhvdXRDb21taXNzaW9uCQAAZQAAAAIFAAAACXBtdEFtb3VudAUAAAAQYW1vdW50Q29tbWlzc2lvbgQAAAAOYW1vdW50Q2FzaGJhY2sJAABrAAAAAwUAAAAJcG10QW1vdW50AAAAAAAAAAAKAAAAAAAAAABkCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAEHJlY2lwaWVudEFkZHJlc3MFAAAAF2Ftb3VudFdpdGhvdXRDb21taXNzaW9uBQAAAAdhc3NldElkCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAEHJlY2lwaWVudEFkZHJlc3MFAAAADmFtb3VudENhc2hiYWNrBQAAAAZVV09STEQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAA5hbW91bnRDYXNoYmFjawUAAAAGVVdPUkxEBQAAAANuaWwAAAAAnpUhOw==", "height": 1512956, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BC8monaYtxij8jUZtvQkjqDSddmn8XpvsJHSbXwjf3GD Next: GyZscZDR6jNh3Fx2y88kroBkVoRYrjjTB1Q63ibCVSn9 Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+let keyExchangeRate = "exchange_rate"
5+
6+let keyExchangeRateScaleDelimiter = "exchange_rate_scale_delimiter"
7+
48 let USDN = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
59
6-let USDtest = base58'GPi1Q6QVgUmuomtThbim81hBYBEUWyf5BVmE4Tnd3sNg'
10+let UWORLD = base58'432rwiV6mi3SJGLkhGPeyHVNUj8rEgHpXwyc1yXj4M6Y'
711
8-let assetId = USDtest
12+let assetId = USDN
913
10-func getAssetInfo (assetId) = match assetId {
11- case id: ByteVector =>
12- let stringId = toBase58String(id)
13- let info = valueOrErrorMessage(assetInfo(id), (("Asset " + stringId) + " doesn't exist"))
14- $Tuple3(stringId, info.name, info.decimals)
15- case waves: Unit =>
16- $Tuple3("WAVES", "WAVES", 8)
17- case _ =>
18- throw("Match error")
19-}
14+let commission = 30000
15+
16+let commissionScaleDelimiter = 1000000
17+
18+@Callable(i)
19+func setParams (exchangeRate,exchangeRateScaleDelimiter) = if ((i.caller != this))
20+ then throw("Only the DApp itself can call this function")
21+ else [IntegerEntry(keyExchangeRate, exchangeRate), IntegerEntry(keyExchangeRateScaleDelimiter, exchangeRateScaleDelimiter)]
22+
2023
2124
2225 @Callable(i)
23-func call (recipient) = {
26+func makePayment (recipient) = {
2427 let recipientAddress = addressFromStringValue(recipient)
25- let $t0756831 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
26- let pmtAmount = $t0756831._1
27- let pmtAssetId = $t0756831._2
28- let $t0834907 = getAssetInfo(pmtAssetId)
29- let pmtStrAssetId = $t0834907._1
30- let pmtAssetName = $t0834907._2
31- let pmtDecimals = $t0834907._3
28+ let $t0912987 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
29+ let pmtAmount = $t0912987._1
30+ let pmtAssetId = $t0912987._2
3231 if ((pmtAssetId != assetId))
33- then throw("Assets must be USDN only")
32+ then throw("Asset must be USDN only")
3433 else {
35- let commission = 30000
36- let commissionScaleDelimiter = 1000000
37- let fee = fraction(pmtAmount, 3, 100)
38- let amountWithoutFee = (pmtAmount - fee)
39-[ScriptTransfer(i.caller, 1, assetId), ScriptTransfer(recipientAddress, amountWithoutFee, assetId)]
34+ let amountCommission = fraction(pmtAmount, commission, commissionScaleDelimiter)
35+ let amountWithoutCommission = (pmtAmount - amountCommission)
36+ let amountCashback = fraction(pmtAmount, 10, 100)
37+[ScriptTransfer(recipientAddress, amountWithoutCommission, assetId), ScriptTransfer(recipientAddress, amountCashback, UWORLD), ScriptTransfer(i.caller, amountCashback, UWORLD)]
4038 }
4139 }
4240
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+let keyExchangeRate = "exchange_rate"
5+
6+let keyExchangeRateScaleDelimiter = "exchange_rate_scale_delimiter"
7+
48 let USDN = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
59
6-let USDtest = base58'GPi1Q6QVgUmuomtThbim81hBYBEUWyf5BVmE4Tnd3sNg'
10+let UWORLD = base58'432rwiV6mi3SJGLkhGPeyHVNUj8rEgHpXwyc1yXj4M6Y'
711
8-let assetId = USDtest
12+let assetId = USDN
913
10-func getAssetInfo (assetId) = match assetId {
11- case id: ByteVector =>
12- let stringId = toBase58String(id)
13- let info = valueOrErrorMessage(assetInfo(id), (("Asset " + stringId) + " doesn't exist"))
14- $Tuple3(stringId, info.name, info.decimals)
15- case waves: Unit =>
16- $Tuple3("WAVES", "WAVES", 8)
17- case _ =>
18- throw("Match error")
19-}
14+let commission = 30000
15+
16+let commissionScaleDelimiter = 1000000
17+
18+@Callable(i)
19+func setParams (exchangeRate,exchangeRateScaleDelimiter) = if ((i.caller != this))
20+ then throw("Only the DApp itself can call this function")
21+ else [IntegerEntry(keyExchangeRate, exchangeRate), IntegerEntry(keyExchangeRateScaleDelimiter, exchangeRateScaleDelimiter)]
22+
2023
2124
2225 @Callable(i)
23-func call (recipient) = {
26+func makePayment (recipient) = {
2427 let recipientAddress = addressFromStringValue(recipient)
25- let $t0756831 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
26- let pmtAmount = $t0756831._1
27- let pmtAssetId = $t0756831._2
28- let $t0834907 = getAssetInfo(pmtAssetId)
29- let pmtStrAssetId = $t0834907._1
30- let pmtAssetName = $t0834907._2
31- let pmtDecimals = $t0834907._3
28+ let $t0912987 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
29+ let pmtAmount = $t0912987._1
30+ let pmtAssetId = $t0912987._2
3231 if ((pmtAssetId != assetId))
33- then throw("Assets must be USDN only")
32+ then throw("Asset must be USDN only")
3433 else {
35- let commission = 30000
36- let commissionScaleDelimiter = 1000000
37- let fee = fraction(pmtAmount, 3, 100)
38- let amountWithoutFee = (pmtAmount - fee)
39-[ScriptTransfer(i.caller, 1, assetId), ScriptTransfer(recipientAddress, amountWithoutFee, assetId)]
34+ let amountCommission = fraction(pmtAmount, commission, commissionScaleDelimiter)
35+ let amountWithoutCommission = (pmtAmount - amountCommission)
36+ let amountCashback = fraction(pmtAmount, 10, 100)
37+[ScriptTransfer(recipientAddress, amountWithoutCommission, assetId), ScriptTransfer(recipientAddress, amountCashback, UWORLD), ScriptTransfer(i.caller, amountCashback, UWORLD)]
4038 }
4139 }
4240
4341

github/deemru/w8io/169f3d6 
51.47 ms