2022.09.26 16:33 [3311618] smart account 3PGcRy2VFKYhusWo4j6dR8sK8Hi8gZcTopS > SELF 0.00000000 Waves

{ "type": 13, "id": "BPXx8xy9ynvm6WkdR1vgN7xwo4uzVbqbWDp9MbntL2tA", "fee": 800000, "feeAssetId": null, "timestamp": 1664199216034, "version": 2, "chainId": 87, "sender": "3PGcRy2VFKYhusWo4j6dR8sK8Hi8gZcTopS", "senderPublicKey": "6vs9orALhZsXKNcKtzPwfM18kgyVRj7qiXM4EdQSgAaZ", "proofs": [ "3jQdHkaJnN65sPk6wKgp93NKDs2j58nnKhP7j1PUgzuU2J2nhYmWcSoPcq14vdGKra9qyGXUZb8GUDh7JK1iiyg" ], "script": "base64:AAIFAAAAAAAAAAYIAhIAEgAAAAABAAAAAAthZG1pbnJpZ2h0cwkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwIAAAARREFwcF9BZG1pbl9SaWdodHMAAAACAAAAAWkBAAAAEEJ1eVdhdmVzV2l0aFVTRE4AAAAABAAAAA5TcGVuZFVTRE5WYWx1ZQAAAAAAAvrwgAQAAAAObWluRGFwcEJhbGFuY2UAAAAAAABMS0AEAAAAEURhcHBmZWVwZXJjZW50YWdlAAAAAAAAAAAGBAAAAA1jYWxsZXJhZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAC0FNTV9BZGRyZXNzCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzUEhhTmdvbUJrcnZFTDJRbnVKYXJRVkphNzF3anc5cWlxRwQAAAAEVVNETgEAAAAgtiYpwwT1zlORpA5LdSQvZIxRsfrfr1QpvUjSHSqyqtEEAAAACWtCYWxhbmNlQQIAAAAPQV9hc3NldF9iYWxhbmNlBAAAAA9BX2Fzc2V0X2JhbGFuY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAC0FNTV9BZGRyZXNzBQAAAAlrQmFsYW5jZUEEAAAACWtCYWxhbmNlQgIAAAAPQl9hc3NldF9iYWxhbmNlBAAAAA9CX2Fzc2V0X2JhbGFuY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAC0FNTV9BZGRyZXNzBQAAAAlrQmFsYW5jZUIEAAAAEW5ld2JhbGFuY2VvZldBVkVTCQAAawAAAAMFAAAAD0JfYXNzZXRfYmFsYW5jZQUAAAAPQV9hc3NldF9iYWxhbmNlCQAAZAAAAAIFAAAAD0JfYXNzZXRfYmFsYW5jZQUAAAAOU3BlbmRVU0ROVmFsdWUEAAAAEm1pbkFtb3VudFRvUmVjZWl2ZQkAAGUAAAACBQAAAA9BX2Fzc2V0X2JhbGFuY2UFAAAAEW5ld2JhbGFuY2VvZldBVkVTBAAAAAdBTU1fZmVlCQAAawAAAAMFAAAAEm1pbkFtb3VudFRvUmVjZWl2ZQUAAAARRGFwcGZlZXBlcmNlbnRhZ2UAAAAAAAAAA+gEAAAAGGFjdHVhbG1pbkFtb3VudFRvUmVjZWl2ZQkAAGUAAAACBQAAABJtaW5BbW91bnRUb1JlY2VpdmUFAAAAB0FNTV9mZWUEAAAAB3BheW1lbnQJAQAAAA9BdHRhY2hlZFBheW1lbnQAAAACBQAAAARVU0ROBQAAAA5TcGVuZFVTRE5WYWx1ZQQAAAAQaW52b2tlVG9CdXlXQVZFUwkAA/wAAAAEBQAAAAtBTU1fQWRkcmVzcwIAAAAIZXhjaGFuZ2UJAARMAAAAAgUAAAAYYWN0dWFsbWluQW1vdW50VG9SZWNlaXZlBQAAAANuaWwJAARMAAAAAgUAAAAHcGF5bWVudAUAAAADbmlsAwkAAAAAAAACBQAAABBpbnZva2VUb0J1eVdBVkVTBQAAABBpbnZva2VUb0J1eVdBVkVTAwkBAAAAAiE9AAAAAgUAAAALYWRtaW5yaWdodHMFAAAADWNhbGxlcmFkZHJlc3MJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAIkkga25vdyBZb3UgYXJlIG5vdCBBbiBBZG1pbi4gT25seSAFAAAAC2FkbWlucmlnaHRzAgAAABQgaGFzIHJpZ2h0cyB0byBTaWduLgMJAABmAAAAAgUAAAAObWluRGFwcEJhbGFuY2UJAAPwAAAAAgUAAAAEdGhpcwUAAAAEVVNETgkAAAIAAAABCQABLAAAAAICAAAANVlvdSBBY2NvdW50IGlzIFNob3J0IGluIDUgVVNETiBCYWxhbmNlLiBZb3UgaGF2ZSBvbmx5CQABpAAAAAEJAAPwAAAAAgUAAAAEdGhpcwUAAAAEVVNETgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAdtZXNzYWdlAgAAABxUb2tlbnMgU3dhcHBlZCBTdWNjZXNzZnVsbHkuCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABZDb2xsZWN0ZWRfV2F2ZXNfQW1vdW50BQAAABhhY3R1YWxtaW5BbW91bnRUb1JlY2VpdmUFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAASU2VsbFdhdmVzdG9HZXRVU0ROAAAAAAQAAAANY2FsbGVyYWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAABNtaW5EYXBwV0FWRVNCYWxhbmNlAAAAAAAAD0JABAAAAA9TcGVuZFdBVkVTVmFsdWUJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMCAAAAFkNvbGxlY3RlZF9XYXZlc19BbW91bnQEAAAAC0FNTV9BZGRyZXNzCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzUEhhTmdvbUJrcnZFTDJRbnVKYXJRVkphNzF3anc5cWlxRwQAAAAJa0JhbGFuY2VBAgAAAA9BX2Fzc2V0X2JhbGFuY2UEAAAAD0FfYXNzZXRfYmFsYW5jZQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAALQU1NX0FkZHJlc3MFAAAACWtCYWxhbmNlQQQAAAAJa0JhbGFuY2VCAgAAAA9CX2Fzc2V0X2JhbGFuY2UEAAAAD0JfYXNzZXRfYmFsYW5jZQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAALQU1NX0FkZHJlc3MFAAAACWtCYWxhbmNlQgQAAAAQbmV3YmFsYW5jZW9mVVNETgkAAGsAAAADBQAAAA9CX2Fzc2V0X2JhbGFuY2UFAAAAD0FfYXNzZXRfYmFsYW5jZQkAAGQAAAACBQAAAA9BX2Fzc2V0X2JhbGFuY2UFAAAAD1NwZW5kV0FWRVNWYWx1ZQQAAAASbWluQW1vdW50VG9SZWNlaXZlCQAAZQAAAAIFAAAAD0JfYXNzZXRfYmFsYW5jZQUAAAAQbmV3YmFsYW5jZW9mVVNETgQAAAALZGVwdGhmYWN0b3IJAABrAAAAAwUAAAASbWluQW1vdW50VG9SZWNlaXZlAAAAAAAAAAABAAAAAAAAAABkBAAAABhhY3R1YWxtaW5BbW91bnRUb1JlY2VpdmUJAABlAAAAAgUAAAASbWluQW1vdW50VG9SZWNlaXZlBQAAAAtkZXB0aGZhY3RvcgQAAAAHcGF5bWVudAkBAAAAD0F0dGFjaGVkUGF5bWVudAAAAAIFAAAABHVuaXQFAAAAD1NwZW5kV0FWRVNWYWx1ZQQAAAARaW52b2tlVG9TZWxsV0FWRVMJAAP8AAAABAUAAAALQU1NX0FkZHJlc3MCAAAACGV4Y2hhbmdlCQAETAAAAAIFAAAAGGFjdHVhbG1pbkFtb3VudFRvUmVjZWl2ZQUAAAADbmlsCQAETAAAAAIFAAAAB3BheW1lbnQFAAAAA25pbAMJAAAAAAAAAgUAAAARaW52b2tlVG9TZWxsV0FWRVMFAAAAEWludm9rZVRvU2VsbFdBVkVTAwkBAAAAAiE9AAAAAgUAAAALYWRtaW5yaWdodHMFAAAADWNhbGxlcmFkZHJlc3MJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAIkkga25vdyBZb3UgYXJlIG5vdCBBbiBBZG1pbi4gT25seSAFAAAAC2FkbWlucmlnaHRzAgAAABQgaGFzIHJpZ2h0cyB0byBTaWduLgMJAABmAAAAAgUAAAATbWluRGFwcFdBVkVTQmFsYW5jZQgJAAPvAAAAAQUAAAAEdGhpcwAAAAlhdmFpbGFibGUJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAADVZb3UgQWNjb3VudCBpcyBTaG9ydCBpbiBXQVZFUyBCYWxhbmNlLiBZb3UgaGF2ZSBvbmx5IAkAAaQAAAABCAkAA+8AAAABBQAAAAR0aGlzAAAACWF2YWlsYWJsZQIAAAAMIGluc3RlYWQgb2YgCQABpAAAAAEFAAAAE21pbkRhcHBXQVZFU0JhbGFuY2UCAAAABiBXQVZFUwMJAABmAAAAAgAAAAAAAExLQAUAAAAYYWN0dWFsbWluQW1vdW50VG9SZWNlaXZlCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAARFlvdSBjYW4ndCByZWNlaXZlIGxlc3MgdGhhbiA1IFVTRE4uIFJpZ2h0IG5vdyBpdCB3aWxsIGdpdmUgeW91IG9ubHkgCQABpAAAAAEJAABpAAAAAgUAAAAYYWN0dWFsbWluQW1vdW50VG9SZWNlaXZlAAAAAAAAD0JAAgAAAAEuCQABpAAAAAEJAABrAAAAAwUAAAAYYWN0dWFsbWluQW1vdW50VG9SZWNlaXZlAAAAAAAAAAABAAAAAAAAAYagCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAAB21lc3NhZ2UCAAAAHFRva2VucyBTd2FwcGVkIFN1Y2Nlc3NmdWxseS4JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAFUNvbGxlY3RlZF9VU0ROX0Ftb3VudAUAAAAYYWN0dWFsbWluQW1vdW50VG9SZWNlaXZlBQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXmr9HkZ", "height": 3311618, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Q5GpTo5V4hQy9ojTBJDrmeJEJMSMLDewY5JXZ2iUAvs Next: HitmsiPSQkpFyHRv9eUCYSeRepJgSwvmxKWkgKztsMBS Diff:
OldNewDifferences
5252 then if ((adminrights != calleraddress))
5353 then throw((("I know You are not An Admin. Only " + adminrights) + " has rights to Sign."))
5454 else if ((minDappWAVESBalance > wavesBalance(this).available))
55- then throw((((("You Account is Short in WAVES Balance. You have only" + toString(wavesBalance(this).available)) + "instead of ") + toString(minDappWAVESBalance)) + " WAVES"))
55+ then throw((((("You Account is Short in WAVES Balance. You have only " + toString(wavesBalance(this).available)) + " instead of ") + toString(minDappWAVESBalance)) + " WAVES"))
5656 else if ((5000000 > actualminAmountToReceive))
57- then throw("You can't receive less than 5 USDN.")
57+ then throw(((("You can't receive less than 5 USDN. Right now it will give you only " + toString((actualminAmountToReceive / 1000000))) + ".") + toString(fraction(actualminAmountToReceive, 1, 100000))))
5858 else [StringEntry("message", "Tokens Swapped Successfully."), IntegerEntry("Collected_USDN_Amount", actualminAmountToReceive)]
5959 else throw("Strict value is not equal to itself.")
6060 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let adminrights = getStringValue(this, "DApp_Admin_Rights")
55
66 @Callable(i)
77 func BuyWavesWithUSDN () = {
88 let SpendUSDNValue = 50000000
99 let minDappBalance = 5000000
1010 let Dappfeepercentage = 6
1111 let calleraddress = toBase58String(i.caller.bytes)
1212 let AMM_Address = addressFromStringValue("3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG")
1313 let USDN = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
1414 let kBalanceA = "A_asset_balance"
1515 let A_asset_balance = getIntegerValue(AMM_Address, kBalanceA)
1616 let kBalanceB = "B_asset_balance"
1717 let B_asset_balance = getIntegerValue(AMM_Address, kBalanceB)
1818 let newbalanceofWAVES = fraction(B_asset_balance, A_asset_balance, (B_asset_balance + SpendUSDNValue))
1919 let minAmountToReceive = (A_asset_balance - newbalanceofWAVES)
2020 let AMM_fee = fraction(minAmountToReceive, Dappfeepercentage, 1000)
2121 let actualminAmountToReceive = (minAmountToReceive - AMM_fee)
2222 let payment = AttachedPayment(USDN, SpendUSDNValue)
2323 let invokeToBuyWAVES = invoke(AMM_Address, "exchange", [actualminAmountToReceive], [payment])
2424 if ((invokeToBuyWAVES == invokeToBuyWAVES))
2525 then if ((adminrights != calleraddress))
2626 then throw((("I know You are not An Admin. Only " + adminrights) + " has rights to Sign."))
2727 else if ((minDappBalance > assetBalance(this, USDN)))
2828 then throw(("You Account is Short in 5 USDN Balance. You have only" + toString(assetBalance(this, USDN))))
2929 else [StringEntry("message", "Tokens Swapped Successfully."), IntegerEntry("Collected_Waves_Amount", actualminAmountToReceive)]
3030 else throw("Strict value is not equal to itself.")
3131 }
3232
3333
3434
3535 @Callable(i)
3636 func SellWavestoGetUSDN () = {
3737 let calleraddress = toBase58String(i.caller.bytes)
3838 let minDappWAVESBalance = 1000000
3939 let SpendWAVESValue = getIntegerValue(this, "Collected_Waves_Amount")
4040 let AMM_Address = addressFromStringValue("3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG")
4141 let kBalanceA = "A_asset_balance"
4242 let A_asset_balance = getIntegerValue(AMM_Address, kBalanceA)
4343 let kBalanceB = "B_asset_balance"
4444 let B_asset_balance = getIntegerValue(AMM_Address, kBalanceB)
4545 let newbalanceofUSDN = fraction(B_asset_balance, A_asset_balance, (A_asset_balance + SpendWAVESValue))
4646 let minAmountToReceive = (B_asset_balance - newbalanceofUSDN)
4747 let depthfactor = fraction(minAmountToReceive, 1, 100)
4848 let actualminAmountToReceive = (minAmountToReceive - depthfactor)
4949 let payment = AttachedPayment(unit, SpendWAVESValue)
5050 let invokeToSellWAVES = invoke(AMM_Address, "exchange", [actualminAmountToReceive], [payment])
5151 if ((invokeToSellWAVES == invokeToSellWAVES))
5252 then if ((adminrights != calleraddress))
5353 then throw((("I know You are not An Admin. Only " + adminrights) + " has rights to Sign."))
5454 else if ((minDappWAVESBalance > wavesBalance(this).available))
55- then throw((((("You Account is Short in WAVES Balance. You have only" + toString(wavesBalance(this).available)) + "instead of ") + toString(minDappWAVESBalance)) + " WAVES"))
55+ then throw((((("You Account is Short in WAVES Balance. You have only " + toString(wavesBalance(this).available)) + " instead of ") + toString(minDappWAVESBalance)) + " WAVES"))
5656 else if ((5000000 > actualminAmountToReceive))
57- then throw("You can't receive less than 5 USDN.")
57+ then throw(((("You can't receive less than 5 USDN. Right now it will give you only " + toString((actualminAmountToReceive / 1000000))) + ".") + toString(fraction(actualminAmountToReceive, 1, 100000))))
5858 else [StringEntry("message", "Tokens Swapped Successfully."), IntegerEntry("Collected_USDN_Amount", actualminAmountToReceive)]
5959 else throw("Strict value is not equal to itself.")
6060 }
6161
6262
6363 @Verifier(tx)
6464 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
6565

github/deemru/w8io/786bc32 
39.84 ms