tx · BLvpCB8sYfstfWgG5N8f7sfTBQHhyCFrGXhyrtgvuViA

3P7VznyyJc91e2SXpWTgc9Zp2d9XWHdwLJ1:  -0.00300000 Waves

2023.09.27 00:10 [3838706] smart account 3P7VznyyJc91e2SXpWTgc9Zp2d9XWHdwLJ1 > SELF 0.00000000 Waves

{ "type": 13, "id": "BLvpCB8sYfstfWgG5N8f7sfTBQHhyCFrGXhyrtgvuViA", "fee": 300000, "feeAssetId": null, "timestamp": 1695762696005, "version": 2, "chainId": 87, "sender": "3P7VznyyJc91e2SXpWTgc9Zp2d9XWHdwLJ1", "senderPublicKey": "DiCe6VGgddpG7YfGhT4XXsPuQtiyzaV68EZUB8GNT3hs", "proofs": [ "3ewgsxAgGtNaeSo8fQMggKxkHfKo82QGLvEHkM8vXJayFDkA6iwKgmps4DvskiL1mLQ3jZyHCATcfaCsquCKVeVa" ], "script": "base64:BgIECAISAAkABnBycHJwcgIjM1BKRVNWRFRIUnY4aTgzWGJtSHJSR1FoRGM1cmdSM2F6UXMAAm1wAiMzUDR1QTVldG5aaTRBbUJhYktpbnEyYk1pV1U4S2NuSFpkSAAHc2NhbGUxNgCAgIT+pt7hEQEMdHJ5R2V0U3RyaW5nAgNrZXkHYWRkcmVzcwQHJG1hdGNoMAkAnQgCBQdhZGRyZXNzBQNrZXkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFiBQckbWF0Y2gwBQFiAgABDXRyeUdldEludGVnZXICA2tleQdhZGRyZXNzBAckbWF0Y2gwCQCaCAIFB2FkZHJlc3MFA2tleQMJAAECBQckbWF0Y2gwAgNJbnQEAWIFByRtYXRjaDAFAWIAAAEOZ2V0QXNzZXRTdHJpbmcBB2Fzc2V0SWQEByRtYXRjaDAFB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQBYgUHJG1hdGNoMAkA2AQBBQFiAgVXQVZFUwENZ2V0QWNjQmFsYW5jZQEHYXNzZXRJZAMJAAACBQdhc3NldElkAgVXQVZFUwgJAO8HAQUEdGhpcwlhdmFpbGFibGUJAPAHAgUEdGhpcwkA2QQBBQdhc3NldElkAQlnZXRfc3JhdGUCC3Bvb2xBZGRyZXNzB2Fzc2V0SWQJAQ10cnlHZXRJbnRlZ2VyAgkArAICBQdhc3NldElkAgZfc1JhdGUJAQdBZGRyZXNzAQkA2QQBBQtwb29sQWRkcmVzcwEQZ2V0X3BhcmFtc19ieV9QTAEJcGxBc3NldElkBAlwckFkZHJlc3MJAQdBZGRyZXNzAQkA2QQBBQZwcnBycHIEB2Fzc2V0SWQJAQx0cnlHZXRTdHJpbmcCCQCsAgIJAKwCAgIGc2V0dXBfBQlwbEFzc2V0SWQCCF9hc3NldElkBQlwckFkZHJlc3MEC3Bvb2xBZGRyZXNzCQEMdHJ5R2V0U3RyaW5nAgkArAICCQCsAgICBnNldHVwXwUJcGxBc3NldElkAgxfcG9vbEFkZHJlc3MFCXByQWRkcmVzcwQKcG9vbERvbWFpbgkBDHRyeUdldFN0cmluZwIJAKwCAgkArAICAgZzZXR1cF8FCXBsQXNzZXRJZAILX3Bvb2xEb21haW4FCXByQWRkcmVzcwkAlQoDBQdhc3NldElkBQtwb29sQWRkcmVzcwUKcG9vbERvbWFpbgEBaQEDcHR3AAQKcGF5QXNzZXRJZAgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBAlwYXlBbW91bnQJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BAskdDAxNDg0MTU3MAkBEGdldF9wYXJhbXNfYnlfUEwBCQEOZ2V0QXNzZXRTdHJpbmcBBQpwYXlBc3NldElkBAdhc3NldElkCAULJHQwMTQ4NDE1NzACXzEEC3Bvb2xBZGRyZXNzCAULJHQwMTQ4NDE1NzACXzIECnBvb2xEb21haW4IBQskdDAxNDg0MTU3MAJfMwQHcG9vbEFkcgkBB0FkZHJlc3MBCQDZBAEFC3Bvb2xBZGRyZXNzBAhzdXBwbEJlZgkBDXRyeUdldEludGVnZXICCQCsAgIJAKwCAgkApQgBBQR0aGlzAgpfc3VwcGxpZWRfBQdhc3NldElkBQdwb29sQWRyAwkAAAIFCHN1cHBsQmVmBQhzdXBwbEJlZgQGYmFsQmVmCQENZ2V0QWNjQmFsYW5jZQEFB2Fzc2V0SWQDCQAAAgUGYmFsQmVmBQZiYWxCZWYECGltcG9ydFBMCQD8BwQJAQdBZGRyZXNzAQkA2QQBBQZwcnBycHICCGltcG9ydFBMCQDMCAIFCnBvb2xEb21haW4JAMwIAgkApQgBBQR0aGlzBQNuaWwIBQFpCHBheW1lbnRzAwkAAAIFCGltcG9ydFBMBQhpbXBvcnRQTAQKc3VwcGxBZnRlcgkBDXRyeUdldEludGVnZXICCQCsAgIJAKwCAgkApQgBBQR0aGlzAgpfc3VwcGxpZWRfBQdhc3NldElkBQdwb29sQWRyAwkAAAIFCnN1cHBsQWZ0ZXIFCnN1cHBsQWZ0ZXIEEGFtb3VudFRvV2l0aGRyYXcJAGsDCQBlAgUKc3VwcGxBZnRlcgUIc3VwcGxCZWYJAQlnZXRfc3JhdGUCBQtwb29sQWRkcmVzcwUHYXNzZXRJZAUHc2NhbGUxNgMJAAACBRBhbW91bnRUb1dpdGhkcmF3BRBhbW91bnRUb1dpdGhkcmF3BAd3aXRkcmF3CQD8BwQJAQdBZGRyZXNzAQkA2QQBBQtwb29sQWRkcmVzcwIId2l0aGRyYXcJAMwIAgUHYXNzZXRJZAkAzAgCBRBhbW91bnRUb1dpdGhkcmF3BQNuaWwFA25pbAMJAAACBQd3aXRkcmF3BQd3aXRkcmF3BAhiYWxBZnRlcgkBDWdldEFjY0JhbGFuY2UBBQdhc3NldElkAwkAAAIFCGJhbEFmdGVyBQhiYWxBZnRlcgQKd2l0aGRyYXdlZAkAZQIFCGJhbEFmdGVyBQZiYWxCZWYDCQAAAgUKd2l0aGRyYXdlZAUKd2l0aGRyYXdlZAMGCQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIDMTogCQCkAwEFCXBheUFtb3VudAIFLCAyOiAJAKQDAQUKd2l0aGRyYXdlZAIOLCBzdXBwbEFmdGVyOiAJAKQDAQUKc3VwcGxBZnRlcgIKLCBiYWxiZWY6IAkApAMBBQZiYWxCZWYCDCwgYmFsQWZ0ZXI6IAkApAMBBQhiYWxBZnRlcgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuANRRNGw=", "height": 3838706, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HfusYovrmuQm7cGrwC8RQW8VgWAYw8RCpusW727hZrGw Next: 6zCetuLs7EqsN5fmnNWNUHQVwtVgtW2yZZ9pWLPufTex Diff:
OldNewDifferences
44 let prprpr = "3PJESVDTHRv8i83XbmHrRGQhDc5rgR3azQs"
55
66 let mp = "3P4uA5etnZi4AmBabKinq2bMiWU8KcnHZdH"
7+
8+let scale16 = 10000000000000000
79
810 func tryGetString (key,address) = match getString(address, key) {
911 case b: String =>
3436 else assetBalance(this, fromBase58String(assetId))
3537
3638
39+func get_srate (poolAddress,assetId) = tryGetInteger((assetId + "_sRate"), Address(fromBase58String(poolAddress)))
40+
41+
3742 func get_params_by_PL (plAssetId) = {
3843 let prAddress = Address(fromBase58String(prprpr))
3944 let assetId = tryGetString((("setup_" + plAssetId) + "_assetId"), prAddress)
4752 func ptw () = {
4853 let payAssetId = i.payments[0].assetId
4954 let payAmount = value(i.payments[0].amount)
50- let $t013091395 = get_params_by_PL(getAssetString(payAssetId))
51- let assetId = $t013091395._1
52- let poolAddress = $t013091395._2
53- let poolDomain = $t013091395._3
55+ let $t014841570 = get_params_by_PL(getAssetString(payAssetId))
56+ let assetId = $t014841570._1
57+ let poolAddress = $t014841570._2
58+ let poolDomain = $t014841570._3
5459 let poolAdr = Address(fromBase58String(poolAddress))
5560 let supplBef = tryGetInteger(((toString(this) + "_supplied_") + assetId), poolAdr)
5661 if ((supplBef == supplBef))
6469 let supplAfter = tryGetInteger(((toString(this) + "_supplied_") + assetId), poolAdr)
6570 if ((supplAfter == supplAfter))
6671 then {
67- let amountToWithdraw = (supplAfter - supplBef)
72+ let amountToWithdraw = fraction((supplAfter - supplBef), get_srate(poolAddress, assetId), scale16)
6873 if ((amountToWithdraw == amountToWithdraw))
6974 then {
7075 let witdraw = invoke(Address(fromBase58String(poolAddress)), "withdraw", [assetId, amountToWithdraw], nil)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let prprpr = "3PJESVDTHRv8i83XbmHrRGQhDc5rgR3azQs"
55
66 let mp = "3P4uA5etnZi4AmBabKinq2bMiWU8KcnHZdH"
7+
8+let scale16 = 10000000000000000
79
810 func tryGetString (key,address) = match getString(address, key) {
911 case b: String =>
1012 b
1113 case _ =>
1214 ""
1315 }
1416
1517
1618 func tryGetInteger (key,address) = match getInteger(address, key) {
1719 case b: Int =>
1820 b
1921 case _ =>
2022 0
2123 }
2224
2325
2426 func getAssetString (assetId) = match assetId {
2527 case b: ByteVector =>
2628 toBase58String(b)
2729 case _ =>
2830 "WAVES"
2931 }
3032
3133
3234 func getAccBalance (assetId) = if ((assetId == "WAVES"))
3335 then wavesBalance(this).available
3436 else assetBalance(this, fromBase58String(assetId))
3537
3638
39+func get_srate (poolAddress,assetId) = tryGetInteger((assetId + "_sRate"), Address(fromBase58String(poolAddress)))
40+
41+
3742 func get_params_by_PL (plAssetId) = {
3843 let prAddress = Address(fromBase58String(prprpr))
3944 let assetId = tryGetString((("setup_" + plAssetId) + "_assetId"), prAddress)
4045 let poolAddress = tryGetString((("setup_" + plAssetId) + "_poolAddress"), prAddress)
4146 let poolDomain = tryGetString((("setup_" + plAssetId) + "_poolDomain"), prAddress)
4247 $Tuple3(assetId, poolAddress, poolDomain)
4348 }
4449
4550
4651 @Callable(i)
4752 func ptw () = {
4853 let payAssetId = i.payments[0].assetId
4954 let payAmount = value(i.payments[0].amount)
50- let $t013091395 = get_params_by_PL(getAssetString(payAssetId))
51- let assetId = $t013091395._1
52- let poolAddress = $t013091395._2
53- let poolDomain = $t013091395._3
55+ let $t014841570 = get_params_by_PL(getAssetString(payAssetId))
56+ let assetId = $t014841570._1
57+ let poolAddress = $t014841570._2
58+ let poolDomain = $t014841570._3
5459 let poolAdr = Address(fromBase58String(poolAddress))
5560 let supplBef = tryGetInteger(((toString(this) + "_supplied_") + assetId), poolAdr)
5661 if ((supplBef == supplBef))
5762 then {
5863 let balBef = getAccBalance(assetId)
5964 if ((balBef == balBef))
6065 then {
6166 let importPL = invoke(Address(fromBase58String(prprpr)), "importPL", [poolDomain, toString(this)], i.payments)
6267 if ((importPL == importPL))
6368 then {
6469 let supplAfter = tryGetInteger(((toString(this) + "_supplied_") + assetId), poolAdr)
6570 if ((supplAfter == supplAfter))
6671 then {
67- let amountToWithdraw = (supplAfter - supplBef)
72+ let amountToWithdraw = fraction((supplAfter - supplBef), get_srate(poolAddress, assetId), scale16)
6873 if ((amountToWithdraw == amountToWithdraw))
6974 then {
7075 let witdraw = invoke(Address(fromBase58String(poolAddress)), "withdraw", [assetId, amountToWithdraw], nil)
7176 if ((witdraw == witdraw))
7277 then {
7378 let balAfter = getAccBalance(assetId)
7479 if ((balAfter == balAfter))
7580 then {
7681 let withdrawed = (balAfter - balBef)
7782 if ((withdrawed == withdrawed))
7883 then if (true)
7984 then throw(((((((((("1: " + toString(payAmount)) + ", 2: ") + toString(withdrawed)) + ", supplAfter: ") + toString(supplAfter)) + ", balbef: ") + toString(balBef)) + ", balAfter: ") + toString(balAfter)))
8085 else nil
8186 else throw("Strict value is not equal to itself.")
8287 }
8388 else throw("Strict value is not equal to itself.")
8489 }
8590 else throw("Strict value is not equal to itself.")
8691 }
8792 else throw("Strict value is not equal to itself.")
8893 }
8994 else throw("Strict value is not equal to itself.")
9095 }
9196 else throw("Strict value is not equal to itself.")
9297 }
9398 else throw("Strict value is not equal to itself.")
9499 }
95100 else throw("Strict value is not equal to itself.")
96101 }
97102
98103

github/deemru/w8io/3ef1775 
34.13 ms