2022.09.26 19:19 [3311788] smart account 3PGcRy2VFKYhusWo4j6dR8sK8Hi8gZcTopS > SELF 0.00000000 Waves

{ "type": 13, "id": "Hv3zNeiZoRYB1XXLit5uZSe7aK5LSECTKePtSxuFntha", "fee": 900000, "feeAssetId": null, "timestamp": 1664209097763, "version": 2, "chainId": 87, "sender": "3PGcRy2VFKYhusWo4j6dR8sK8Hi8gZcTopS", "senderPublicKey": "6vs9orALhZsXKNcKtzPwfM18kgyVRj7qiXM4EdQSgAaZ", "proofs": [ "4vSEa5qjUzqo5jm3rdWXm4bUYGew1ViCwrFow2CzwDiPEbxsenHZpY2aUFFK5c64jJvV1K1k3QEAJZovu5fPrWxu" ], "script": "base64:AAIFAAAAAAAAAAYIAhIAEgAAAAABAAAAAAthZG1pbnJpZ2h0cwkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwIAAAARREFwcF9BZG1pbl9SaWdodHMAAAACAAAAAWkBAAAAEEJ1eVdhdmVzV2l0aFVTRE4AAAAABAAAAA5TcGVuZFVTRE5WYWx1ZQAAAAAAAvrwgAQAAAAObWluRGFwcEJhbGFuY2UAAAAAAAAPQkAEAAAAEURhcHBmZWVwZXJjZW50YWdlAAAAAAAAAAAGBAAAAA1jYWxsZXJhZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAC0FNTV9BZGRyZXNzCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzUEhhTmdvbUJrcnZFTDJRbnVKYXJRVkphNzF3anc5cWlxRwQAAAAEVVNETgEAAAAgtiYpwwT1zlORpA5LdSQvZIxRsfrfr1QpvUjSHSqyqtEEAAAACWtCYWxhbmNlQQIAAAAPQV9hc3NldF9iYWxhbmNlBAAAAA9BX2Fzc2V0X2JhbGFuY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAC0FNTV9BZGRyZXNzBQAAAAlrQmFsYW5jZUEEAAAACWtCYWxhbmNlQgIAAAAPQl9hc3NldF9iYWxhbmNlBAAAAA9CX2Fzc2V0X2JhbGFuY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAC0FNTV9BZGRyZXNzBQAAAAlrQmFsYW5jZUIEAAAAEW5ld2JhbGFuY2VvZldBVkVTCQAAawAAAAMFAAAAD0JfYXNzZXRfYmFsYW5jZQUAAAAPQV9hc3NldF9iYWxhbmNlCQAAZAAAAAIFAAAAD0JfYXNzZXRfYmFsYW5jZQUAAAAOU3BlbmRVU0ROVmFsdWUEAAAAEm1pbkFtb3VudFRvUmVjZWl2ZQkAAGUAAAACBQAAAA9BX2Fzc2V0X2JhbGFuY2UFAAAAEW5ld2JhbGFuY2VvZldBVkVTBAAAAAdBTU1fZmVlCQAAawAAAAMFAAAAEm1pbkFtb3VudFRvUmVjZWl2ZQUAAAARRGFwcGZlZXBlcmNlbnRhZ2UAAAAAAAAAA+gEAAAAGGFjdHVhbG1pbkFtb3VudFRvUmVjZWl2ZQkAAGUAAAACCQAAZQAAAAIFAAAAEm1pbkFtb3VudFRvUmVjZWl2ZQUAAAAHQU1NX2ZlZQAAAAAAAAAAAgQAAAANYXZnX2J1eV9wcmljZQkAAGsAAAADBQAAAA5TcGVuZFVTRE5WYWx1ZQAAAAAABfXhAAUAAAAYYWN0dWFsbWluQW1vdW50VG9SZWNlaXZlBAAAAAdwYXltZW50CQEAAAAPQXR0YWNoZWRQYXltZW50AAAAAgUAAAAEVVNETgUAAAAOU3BlbmRVU0ROVmFsdWUEAAAAEGludm9rZVRvQnV5V0FWRVMJAAP8AAAABAUAAAALQU1NX0FkZHJlc3MCAAAACGV4Y2hhbmdlCQAETAAAAAIFAAAAGGFjdHVhbG1pbkFtb3VudFRvUmVjZWl2ZQUAAAADbmlsCQAETAAAAAIFAAAAB3BheW1lbnQFAAAAA25pbAMJAAAAAAAAAgUAAAAQaW52b2tlVG9CdXlXQVZFUwUAAAAQaW52b2tlVG9CdXlXQVZFUwMJAQAAAAIhPQAAAAIFAAAAC2FkbWlucmlnaHRzBQAAAA1jYWxsZXJhZGRyZXNzCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAACJJIGtub3cgWW91IGFyZSBub3QgQW4gQWRtaW4uIE9ubHkgBQAAAAthZG1pbnJpZ2h0cwIAAAAUIGhhcyByaWdodHMgdG8gU2lnbi4DCQAAZgAAAAIFAAAADm1pbkRhcHBCYWxhbmNlCQAD8AAAAAIFAAAABHRoaXMFAAAABFVTRE4JAAACAAAAAQkAASwAAAACAgAAADVZb3UgQWNjb3VudCBpcyBTaG9ydCBpbiA1IFVTRE4gQmFsYW5jZS4gWW91IGhhdmUgb25seQkAAaQAAAABCQAD8AAAAAIFAAAABHRoaXMFAAAABFVTRE4JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAHbWVzc2FnZQIAAAAcVG9rZW5zIFN3YXBwZWQgU3VjY2Vzc2Z1bGx5LgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAXVVNETl9TcGVuZF9Ub19CdXlfV0FWRVMFAAAADlNwZW5kVVNETlZhbHVlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABZDb2xsZWN0ZWRfV2F2ZXNfQW1vdW50BQAAABhhY3R1YWxtaW5BbW91bnRUb1JlY2VpdmUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAGUVzdF9fRmVlX2luX1dBVkVTX0Zvcl9CdXkFAAAAB0FNTV9mZWUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAEUF2ZXJhZ2VfQnV5X1ByaWNlBQAAAA1hdmdfYnV5X3ByaWNlBQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAAElNlbGxXYXZlc3RvR2V0VVNETgAAAAAEAAAADWNhbGxlcmFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAPU3BlbmRXQVZFU1ZhbHVlCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzAgAAABZDb2xsZWN0ZWRfV2F2ZXNfQW1vdW50BAAAAA1BdmdfQnV5X1ByaWNlCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzAgAAABFBdmVyYWdlX0J1eV9QcmljZQQAAAANQXZnX1NlbGxwcmljZQkAAGQAAAACBQAAAA1BdmdfQnV5X1ByaWNlCQAAawAAAAMFAAAADUF2Z19CdXlfUHJpY2UAAAAAAAAAAAIAAAAAAAAAAGQEAAAAClNlbGxfcHJpY2UJAABrAAAAAwUAAAANQXZnX1NlbGxwcmljZQUAAAAPU3BlbmRXQVZFU1ZhbHVlAAAAWvMQekAABAAAAAtBTU1fQWRkcmVzcwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQIAAAAjM1BIYU5nb21Ca3J2RUwyUW51SmFyUVZKYTcxd2p3OXFpcUcEAAAACWtCYWxhbmNlQQIAAAAPQV9hc3NldF9iYWxhbmNlBAAAAA9BX2Fzc2V0X2JhbGFuY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAC0FNTV9BZGRyZXNzBQAAAAlrQmFsYW5jZUEEAAAACWtCYWxhbmNlQgIAAAAPQl9hc3NldF9iYWxhbmNlBAAAAA9CX2Fzc2V0X2JhbGFuY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAC0FNTV9BZGRyZXNzBQAAAAlrQmFsYW5jZUIEAAAAEG5ld2JhbGFuY2VvZlVTRE4JAABrAAAAAwUAAAAPQl9hc3NldF9iYWxhbmNlBQAAAA9BX2Fzc2V0X2JhbGFuY2UJAABkAAAAAgUAAAAPQV9hc3NldF9iYWxhbmNlBQAAAA9TcGVuZFdBVkVTVmFsdWUEAAAAEm1pbkFtb3VudFRvUmVjZWl2ZQkAAGUAAAACBQAAAA9CX2Fzc2V0X2JhbGFuY2UFAAAAEG5ld2JhbGFuY2VvZlVTRE4EAAAAB0FNTV9mZWUJAABrAAAAAwUAAAASbWluQW1vdW50VG9SZWNlaXZlAAAAAAAAAAABAAAAAAAAAABkBAAAABhhY3R1YWxtaW5BbW91bnRUb1JlY2VpdmUJAABlAAAAAgUAAAASbWluQW1vdW50VG9SZWNlaXZlBQAAAAdBTU1fZmVlBAAAAAdwYXltZW50CQEAAAAPQXR0YWNoZWRQYXltZW50AAAAAgUAAAAEdW5pdAUAAAAPU3BlbmRXQVZFU1ZhbHVlBAAAABFpbnZva2VUb1NlbGxXQVZFUwkAA/wAAAAEBQAAAAtBTU1fQWRkcmVzcwIAAAAIZXhjaGFuZ2UJAARMAAAAAgUAAAAYYWN0dWFsbWluQW1vdW50VG9SZWNlaXZlBQAAAANuaWwJAARMAAAAAgUAAAAHcGF5bWVudAUAAAADbmlsAwkAAAAAAAACBQAAABFpbnZva2VUb1NlbGxXQVZFUwUAAAARaW52b2tlVG9TZWxsV0FWRVMDCQEAAAACIT0AAAACBQAAAAthZG1pbnJpZ2h0cwUAAAANY2FsbGVyYWRkcmVzcwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAiSSBrbm93IFlvdSBhcmUgbm90IEFuIEFkbWluLiBPbmx5IAUAAAALYWRtaW5yaWdodHMCAAAAFCBoYXMgcmlnaHRzIHRvIFNpZ24uAwkAAGYAAAACBQAAAApTZWxsX3ByaWNlBQAAABhhY3R1YWxtaW5BbW91bnRUb1JlY2VpdmUJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAHFlvdSBjYW4ndCByZWNlaXZlIGxlc3MgdGhhbiAJAAGkAAAAAQUAAAAKU2VsbF9wcmljZQIAAAAnIFVTRE4uIFJpZ2h0IG5vdyBpdCB3aWxsIGdpdmUgeW91IG9ubHkgCQABpAAAAAEJAABpAAAAAgUAAAAYYWN0dWFsbWluQW1vdW50VG9SZWNlaXZlAAAAAAAAD0JAAgAAAAEuCQABpAAAAAEJAABrAAAAAwUAAAAYYWN0dWFsbWluQW1vdW50VG9SZWNlaXZlAAAAAAAAAAABAAAAAAAAAYagCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAAB21lc3NhZ2UCAAAAHFRva2VucyBTd2FwcGVkIFN1Y2Nlc3NmdWxseS4JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAFUNvbGxlY3RlZF9VU0ROX0Ftb3VudAUAAAAYYWN0dWFsbWluQW1vdW50VG9SZWNlaXZlBQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXl42TLF", "height": 3311788, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EeN99MDsPEJ1yhCfav6WcDweKHa9cNFF3crAn4TmdqsG Next: CMLKUNLivj6gFBTGmCwUvMBrzbaP3FJjdNsaJZEVgCRH Diff:
OldNewDifferences
55
66 @Callable(i)
77 func BuyWavesWithUSDN () = {
8- let SpendUSDNValue = 35000000
8+ let SpendUSDNValue = 50000000
99 let minDappBalance = 1000000
1010 let Dappfeepercentage = 6
1111 let calleraddress = toBase58String(i.caller.bytes)
3636 @Callable(i)
3737 func SellWavestoGetUSDN () = {
3838 let calleraddress = toBase58String(i.caller.bytes)
39- let minDappWAVESBalance = 1000000
4039 let SpendWAVESValue = getIntegerValue(this, "Collected_Waves_Amount")
40+ let Avg_Buy_Price = getIntegerValue(this, "Average_Buy_Price")
41+ let Avg_Sellprice = (Avg_Buy_Price + fraction(Avg_Buy_Price, 2, 100))
42+ let Sell_price = fraction(Avg_Sellprice, SpendWAVESValue, 100000000000000)
4143 let AMM_Address = addressFromStringValue("3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG")
4244 let kBalanceA = "A_asset_balance"
4345 let A_asset_balance = getIntegerValue(AMM_Address, kBalanceA)
4547 let B_asset_balance = getIntegerValue(AMM_Address, kBalanceB)
4648 let newbalanceofUSDN = fraction(B_asset_balance, A_asset_balance, (A_asset_balance + SpendWAVESValue))
4749 let minAmountToReceive = (B_asset_balance - newbalanceofUSDN)
48- let depthfactor = fraction(minAmountToReceive, 1, 100)
49- let actualminAmountToReceive = (minAmountToReceive - depthfactor)
50+ let AMM_fee = fraction(minAmountToReceive, 1, 100)
51+ let actualminAmountToReceive = (minAmountToReceive - AMM_fee)
5052 let payment = AttachedPayment(unit, SpendWAVESValue)
5153 let invokeToSellWAVES = invoke(AMM_Address, "exchange", [actualminAmountToReceive], [payment])
5254 if ((invokeToSellWAVES == invokeToSellWAVES))
5355 then if ((adminrights != calleraddress))
5456 then throw((("I know You are not An Admin. Only " + adminrights) + " has rights to Sign."))
55- else if ((5000000 > actualminAmountToReceive))
56- 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))))
57+ else if ((Sell_price > actualminAmountToReceive))
58+ then throw(((((("You can't receive less than " + toString(Sell_price)) + " USDN. Right now it will give you only ") + toString((actualminAmountToReceive / 1000000))) + ".") + toString(fraction(actualminAmountToReceive, 1, 100000))))
5759 else [StringEntry("message", "Tokens Swapped Successfully."), IntegerEntry("Collected_USDN_Amount", actualminAmountToReceive)]
5860 else throw("Strict value is not equal to itself.")
5961 }
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 () = {
8- let SpendUSDNValue = 35000000
8+ let SpendUSDNValue = 50000000
99 let minDappBalance = 1000000
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) - 2)
2222 let avg_buy_price = fraction(SpendUSDNValue, 100000000, actualminAmountToReceive)
2323 let payment = AttachedPayment(USDN, SpendUSDNValue)
2424 let invokeToBuyWAVES = invoke(AMM_Address, "exchange", [actualminAmountToReceive], [payment])
2525 if ((invokeToBuyWAVES == invokeToBuyWAVES))
2626 then if ((adminrights != calleraddress))
2727 then throw((("I know You are not An Admin. Only " + adminrights) + " has rights to Sign."))
2828 else if ((minDappBalance > assetBalance(this, USDN)))
2929 then throw(("You Account is Short in 5 USDN Balance. You have only" + toString(assetBalance(this, USDN))))
3030 else [StringEntry("message", "Tokens Swapped Successfully."), IntegerEntry("USDN_Spend_To_Buy_WAVES", SpendUSDNValue), IntegerEntry("Collected_Waves_Amount", actualminAmountToReceive), IntegerEntry("Est__Fee_in_WAVES_For_Buy", AMM_fee), IntegerEntry("Average_Buy_Price", avg_buy_price)]
3131 else throw("Strict value is not equal to itself.")
3232 }
3333
3434
3535
3636 @Callable(i)
3737 func SellWavestoGetUSDN () = {
3838 let calleraddress = toBase58String(i.caller.bytes)
39- let minDappWAVESBalance = 1000000
4039 let SpendWAVESValue = getIntegerValue(this, "Collected_Waves_Amount")
40+ let Avg_Buy_Price = getIntegerValue(this, "Average_Buy_Price")
41+ let Avg_Sellprice = (Avg_Buy_Price + fraction(Avg_Buy_Price, 2, 100))
42+ let Sell_price = fraction(Avg_Sellprice, SpendWAVESValue, 100000000000000)
4143 let AMM_Address = addressFromStringValue("3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG")
4244 let kBalanceA = "A_asset_balance"
4345 let A_asset_balance = getIntegerValue(AMM_Address, kBalanceA)
4446 let kBalanceB = "B_asset_balance"
4547 let B_asset_balance = getIntegerValue(AMM_Address, kBalanceB)
4648 let newbalanceofUSDN = fraction(B_asset_balance, A_asset_balance, (A_asset_balance + SpendWAVESValue))
4749 let minAmountToReceive = (B_asset_balance - newbalanceofUSDN)
48- let depthfactor = fraction(minAmountToReceive, 1, 100)
49- let actualminAmountToReceive = (minAmountToReceive - depthfactor)
50+ let AMM_fee = fraction(minAmountToReceive, 1, 100)
51+ let actualminAmountToReceive = (minAmountToReceive - AMM_fee)
5052 let payment = AttachedPayment(unit, SpendWAVESValue)
5153 let invokeToSellWAVES = invoke(AMM_Address, "exchange", [actualminAmountToReceive], [payment])
5254 if ((invokeToSellWAVES == invokeToSellWAVES))
5355 then if ((adminrights != calleraddress))
5456 then throw((("I know You are not An Admin. Only " + adminrights) + " has rights to Sign."))
55- else if ((5000000 > actualminAmountToReceive))
56- 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))))
57+ else if ((Sell_price > actualminAmountToReceive))
58+ then throw(((((("You can't receive less than " + toString(Sell_price)) + " USDN. Right now it will give you only ") + toString((actualminAmountToReceive / 1000000))) + ".") + toString(fraction(actualminAmountToReceive, 1, 100000))))
5759 else [StringEntry("message", "Tokens Swapped Successfully."), IntegerEntry("Collected_USDN_Amount", actualminAmountToReceive)]
5860 else throw("Strict value is not equal to itself.")
5961 }
6062
6163
6264 @Verifier(tx)
6365 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
6466

github/deemru/w8io/786bc32 
57.93 ms