2022.09.26 19:57 [3311829] smart account 3PGcRy2VFKYhusWo4j6dR8sK8Hi8gZcTopS > SELF 0.00000000 Waves
{ "type": 13, "id": "Ac8oSe2FYQ1uaAJHoTkSWGT1MQ1SpnkPJXxkGumgF7tR", "fee": 900000, "feeAssetId": null, "timestamp": 1664211476254, "version": 2, "chainId": 87, "sender": "3PGcRy2VFKYhusWo4j6dR8sK8Hi8gZcTopS", "senderPublicKey": "6vs9orALhZsXKNcKtzPwfM18kgyVRj7qiXM4EdQSgAaZ", "proofs": [ "5FyjF4nD6M4v1MibRp49BzFAVFQojWH5XAtPmu1tsjcAZY7tCzMFwhJnbnnnEMEtbyFgpByQGNpzYncCC1HBtHFC" ], "script": "base64:AAIFAAAAAAAAAAYIAhIAEgAAAAABAAAAAAthZG1pbnJpZ2h0cwkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwIAAAARREFwcF9BZG1pbl9SaWdodHMAAAACAAAAAWkBAAAAEEJ1eVdhdmVzV2l0aFVTRE4AAAAABAAAAA5TcGVuZFVTRE5WYWx1ZQAAAAAAAvrwgAQAAAAObWluRGFwcEJhbGFuY2UAAAAAAAAPQkAEAAAAEURhcHBmZWVwZXJjZW50YWdlAAAAAAAAAAAGBAAAAA1jYWxsZXJhZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAC0FNTV9BZGRyZXNzCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzUEhhTmdvbUJrcnZFTDJRbnVKYXJRVkphNzF3anc5cWlxRwQAAAAEVVNETgEAAAAgtiYpwwT1zlORpA5LdSQvZIxRsfrfr1QpvUjSHSqyqtEEAAAACWtCYWxhbmNlQQIAAAAPQV9hc3NldF9iYWxhbmNlBAAAAA9BX2Fzc2V0X2JhbGFuY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAC0FNTV9BZGRyZXNzBQAAAAlrQmFsYW5jZUEEAAAACWtCYWxhbmNlQgIAAAAPQl9hc3NldF9iYWxhbmNlBAAAAA9CX2Fzc2V0X2JhbGFuY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAC0FNTV9BZGRyZXNzBQAAAAlrQmFsYW5jZUIEAAAAEW5ld2JhbGFuY2VvZldBVkVTCQAAawAAAAMFAAAAD0JfYXNzZXRfYmFsYW5jZQUAAAAPQV9hc3NldF9iYWxhbmNlCQAAZAAAAAIFAAAAD0JfYXNzZXRfYmFsYW5jZQUAAAAOU3BlbmRVU0ROVmFsdWUEAAAAEm1pbkFtb3VudFRvUmVjZWl2ZQkAAGUAAAACBQAAAA9BX2Fzc2V0X2JhbGFuY2UFAAAAEW5ld2JhbGFuY2VvZldBVkVTBAAAAAdBTU1fZmVlCQAAawAAAAMFAAAAEm1pbkFtb3VudFRvUmVjZWl2ZQUAAAARRGFwcGZlZXBlcmNlbnRhZ2UAAAAAAAAAA+gEAAAAGGFjdHVhbG1pbkFtb3VudFRvUmVjZWl2ZQkAAGUAAAACCQAAZQAAAAIFAAAAEm1pbkFtb3VudFRvUmVjZWl2ZQUAAAAHQU1NX2ZlZQAAAAAAAAAAAgQAAAANYXZnX2J1eV9wcmljZQkAAGsAAAADBQAAAA5TcGVuZFVTRE5WYWx1ZQAAAAAABfXhAAUAAAAYYWN0dWFsbWluQW1vdW50VG9SZWNlaXZlBAAAAAdwYXltZW50CQEAAAAPQXR0YWNoZWRQYXltZW50AAAAAgUAAAAEVVNETgUAAAAOU3BlbmRVU0ROVmFsdWUEAAAAEGludm9rZVRvQnV5V0FWRVMJAAP8AAAABAUAAAALQU1NX0FkZHJlc3MCAAAACGV4Y2hhbmdlCQAETAAAAAIFAAAAGGFjdHVhbG1pbkFtb3VudFRvUmVjZWl2ZQUAAAADbmlsCQAETAAAAAIFAAAAB3BheW1lbnQFAAAAA25pbAMJAAAAAAAAAgUAAAAQaW52b2tlVG9CdXlXQVZFUwUAAAAQaW52b2tlVG9CdXlXQVZFUwMJAQAAAAIhPQAAAAIFAAAAC2FkbWlucmlnaHRzBQAAAA1jYWxsZXJhZGRyZXNzCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAACJJIGtub3cgWW91IGFyZSBub3QgQW4gQWRtaW4uIE9ubHkgBQAAAAthZG1pbnJpZ2h0cwIAAAAUIGhhcyByaWdodHMgdG8gU2lnbi4DCQAAZgAAAAIFAAAADm1pbkRhcHBCYWxhbmNlCQAD8AAAAAIFAAAABHRoaXMFAAAABFVTRE4JAAACAAAAAQkAASwAAAACAgAAADVZb3UgQWNjb3VudCBpcyBTaG9ydCBpbiA1IFVTRE4gQmFsYW5jZS4gWW91IGhhdmUgb25seQkAAaQAAAABCQAD8AAAAAIFAAAABHRoaXMFAAAABFVTRE4JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAHbWVzc2FnZQIAAAAcVG9rZW5zIFN3YXBwZWQgU3VjY2Vzc2Z1bGx5LgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAXVVNETl9TcGVuZF9Ub19CdXlfV0FWRVMFAAAADlNwZW5kVVNETlZhbHVlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABZDb2xsZWN0ZWRfV2F2ZXNfQW1vdW50BQAAABhhY3R1YWxtaW5BbW91bnRUb1JlY2VpdmUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAGUVzdF9fRmVlX2luX1dBVkVTX0Zvcl9CdXkFAAAAB0FNTV9mZWUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAEUF2ZXJhZ2VfQnV5X1ByaWNlBQAAAA1hdmdfYnV5X3ByaWNlBQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAAElNlbGxXYXZlc3RvR2V0VVNETgAAAAAEAAAADWNhbGxlcmFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAPU3BlbmRXQVZFU1ZhbHVlCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzAgAAABZDb2xsZWN0ZWRfV2F2ZXNfQW1vdW50BAAAAA1BdmdfQnV5X1ByaWNlCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzAgAAABFBdmVyYWdlX0J1eV9QcmljZQQAAAANQXZnX1NlbGxwcmljZQkAAGQAAAACBQAAAA1BdmdfQnV5X1ByaWNlCQAAawAAAAMFAAAADUF2Z19CdXlfUHJpY2UAAAAAAAAAAAIAAAAAAAAAAGQEAAAAClNlbGxfcHJpY2UJAABrAAAAAwUAAAANQXZnX1NlbGxwcmljZQUAAAAPU3BlbmRXQVZFU1ZhbHVlAAAAWvMQekAABAAAAAtBTU1fQWRkcmVzcwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQIAAAAjM1BIYU5nb21Ca3J2RUwyUW51SmFyUVZKYTcxd2p3OXFpcUcEAAAACWtCYWxhbmNlQQIAAAAPQV9hc3NldF9iYWxhbmNlBAAAAA9BX2Fzc2V0X2JhbGFuY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAC0FNTV9BZGRyZXNzBQAAAAlrQmFsYW5jZUEEAAAACWtCYWxhbmNlQgIAAAAPQl9hc3NldF9iYWxhbmNlBAAAAA9CX2Fzc2V0X2JhbGFuY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAC0FNTV9BZGRyZXNzBQAAAAlrQmFsYW5jZUIEAAAAEG5ld2JhbGFuY2VvZlVTRE4JAABrAAAAAwUAAAAPQl9hc3NldF9iYWxhbmNlBQAAAA9BX2Fzc2V0X2JhbGFuY2UJAABkAAAAAgUAAAAPQV9hc3NldF9iYWxhbmNlBQAAAA9TcGVuZFdBVkVTVmFsdWUEAAAAEm1pbkFtb3VudFRvUmVjZWl2ZQkAAGUAAAACBQAAAA9CX2Fzc2V0X2JhbGFuY2UFAAAAEG5ld2JhbGFuY2VvZlVTRE4EAAAAB0FNTV9mZWUJAABrAAAAAwUAAAASbWluQW1vdW50VG9SZWNlaXZlAAAAAAAAAAABAAAAAAAAAABkBAAAABhhY3R1YWxtaW5BbW91bnRUb1JlY2VpdmUJAABlAAAAAgUAAAASbWluQW1vdW50VG9SZWNlaXZlBQAAAAdBTU1fZmVlBAAAAAdwYXltZW50CQEAAAAPQXR0YWNoZWRQYXltZW50AAAAAgUAAAAEdW5pdAUAAAAPU3BlbmRXQVZFU1ZhbHVlBAAAABFpbnZva2VUb1NlbGxXQVZFUwkAA/wAAAAEBQAAAAtBTU1fQWRkcmVzcwIAAAAIZXhjaGFuZ2UJAARMAAAAAgUAAAAYYWN0dWFsbWluQW1vdW50VG9SZWNlaXZlBQAAAANuaWwJAARMAAAAAgUAAAAHcGF5bWVudAUAAAADbmlsAwkAAAAAAAACBQAAABFpbnZva2VUb1NlbGxXQVZFUwUAAAARaW52b2tlVG9TZWxsV0FWRVMDCQEAAAACIT0AAAACBQAAAAthZG1pbnJpZ2h0cwUAAAANY2FsbGVyYWRkcmVzcwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAiSSBrbm93IFlvdSBhcmUgbm90IEFuIEFkbWluLiBPbmx5IAUAAAALYWRtaW5yaWdodHMCAAAAFCBoYXMgcmlnaHRzIHRvIFNpZ24uAwkAAGYAAAACAAAAAAAC+vCABQAAABhhY3R1YWxtaW5BbW91bnRUb1JlY2VpdmUJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAOVlvdSBjYW4ndCByZWNlaXZlIGxlc3MgdGhhbiA1MCBVU0ROLiBZb3VyIFNlbGwgUHJpY2UgaXM6IAkAAaQAAAABBQAAAApTZWxsX3ByaWNlAgAAACEgUmlnaHQgbm93IGl0IHdpbGwgZ2l2ZSB5b3Ugb25seSAJAAGkAAAAAQkAAGkAAAACBQAAABhhY3R1YWxtaW5BbW91bnRUb1JlY2VpdmUAAAAAAAAPQkACAAAAAS4JAAGkAAAAAQkAAGsAAAADBQAAABhhY3R1YWxtaW5BbW91bnRUb1JlY2VpdmUAAAAAAAAAAAEAAAAAAAABhqAJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAHbWVzc2FnZQIAAAAcVG9rZW5zIFN3YXBwZWQgU3VjY2Vzc2Z1bGx5LgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAVQ29sbGVjdGVkX1VTRE5fQW1vdW50BQAAABhhY3R1YWxtaW5BbW91bnRUb1JlY2VpdmUFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAACQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleehhJGM=", "height": 3311829, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CMLKUNLivj6gFBTGmCwUvMBrzbaP3FJjdNsaJZEVgCRH Next: C8nayuA2hMgDRVbn2zstyyNYkjY6rfPRJ8niekf2WsNq Diff:
Old | New | Differences | |
---|---|---|---|
54 | 54 | if ((invokeToSellWAVES == invokeToSellWAVES)) | |
55 | 55 | then if ((adminrights != calleraddress)) | |
56 | 56 | then throw((("I know You are not An Admin. Only " + adminrights) + " has rights to Sign.")) | |
57 | - | else if (( | |
58 | - | then throw(((((("You can't receive less than " + toString(Sell_price)) + " | |
59 | - | else [StringEntry("message", "Tokens Swapped Successfully."), IntegerEntry("Collected_USDN_Amount", actualminAmountToReceive) | |
57 | + | else if ((50000000 > actualminAmountToReceive)) | |
58 | + | then throw(((((("You can't receive less than 50 USDN. Your Sell Price is: " + toString(Sell_price)) + " Right now it will give you only ") + toString((actualminAmountToReceive / 1000000))) + ".") + toString(fraction(actualminAmountToReceive, 1, 100000)))) | |
59 | + | else [StringEntry("message", "Tokens Swapped Successfully."), IntegerEntry("Collected_USDN_Amount", actualminAmountToReceive)] | |
60 | 60 | else throw("Strict value is not equal to itself.") | |
61 | 61 | } | |
62 | 62 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let adminrights = getStringValue(this, "DApp_Admin_Rights") | |
5 | 5 | ||
6 | 6 | @Callable(i) | |
7 | 7 | func BuyWavesWithUSDN () = { | |
8 | 8 | let SpendUSDNValue = 50000000 | |
9 | 9 | let minDappBalance = 1000000 | |
10 | 10 | let Dappfeepercentage = 6 | |
11 | 11 | let calleraddress = toBase58String(i.caller.bytes) | |
12 | 12 | let AMM_Address = addressFromStringValue("3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG") | |
13 | 13 | let USDN = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p' | |
14 | 14 | let kBalanceA = "A_asset_balance" | |
15 | 15 | let A_asset_balance = getIntegerValue(AMM_Address, kBalanceA) | |
16 | 16 | let kBalanceB = "B_asset_balance" | |
17 | 17 | let B_asset_balance = getIntegerValue(AMM_Address, kBalanceB) | |
18 | 18 | let newbalanceofWAVES = fraction(B_asset_balance, A_asset_balance, (B_asset_balance + SpendUSDNValue)) | |
19 | 19 | let minAmountToReceive = (A_asset_balance - newbalanceofWAVES) | |
20 | 20 | let AMM_fee = fraction(minAmountToReceive, Dappfeepercentage, 1000) | |
21 | 21 | let actualminAmountToReceive = ((minAmountToReceive - AMM_fee) - 2) | |
22 | 22 | let avg_buy_price = fraction(SpendUSDNValue, 100000000, actualminAmountToReceive) | |
23 | 23 | let payment = AttachedPayment(USDN, SpendUSDNValue) | |
24 | 24 | let invokeToBuyWAVES = invoke(AMM_Address, "exchange", [actualminAmountToReceive], [payment]) | |
25 | 25 | if ((invokeToBuyWAVES == invokeToBuyWAVES)) | |
26 | 26 | then if ((adminrights != calleraddress)) | |
27 | 27 | then throw((("I know You are not An Admin. Only " + adminrights) + " has rights to Sign.")) | |
28 | 28 | else if ((minDappBalance > assetBalance(this, USDN))) | |
29 | 29 | then throw(("You Account is Short in 5 USDN Balance. You have only" + toString(assetBalance(this, USDN)))) | |
30 | 30 | 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)] | |
31 | 31 | else throw("Strict value is not equal to itself.") | |
32 | 32 | } | |
33 | 33 | ||
34 | 34 | ||
35 | 35 | ||
36 | 36 | @Callable(i) | |
37 | 37 | func SellWavestoGetUSDN () = { | |
38 | 38 | let calleraddress = toBase58String(i.caller.bytes) | |
39 | 39 | let SpendWAVESValue = getIntegerValue(this, "Collected_Waves_Amount") | |
40 | 40 | let Avg_Buy_Price = getIntegerValue(this, "Average_Buy_Price") | |
41 | 41 | let Avg_Sellprice = (Avg_Buy_Price + fraction(Avg_Buy_Price, 2, 100)) | |
42 | 42 | let Sell_price = fraction(Avg_Sellprice, SpendWAVESValue, 100000000000000) | |
43 | 43 | let AMM_Address = addressFromStringValue("3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG") | |
44 | 44 | let kBalanceA = "A_asset_balance" | |
45 | 45 | let A_asset_balance = getIntegerValue(AMM_Address, kBalanceA) | |
46 | 46 | let kBalanceB = "B_asset_balance" | |
47 | 47 | let B_asset_balance = getIntegerValue(AMM_Address, kBalanceB) | |
48 | 48 | let newbalanceofUSDN = fraction(B_asset_balance, A_asset_balance, (A_asset_balance + SpendWAVESValue)) | |
49 | 49 | let minAmountToReceive = (B_asset_balance - newbalanceofUSDN) | |
50 | 50 | let AMM_fee = fraction(minAmountToReceive, 1, 100) | |
51 | 51 | let actualminAmountToReceive = (minAmountToReceive - AMM_fee) | |
52 | 52 | let payment = AttachedPayment(unit, SpendWAVESValue) | |
53 | 53 | let invokeToSellWAVES = invoke(AMM_Address, "exchange", [actualminAmountToReceive], [payment]) | |
54 | 54 | if ((invokeToSellWAVES == invokeToSellWAVES)) | |
55 | 55 | then if ((adminrights != calleraddress)) | |
56 | 56 | then throw((("I know You are not An Admin. Only " + adminrights) + " has rights to Sign.")) | |
57 | - | else if (( | |
58 | - | then throw(((((("You can't receive less than " + toString(Sell_price)) + " | |
59 | - | else [StringEntry("message", "Tokens Swapped Successfully."), IntegerEntry("Collected_USDN_Amount", actualminAmountToReceive) | |
57 | + | else if ((50000000 > actualminAmountToReceive)) | |
58 | + | then throw(((((("You can't receive less than 50 USDN. Your Sell Price is: " + toString(Sell_price)) + " Right now it will give you only ") + toString((actualminAmountToReceive / 1000000))) + ".") + toString(fraction(actualminAmountToReceive, 1, 100000)))) | |
59 | + | else [StringEntry("message", "Tokens Swapped Successfully."), IntegerEntry("Collected_USDN_Amount", actualminAmountToReceive)] | |
60 | 60 | else throw("Strict value is not equal to itself.") | |
61 | 61 | } | |
62 | 62 | ||
63 | 63 | ||
64 | 64 | @Verifier(tx) | |
65 | 65 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
66 | 66 |
github/deemru/w8io/786bc32 52.97 ms ◑