tx · 8Ghw7FGjuDfjYqNGG9ZXt73DVG76x7FceSpcMuraHP9s

3P7VznyyJc91e2SXpWTgc9Zp2d9XWHdwLJ1:  -0.00300000 Waves

2023.09.26 16:54 [3838266] smart account 3P7VznyyJc91e2SXpWTgc9Zp2d9XWHdwLJ1 > SELF 0.00000000 Waves

{ "type": 13, "id": "8Ghw7FGjuDfjYqNGG9ZXt73DVG76x7FceSpcMuraHP9s", "fee": 300000, "feeAssetId": null, "timestamp": 1695736531812, "version": 2, "chainId": 87, "sender": "3P7VznyyJc91e2SXpWTgc9Zp2d9XWHdwLJ1", "senderPublicKey": "DiCe6VGgddpG7YfGhT4XXsPuQtiyzaV68EZUB8GNT3hs", "proofs": [ "2Qos3zo4DWzWNcNrriE72pY3cXxbnte8gdFCGSKMxuihWpmNFnPfHAQdAbdwVX9a7bqmgDECyCWGod7vA6Hd7VKU" ], "script": "base64:BgIECAISAAcABnBycHJwcgIjM1BKRVNWRFRIUnY4aTgzWGJtSHJSR1FoRGM1cmdSM2F6UXMAAm1wAiMzUDR1QTVldG5aaTRBbUJhYktpbnEyYk1pV1U4S2NuSFpkSAEMdHJ5R2V0U3RyaW5nAgNrZXkHYWRkcmVzcwQHJG1hdGNoMAkAnQgCBQdhZGRyZXNzBQNrZXkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFiBQckbWF0Y2gwBQFiAgABDXRyeUdldEludGVnZXICA2tleQdhZGRyZXNzBAckbWF0Y2gwCQCaCAIFB2FkZHJlc3MFA2tleQMJAAECBQckbWF0Y2gwAgNJbnQEAWIFByRtYXRjaDAFAWIAAAEOZ2V0QXNzZXRTdHJpbmcBB2Fzc2V0SWQEByRtYXRjaDAFB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQBYgUHJG1hdGNoMAkA2AQBBQFiAgVXQVZFUwENZ2V0QWNjQmFsYW5jZQEHYXNzZXRJZAMJAAACBQdhc3NldElkAgVXQVZFUwgJAO8HAQUEdGhpcwlhdmFpbGFibGUJAPAHAgUEdGhpcwkA2QQBBQdhc3NldElkARBnZXRfcGFyYW1zX2J5X1BMAQlwbEFzc2V0SWQECXByQWRkcmVzcwkBB0FkZHJlc3MBCQDZBAEFBnBycHJwcgQHYXNzZXRJZAkBDHRyeUdldFN0cmluZwIJAKwCAgkArAICAgZzZXR1cF8FCXBsQXNzZXRJZAIIX2Fzc2V0SWQFCXByQWRkcmVzcwQLcG9vbEFkZHJlc3MJAQx0cnlHZXRTdHJpbmcCCQCsAgIJAKwCAgIGc2V0dXBfBQlwbEFzc2V0SWQCDF9wb29sQWRkcmVzcwUJcHJBZGRyZXNzBApwb29sRG9tYWluCQEMdHJ5R2V0U3RyaW5nAgkArAICCQCsAgICBnNldHVwXwUJcGxBc3NldElkAgtfcG9vbERvbWFpbgUJcHJBZGRyZXNzCQCVCgMFB2Fzc2V0SWQFC3Bvb2xBZGRyZXNzBQpwb29sRG9tYWluAQFpAQNwdHcABApwYXlBc3NldElkCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQECXBheUFtb3VudAkBBXZhbHVlAQgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQECyR0MDEzMDkxMzk1CQEQZ2V0X3BhcmFtc19ieV9QTAEJAQ5nZXRBc3NldFN0cmluZwEFCnBheUFzc2V0SWQEB2Fzc2V0SWQIBQskdDAxMzA5MTM5NQJfMQQLcG9vbEFkZHJlc3MIBQskdDAxMzA5MTM5NQJfMgQKcG9vbERvbWFpbggFCyR0MDEzMDkxMzk1Al8zBAdwb29sQWRyCQEHQWRkcmVzcwEJANkEAQULcG9vbEFkZHJlc3MECHN1cHBsQmVmCQENdHJ5R2V0SW50ZWdlcgIJAKwCAgkArAICCQClCAEFBHRoaXMCCl9zdXBwbGllZF8FB2Fzc2V0SWQFB3Bvb2xBZHIDCQAAAgUIc3VwcGxCZWYFCHN1cHBsQmVmBAZiYWxCZWYJAQ1nZXRBY2NCYWxhbmNlAQUHYXNzZXRJZAMJAAACBQZiYWxCZWYFBmJhbEJlZgQIaW1wb3J0UEwJAPwHBAkBB0FkZHJlc3MBCQDZBAEFBnBycHJwcgIIaW1wb3J0UEwJAMwIAgUKcG9vbERvbWFpbgkAzAgCCQClCAEFBHRoaXMFA25pbAgFAWkIcGF5bWVudHMDCQAAAgUIaW1wb3J0UEwFCGltcG9ydFBMBApzdXBwbEFmdGVyCQENdHJ5R2V0SW50ZWdlcgIJAKwCAgkArAICCQClCAEFBHRoaXMCCl9zdXBwbGllZF8FB2Fzc2V0SWQFB3Bvb2xBZHIDCQAAAgUKc3VwcGxBZnRlcgUKc3VwcGxBZnRlcgQQYW1vdW50VG9XaXRoZHJhdwkAZQIFCnN1cHBsQWZ0ZXIFCHN1cHBsQmVmAwkAAAIFEGFtb3VudFRvV2l0aGRyYXcFEGFtb3VudFRvV2l0aGRyYXcEB3dpdGRyYXcJAPwHBAkBB0FkZHJlc3MBCQDZBAEFC3Bvb2xBZGRyZXNzAgh3aXRoZHJhdwkAzAgCBQdhc3NldElkCQDMCAIFEGFtb3VudFRvV2l0aGRyYXcFA25pbAUDbmlsAwkAAAIFB3dpdGRyYXcFB3dpdGRyYXcECGJhbEFmdGVyCQENZ2V0QWNjQmFsYW5jZQEFB2Fzc2V0SWQDCQAAAgUIYmFsQWZ0ZXIFCGJhbEFmdGVyBAp3aXRoZHJhd2VkCQBlAgUIYmFsQWZ0ZXIFBmJhbEJlZgMGCQACAQkArAICCQCsAgIJAKwCAgIDMTogCQCkAwEFCXBheUFtb3VudAIFLCAyOiAJAKQDAQUKd2l0aGRyYXdlZAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuANDsnII=", "height": 3838266, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EcQYvSkETjL2w31qBfY9GQB65hJvSLU3qsSh4dhLCEC4 Next: HfusYovrmuQm7cGrwC8RQW8VgWAYw8RCpusW727hZrGw Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let rex_contract = "3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU"
4+let prprpr = "3PJESVDTHRv8i83XbmHrRGQhDc5rgR3azQs"
5+
6+let mp = "3P4uA5etnZi4AmBabKinq2bMiWU8KcnHZdH"
7+
8+func tryGetString (key,address) = match getString(address, key) {
9+ case b: String =>
10+ b
11+ case _ =>
12+ ""
13+}
14+
15+
16+func tryGetInteger (key,address) = match getInteger(address, key) {
17+ case b: Int =>
18+ b
19+ case _ =>
20+ 0
21+}
22+
23+
24+func getAssetString (assetId) = match assetId {
25+ case b: ByteVector =>
26+ toBase58String(b)
27+ case _ =>
28+ "WAVES"
29+}
30+
31+
32+func getAccBalance (assetId) = if ((assetId == "WAVES"))
33+ then wavesBalance(this).available
34+ else assetBalance(this, fromBase58String(assetId))
35+
36+
37+func get_params_by_PL (plAssetId) = {
38+ let prAddress = Address(fromBase58String(prprpr))
39+ let assetId = tryGetString((("setup_" + plAssetId) + "_assetId"), prAddress)
40+ let poolAddress = tryGetString((("setup_" + plAssetId) + "_poolAddress"), prAddress)
41+ let poolDomain = tryGetString((("setup_" + plAssetId) + "_poolDomain"), prAddress)
42+ $Tuple3(assetId, poolAddress, poolDomain)
43+ }
44+
545
646 @Callable(i)
7-func swap (params) = {
8- let r = invoke(Address(fromBase58String(rex_contract)), "swap", [params, 0], i.payments)
9- if ((r == r))
10- then if (true)
11- then throw("Swap successful")
12- else nil
47+func ptw () = {
48+ let payAssetId = i.payments[0].assetId
49+ 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
54+ let poolAdr = Address(fromBase58String(poolAddress))
55+ let supplBef = tryGetInteger(((toString(this) + "_supplied_") + assetId), poolAdr)
56+ if ((supplBef == supplBef))
57+ then {
58+ let balBef = getAccBalance(assetId)
59+ if ((balBef == balBef))
60+ then {
61+ let importPL = invoke(Address(fromBase58String(prprpr)), "importPL", [poolDomain, toString(this)], i.payments)
62+ if ((importPL == importPL))
63+ then {
64+ let supplAfter = tryGetInteger(((toString(this) + "_supplied_") + assetId), poolAdr)
65+ if ((supplAfter == supplAfter))
66+ then {
67+ let amountToWithdraw = (supplAfter - supplBef)
68+ if ((amountToWithdraw == amountToWithdraw))
69+ then {
70+ let witdraw = invoke(Address(fromBase58String(poolAddress)), "withdraw", [assetId, amountToWithdraw], nil)
71+ if ((witdraw == witdraw))
72+ then {
73+ let balAfter = getAccBalance(assetId)
74+ if ((balAfter == balAfter))
75+ then {
76+ let withdrawed = (balAfter - balBef)
77+ if (true)
78+ then throw(((("1: " + toString(payAmount)) + ", 2: ") + toString(withdrawed)))
79+ else nil
80+ }
81+ else throw("Strict value is not equal to itself.")
82+ }
83+ else throw("Strict value is not equal to itself.")
84+ }
85+ else throw("Strict value is not equal to itself.")
86+ }
87+ else throw("Strict value is not equal to itself.")
88+ }
89+ else throw("Strict value is not equal to itself.")
90+ }
91+ else throw("Strict value is not equal to itself.")
92+ }
1393 else throw("Strict value is not equal to itself.")
1494 }
1595
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let rex_contract = "3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU"
4+let prprpr = "3PJESVDTHRv8i83XbmHrRGQhDc5rgR3azQs"
5+
6+let mp = "3P4uA5etnZi4AmBabKinq2bMiWU8KcnHZdH"
7+
8+func tryGetString (key,address) = match getString(address, key) {
9+ case b: String =>
10+ b
11+ case _ =>
12+ ""
13+}
14+
15+
16+func tryGetInteger (key,address) = match getInteger(address, key) {
17+ case b: Int =>
18+ b
19+ case _ =>
20+ 0
21+}
22+
23+
24+func getAssetString (assetId) = match assetId {
25+ case b: ByteVector =>
26+ toBase58String(b)
27+ case _ =>
28+ "WAVES"
29+}
30+
31+
32+func getAccBalance (assetId) = if ((assetId == "WAVES"))
33+ then wavesBalance(this).available
34+ else assetBalance(this, fromBase58String(assetId))
35+
36+
37+func get_params_by_PL (plAssetId) = {
38+ let prAddress = Address(fromBase58String(prprpr))
39+ let assetId = tryGetString((("setup_" + plAssetId) + "_assetId"), prAddress)
40+ let poolAddress = tryGetString((("setup_" + plAssetId) + "_poolAddress"), prAddress)
41+ let poolDomain = tryGetString((("setup_" + plAssetId) + "_poolDomain"), prAddress)
42+ $Tuple3(assetId, poolAddress, poolDomain)
43+ }
44+
545
646 @Callable(i)
7-func swap (params) = {
8- let r = invoke(Address(fromBase58String(rex_contract)), "swap", [params, 0], i.payments)
9- if ((r == r))
10- then if (true)
11- then throw("Swap successful")
12- else nil
47+func ptw () = {
48+ let payAssetId = i.payments[0].assetId
49+ 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
54+ let poolAdr = Address(fromBase58String(poolAddress))
55+ let supplBef = tryGetInteger(((toString(this) + "_supplied_") + assetId), poolAdr)
56+ if ((supplBef == supplBef))
57+ then {
58+ let balBef = getAccBalance(assetId)
59+ if ((balBef == balBef))
60+ then {
61+ let importPL = invoke(Address(fromBase58String(prprpr)), "importPL", [poolDomain, toString(this)], i.payments)
62+ if ((importPL == importPL))
63+ then {
64+ let supplAfter = tryGetInteger(((toString(this) + "_supplied_") + assetId), poolAdr)
65+ if ((supplAfter == supplAfter))
66+ then {
67+ let amountToWithdraw = (supplAfter - supplBef)
68+ if ((amountToWithdraw == amountToWithdraw))
69+ then {
70+ let witdraw = invoke(Address(fromBase58String(poolAddress)), "withdraw", [assetId, amountToWithdraw], nil)
71+ if ((witdraw == witdraw))
72+ then {
73+ let balAfter = getAccBalance(assetId)
74+ if ((balAfter == balAfter))
75+ then {
76+ let withdrawed = (balAfter - balBef)
77+ if (true)
78+ then throw(((("1: " + toString(payAmount)) + ", 2: ") + toString(withdrawed)))
79+ else nil
80+ }
81+ else throw("Strict value is not equal to itself.")
82+ }
83+ else throw("Strict value is not equal to itself.")
84+ }
85+ else throw("Strict value is not equal to itself.")
86+ }
87+ else throw("Strict value is not equal to itself.")
88+ }
89+ else throw("Strict value is not equal to itself.")
90+ }
91+ else throw("Strict value is not equal to itself.")
92+ }
1393 else throw("Strict value is not equal to itself.")
1494 }
1595
1696

github/deemru/w8io/3ef1775 
21.11 ms