tx · A7Kkgzo13fnA9Dy5P1TihXmQfDqbYQYUHh5ZFQBr1vo

3PGcRy2VFKYhusWo4j6dR8sK8Hi8gZcTopS:  -0.01400000 Waves

2022.09.26 13:30 [3311436] smart account 3PGcRy2VFKYhusWo4j6dR8sK8Hi8gZcTopS > SELF 0.00000000 Waves

{ "type": 13, "id": "A7Kkgzo13fnA9Dy5P1TihXmQfDqbYQYUHh5ZFQBr1vo", "fee": 1400000, "feeAssetId": null, "timestamp": 1664188216750, "version": 2, "chainId": 87, "sender": "3PGcRy2VFKYhusWo4j6dR8sK8Hi8gZcTopS", "senderPublicKey": "6vs9orALhZsXKNcKtzPwfM18kgyVRj7qiXM4EdQSgAaZ", "proofs": [ "XMtCSiBcewvrR9bQmr3u2Db7Xka3v66ymhekF7gJ5ufZzTrnVpyoMGdjHTdjCNZG7VMoqVScHYcYdeud1uN5crC" ], "script": "base64:AAIFAAAAAAAAAAYIAhIAEgAAAAAAAAAAAgAAAAFpAQAAABBCdXlXYXZlc1dpdGhVU0ROAAAAAAQAAAAOU3BlbmRVU0ROVmFsdWUAAAAAAABMS0AEAAAAC0FNTV9BZGRyZXNzCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzUEhhTmdvbUJrcnZFTDJRbnVKYXJRVkphNzF3anc5cWlxRwQAAAAEVVNETgEAAAAgtiYpwwT1zlORpA5LdSQvZIxRsfrfr1QpvUjSHSqyqtEEAAAACWtCYWxhbmNlQQIAAAAPQV9hc3NldF9iYWxhbmNlBAAAAA9BX2Fzc2V0X2JhbGFuY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAC0FNTV9BZGRyZXNzBQAAAAlrQmFsYW5jZUEEAAAACWtCYWxhbmNlQgIAAAAPQl9hc3NldF9iYWxhbmNlBAAAAA9CX2Fzc2V0X2JhbGFuY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAC0FNTV9BZGRyZXNzBQAAAAlrQmFsYW5jZUIEAAAAEW5ld2JhbGFuY2VvZldBVkVTCQAAawAAAAMFAAAAD0JfYXNzZXRfYmFsYW5jZQUAAAAPQV9hc3NldF9iYWxhbmNlCQAAZAAAAAIFAAAAD0JfYXNzZXRfYmFsYW5jZQUAAAAOU3BlbmRVU0ROVmFsdWUEAAAAEm1pbkFtb3VudFRvUmVjZWl2ZQkAAGUAAAACBQAAAA9BX2Fzc2V0X2JhbGFuY2UFAAAAEW5ld2JhbGFuY2VvZldBVkVTBAAAAAtkZXB0aGZhY3RvcgkAAGsAAAADBQAAABJtaW5BbW91bnRUb1JlY2VpdmUAAAAAAAAAAAEAAAAAAAAAAGQEAAAAGGFjdHVhbG1pbkFtb3VudFRvUmVjZWl2ZQkAAGUAAAACBQAAABJtaW5BbW91bnRUb1JlY2VpdmUFAAAAC2RlcHRoZmFjdG9yBAAAAAdwYXltZW50CQEAAAAPQXR0YWNoZWRQYXltZW50AAAAAgUAAAAEVVNETgUAAAAOU3BlbmRVU0ROVmFsdWUEAAAAEGludm9rZVRvQnV5V0FWRVMJAAP8AAAABAUAAAALQU1NX0FkZHJlc3MCAAAACGV4Y2hhbmdlCQAETAAAAAIFAAAAGGFjdHVhbG1pbkFtb3VudFRvUmVjZWl2ZQUAAAADbmlsCQAETAAAAAIFAAAAB3BheW1lbnQFAAAAA25pbAMJAAAAAAAAAgUAAAAQaW52b2tlVG9CdXlXQVZFUwUAAAAQaW52b2tlVG9CdXlXQVZFUwMJAABmAAAAAgAAAAAAAExLQAkAA/AAAAACBQAAAAR0aGlzBQAAAARVU0ROCQAAAgAAAAEJAAEsAAAAAgIAAAA1WW91IEFjY291bnQgaXMgU2hvcnQgaW4gNSBVU0ROIEJhbGFuY2UuIFlvdSBoYXZlIG9ubHkJAAGkAAAAAQkAA/AAAAACBQAAAAR0aGlzBQAAAARVU0ROCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAAB21lc3NhZ2UCAAAAHFRva2VucyBTd2FwcGVkIFN1Y2Nlc3NmdWxseS4JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAFkNvbGxlY3RlZF9XYXZlc19BbW91bnQFAAAAGGFjdHVhbG1pbkFtb3VudFRvUmVjZWl2ZQUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAABJTZWxsV2F2ZXN0b0dldFVTRE4AAAAABAAAAA9TcGVuZFdBVkVTVmFsdWUJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMCAAAAFkNvbGxlY3RlZF9XYXZlc19BbW91bnQEAAAAC0FNTV9BZGRyZXNzCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzUEhhTmdvbUJrcnZFTDJRbnVKYXJRVkphNzF3anc5cWlxRwQAAAAFV0FWRVMBAAAAAAQAAAAJa0JhbGFuY2VBAgAAAA9BX2Fzc2V0X2JhbGFuY2UEAAAAD0FfYXNzZXRfYmFsYW5jZQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAALQU1NX0FkZHJlc3MFAAAACWtCYWxhbmNlQQQAAAAJa0JhbGFuY2VCAgAAAA9CX2Fzc2V0X2JhbGFuY2UEAAAAD0JfYXNzZXRfYmFsYW5jZQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAALQU1NX0FkZHJlc3MFAAAACWtCYWxhbmNlQgQAAAAQbmV3YmFsYW5jZW9mVVNETgkAAGsAAAADBQAAAA9CX2Fzc2V0X2JhbGFuY2UFAAAAD0FfYXNzZXRfYmFsYW5jZQkAAGQAAAACBQAAAA9BX2Fzc2V0X2JhbGFuY2UFAAAAD1NwZW5kV0FWRVNWYWx1ZQQAAAASbWluQW1vdW50VG9SZWNlaXZlCQAAZQAAAAIFAAAAD0JfYXNzZXRfYmFsYW5jZQUAAAAQbmV3YmFsYW5jZW9mVVNETgQAAAALZGVwdGhmYWN0b3IJAABrAAAAAwUAAAASbWluQW1vdW50VG9SZWNlaXZlAAAAAAAAAAABAAAAAAAAAABkBAAAABhhY3R1YWxtaW5BbW91bnRUb1JlY2VpdmUJAABlAAAAAgUAAAASbWluQW1vdW50VG9SZWNlaXZlBQAAAAtkZXB0aGZhY3RvcgQAAAAHcGF5bWVudAkBAAAAD0F0dGFjaGVkUGF5bWVudAAAAAIFAAAABVdBVkVTBQAAAA9TcGVuZFdBVkVTVmFsdWUEAAAAEWludm9rZVRvU2VsbFdBVkVTCQAD/AAAAAQFAAAAC0FNTV9BZGRyZXNzAgAAAAhleGNoYW5nZQkABEwAAAACBQAAABhhY3R1YWxtaW5BbW91bnRUb1JlY2VpdmUFAAAAA25pbAkABEwAAAACBQAAAAdwYXltZW50BQAAAANuaWwDCQAAAAAAAAIFAAAAEWludm9rZVRvU2VsbFdBVkVTBQAAABFpbnZva2VUb1NlbGxXQVZFUwMJAABmAAAAAgUAAAAPU3BlbmRXQVZFU1ZhbHVlCQAD8AAAAAIFAAAABHRoaXMFAAAABVdBVkVTCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAA0WW91IEFjY291bnQgaXMgU2hvcnQgaW4gV0FWRVMgQmFsYW5jZS4gWW91IGhhdmUgb25seQkAAaQAAAABCQAD8AAAAAIFAAAABHRoaXMFAAAABVdBVkVTAgAAAAtpbnN0ZWFkIG9mIAkAAaQAAAABBQAAAA9TcGVuZFdBVkVTVmFsdWUCAAAABiBXQVZFUwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAdtZXNzYWdlAgAAABxUb2tlbnMgU3dhcHBlZCBTdWNjZXNzZnVsbHkuCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABVDb2xsZWN0ZWRfVVNETl9BbW91bnQFAAAAGGFjdHVhbG1pbkFtb3VudFRvUmVjZWl2ZQUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5By5tUg==", "height": 3311436, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: E5fZvZ5QPY1XgKjijn4DkBsKjcGnZw5jTXUqsMtKqpXq Next: 5D3vgv9z8KkBuXxCU256FG7MZnsto1qMzzajCRBhoFqS Diff:
OldNewDifferences
1212 let A_asset_balance = getIntegerValue(AMM_Address, kBalanceA)
1313 let kBalanceB = "B_asset_balance"
1414 let B_asset_balance = getIntegerValue(AMM_Address, kBalanceB)
15- let newbalanceofWAVES = fraction(B_asset_balance, A_asset_balance, (B_asset_balance + 5000000))
15+ let newbalanceofWAVES = fraction(B_asset_balance, A_asset_balance, (B_asset_balance + SpendUSDNValue))
1616 let minAmountToReceive = (A_asset_balance - newbalanceofWAVES)
1717 let depthfactor = fraction(minAmountToReceive, 1, 100)
18+ let actualminAmountToReceive = (minAmountToReceive - depthfactor)
1819 let payment = AttachedPayment(USDN, SpendUSDNValue)
19- let invokeToBuyWAVES = invoke(AMM_Address, "exchange", [(minAmountToReceive - depthfactor)], [payment])
20+ let invokeToBuyWAVES = invoke(AMM_Address, "exchange", [actualminAmountToReceive], [payment])
2021 if ((invokeToBuyWAVES == invokeToBuyWAVES))
2122 then if ((5000000 > assetBalance(this, USDN)))
22- then throw(("You Account is Short in USDN Balance. You have only" + toString(assetBalance(this, USDN))))
23- else [StringEntry("message", "Tokens Swapped Successfully."), IntegerEntry("Last_WAVES_Buy_Price", 0)]
23+ then throw(("You Account is Short in 5 USDN Balance. You have only" + toString(assetBalance(this, USDN))))
24+ else [StringEntry("message", "Tokens Swapped Successfully."), IntegerEntry("Collected_Waves_Amount", actualminAmountToReceive)]
25+ else throw("Strict value is not equal to itself.")
26+ }
27+
28+
29+
30+@Callable(i)
31+func SellWavestoGetUSDN () = {
32+ let SpendWAVESValue = getIntegerValue(this, "Collected_Waves_Amount")
33+ let AMM_Address = addressFromStringValue("3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG")
34+ let WAVES = base58''
35+ let kBalanceA = "A_asset_balance"
36+ let A_asset_balance = getIntegerValue(AMM_Address, kBalanceA)
37+ let kBalanceB = "B_asset_balance"
38+ let B_asset_balance = getIntegerValue(AMM_Address, kBalanceB)
39+ let newbalanceofUSDN = fraction(B_asset_balance, A_asset_balance, (A_asset_balance + SpendWAVESValue))
40+ let minAmountToReceive = (B_asset_balance - newbalanceofUSDN)
41+ let depthfactor = fraction(minAmountToReceive, 1, 100)
42+ let actualminAmountToReceive = (minAmountToReceive - depthfactor)
43+ let payment = AttachedPayment(WAVES, SpendWAVESValue)
44+ let invokeToSellWAVES = invoke(AMM_Address, "exchange", [actualminAmountToReceive], [payment])
45+ if ((invokeToSellWAVES == invokeToSellWAVES))
46+ then if ((SpendWAVESValue > assetBalance(this, WAVES)))
47+ then throw((((("You Account is Short in WAVES Balance. You have only" + toString(assetBalance(this, WAVES))) + "instead of ") + toString(SpendWAVESValue)) + " WAVES"))
48+ else [StringEntry("message", "Tokens Swapped Successfully."), IntegerEntry("Collected_USDN_Amount", actualminAmountToReceive)]
2449 else throw("Strict value is not equal to itself.")
2550 }
2651
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44
55
66 @Callable(i)
77 func BuyWavesWithUSDN () = {
88 let SpendUSDNValue = 5000000
99 let AMM_Address = addressFromStringValue("3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG")
1010 let USDN = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
1111 let kBalanceA = "A_asset_balance"
1212 let A_asset_balance = getIntegerValue(AMM_Address, kBalanceA)
1313 let kBalanceB = "B_asset_balance"
1414 let B_asset_balance = getIntegerValue(AMM_Address, kBalanceB)
15- let newbalanceofWAVES = fraction(B_asset_balance, A_asset_balance, (B_asset_balance + 5000000))
15+ let newbalanceofWAVES = fraction(B_asset_balance, A_asset_balance, (B_asset_balance + SpendUSDNValue))
1616 let minAmountToReceive = (A_asset_balance - newbalanceofWAVES)
1717 let depthfactor = fraction(minAmountToReceive, 1, 100)
18+ let actualminAmountToReceive = (minAmountToReceive - depthfactor)
1819 let payment = AttachedPayment(USDN, SpendUSDNValue)
19- let invokeToBuyWAVES = invoke(AMM_Address, "exchange", [(minAmountToReceive - depthfactor)], [payment])
20+ let invokeToBuyWAVES = invoke(AMM_Address, "exchange", [actualminAmountToReceive], [payment])
2021 if ((invokeToBuyWAVES == invokeToBuyWAVES))
2122 then if ((5000000 > assetBalance(this, USDN)))
22- then throw(("You Account is Short in USDN Balance. You have only" + toString(assetBalance(this, USDN))))
23- else [StringEntry("message", "Tokens Swapped Successfully."), IntegerEntry("Last_WAVES_Buy_Price", 0)]
23+ then throw(("You Account is Short in 5 USDN Balance. You have only" + toString(assetBalance(this, USDN))))
24+ else [StringEntry("message", "Tokens Swapped Successfully."), IntegerEntry("Collected_Waves_Amount", actualminAmountToReceive)]
25+ else throw("Strict value is not equal to itself.")
26+ }
27+
28+
29+
30+@Callable(i)
31+func SellWavestoGetUSDN () = {
32+ let SpendWAVESValue = getIntegerValue(this, "Collected_Waves_Amount")
33+ let AMM_Address = addressFromStringValue("3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG")
34+ let WAVES = base58''
35+ let kBalanceA = "A_asset_balance"
36+ let A_asset_balance = getIntegerValue(AMM_Address, kBalanceA)
37+ let kBalanceB = "B_asset_balance"
38+ let B_asset_balance = getIntegerValue(AMM_Address, kBalanceB)
39+ let newbalanceofUSDN = fraction(B_asset_balance, A_asset_balance, (A_asset_balance + SpendWAVESValue))
40+ let minAmountToReceive = (B_asset_balance - newbalanceofUSDN)
41+ let depthfactor = fraction(minAmountToReceive, 1, 100)
42+ let actualminAmountToReceive = (minAmountToReceive - depthfactor)
43+ let payment = AttachedPayment(WAVES, SpendWAVESValue)
44+ let invokeToSellWAVES = invoke(AMM_Address, "exchange", [actualminAmountToReceive], [payment])
45+ if ((invokeToSellWAVES == invokeToSellWAVES))
46+ then if ((SpendWAVESValue > assetBalance(this, WAVES)))
47+ then throw((((("You Account is Short in WAVES Balance. You have only" + toString(assetBalance(this, WAVES))) + "instead of ") + toString(SpendWAVESValue)) + " WAVES"))
48+ else [StringEntry("message", "Tokens Swapped Successfully."), IntegerEntry("Collected_USDN_Amount", actualminAmountToReceive)]
2449 else throw("Strict value is not equal to itself.")
2550 }
2651
2752
2853 @Verifier(tx)
2954 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
3055

github/deemru/w8io/6500d08 
53.35 ms