tx · 6kvDBw3S9rrFpTBfSbyr4gDiL1YTWvkgSx1CqPeLAahJ 3PNjTd61hrMczLCGbsEZC2Kyb44RMXm65ez: -0.00400000 Waves 2023.04.14 12:21 [3599648] smart account 3PNjTd61hrMczLCGbsEZC2Kyb44RMXm65ez > SELF 0.00000000 Waves
{ "type": 13, "id": "6kvDBw3S9rrFpTBfSbyr4gDiL1YTWvkgSx1CqPeLAahJ", "fee": 400000, "feeAssetId": null, "timestamp": 1681464093307, "version": 2, "chainId": 87, "sender": "3PNjTd61hrMczLCGbsEZC2Kyb44RMXm65ez", "senderPublicKey": "D5eTVuTxKqH6iQ3XN8BQYJMKoXCFT7C3jvkvboyq7b5k", "proofs": [ "3tv4Za294fXoN7AWBNUDudjjSFTkFuKhkLfSnYcG6Mp8HVWjdZzTdKBngiMDDdf4CkEvYFm3Tp87byDcTF2EhzUr" ], "script": "base64:BgIYCAISCQoHCAEICAgIBBIJCgcIAQgICAgEDgAKcnVsZXJfdGVzdAIsQmd4cENtNHd4Ylc4U0tMUEtabmY0S1UyRDZaVTI5b3Y4TWdacmthU0FxcFkABXJ1bGVyAiw3ek5VSkJWb1BNQkNSc3RQM1IxQXZ4aHhyTjUxU1FrbjVCTWkyaUo5Y2lBZAAGcnVsZXIyAiw5ZmU2N2V3enh0YUxvemVQWjJVM1NHNzFaUUZ5R0xBWFdtbW1IUkVwRmVNQwAGcnVsZXIzAixGZU1YNmhRYVJLc0xza2k3N3hWSEhER1JrajlWdUp6bVAyTUFDYkFXRGpESwAGcnVsZXI0AiwzUFNLN2I2Yk1mMWdCRHZqSFJiR1E5ekdjNjhVaXJlcUJqMmV1YlZpMXE1cgAGcnVsZXI1Aiw2NnJDdjlkZmRvdXFRM1NSRzlYcktuUmlGbU1id2taUWdtaFMxZnRuQ3RxbQAGcnVsZXI2AixGZU1YNmhRYVJLc0xza2k3N3hWSEhER1JrajlWdUp6bVAyTUFDYkFXRGpESwAKYWJyYWNhZGJyYQEghMOETKvifAIJ3qLBc2gJLOtraBcSSV26VhCaL7aJcwEBA3ZpcAEDa2trAwMDAwMDCQAAAgUDa2trBQVydWxlcgYJAAACBQNra2sFBnJ1bGVyMgYJAAACBQNra2sFBnJ1bGVyMwYJAAACBQNra2sFBnJ1bGVyNAYJAAACBQNra2sFBnJ1bGVyNQYJAAACBQNra2sFBnJ1bGVyNgYHAQpnZXRBc3NldElkAQNwbXQEByRtYXRjaDAFA3BtdAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAFwBQckbWF0Y2gwBQNwbXQFBHVuaXQBDmdldEFzc2V0U3RyaW5nAQdhc3NldElkBAckbWF0Y2gwBQdhc3NldElkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAWIFByRtYXRjaDAJANgEAQUBYgIFV0FWRVMBDWdldEFjY0JhbGFuY2UBB2Fzc2V0SWQDCQAAAgUHYXNzZXRJZAIFV0FWRVMICQDvBwEFBHRoaXMJYXZhaWxhYmxlCQDwBwIFBHRoaXMJANkEAQUHYXNzZXRJZAENZ2V0QXNzZXRCeXRlcwEHYXNzZXRJZAMJAAACBQdhc3NldElkAgVXQVZFUwUEdW5pdAkA2QQBBQdhc3NldElkAQlteUJhbGFuY2UBB2Fzc2V0SWQEByRtYXRjaDAFB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQBYgUHJG1hdGNoMAkA8AcCBQR0aGlzBQFiCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQIBaQEEZmFrZQcEYV9pbgZhbW91bnQFYV9vdXQCcG8FcG9fdHkOd3hfbHBfYXNzZXRfaWQJaXNfc3RhYmxlBAdhc3NldEluCQENZ2V0QXNzZXRCeXRlcwEFBGFfaW4ECGFtb3VudEluBQZhbW91bnQEBXB1dE9wAwUJaXNfc3RhYmxlAgtwdXRPbmVUa25WMgIJcHV0T25lVGtuBAVnZXRPcAMFCWlzX3N0YWJsZQILZ2V0T25lVGtuVjICCWdldE9uZVRrbgQUYW1vdW50X2JlZl9hc3NldF9vdXQJAQlteUJhbGFuY2UBCQENZ2V0QXNzZXRCeXRlcwEFBWFfb3V0AwkAAAIFFGFtb3VudF9iZWZfYXNzZXRfb3V0BRRhbW91bnRfYmVmX2Fzc2V0X291dAQGZW50cnkxAwkAAAIFBXBvX3R5AgFwCQD8BwQJAQdBZGRyZXNzAQkA2QQBBQJwbwIEc3dhcAkAzAgCBQVhX291dAkAzAgCAAEFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUHYXNzZXRJbgUIYW1vdW50SW4FA25pbAMJAAACBQVwb190eQIBcwkA/AcECQEHQWRkcmVzcwEJANkEAQUCcG8CCGV4Y2hhbmdlCQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQdhc3NldEluBQhhbW91bnRJbgUDbmlsBANwdXQJAPwHBAkBB0FkZHJlc3MBCQDZBAEFAnBvBQVwdXRPcAkAzAgCAAEJAMwIAgcFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUHYXNzZXRJbgUIYW1vdW50SW4FA25pbAMJAAACBQNwdXQFA3B1dAQLd3hfbHBfYXNzZXQJAQ1nZXRBc3NldEJ5dGVzAQUOd3hfbHBfYXNzZXRfaWQECWxwQmFsYW5jZQkBCW15QmFsYW5jZQEFC3d4X2xwX2Fzc2V0CQD8BwQJAQdBZGRyZXNzAQkA2QQBBQJwbwUFZ2V0T3AJAMwIAgUFYV9vdXQJAMwIAgABBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFC3d4X2xwX2Fzc2V0BQlscEJhbGFuY2UFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgMJAAACBQZlbnRyeTEFBmVudHJ5MQQWYW1vdW50X2FmdGVyX2Fzc2V0X291dAkBCW15QmFsYW5jZQEJAQ1nZXRBc3NldEJ5dGVzAQUFYV9vdXQDCQAAAgUWYW1vdW50X2FmdGVyX2Fzc2V0X291dAUWYW1vdW50X2FmdGVyX2Fzc2V0X291dAQEcmVzdQkAZQIFFmFtb3VudF9hZnRlcl9hc3NldF9vdXQFFGFtb3VudF9iZWZfYXNzZXRfb3V0CQACAQkArAICCQCkAwEFBHJlc3UCAywgMAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQdmYWtlX3d4BwRhX2luBmFtb3VudAVhX291dAJwbwVwb190eQ53eF9scF9hc3NldF9pZAlpc19zdGFibGUEB2Fzc2V0SW4JAQ1nZXRBc3NldEJ5dGVzAQUEYV9pbgQIYW1vdW50SW4FBmFtb3VudAQFcHV0T3ADBQlpc19zdGFibGUCC3B1dE9uZVRrblYyAglwdXRPbmVUa24EBWdldE9wAwUJaXNfc3RhYmxlAgtnZXRPbmVUa25WMgIJZ2V0T25lVGtuBBRhbW91bnRfYmVmX2Fzc2V0X291dAkBCW15QmFsYW5jZQEJAQ1nZXRBc3NldEJ5dGVzAQUFYV9vdXQDCQAAAgUUYW1vdW50X2JlZl9hc3NldF9vdXQFFGFtb3VudF9iZWZfYXNzZXRfb3V0BAZzdXBwbHkICQEFdmFsdWUBCQDsBwEJANkEAQUOd3hfbHBfYXNzZXRfaWQIcXVhbnRpdHkDCQAAAgUGc3VwcGx5BQZzdXBwbHkEA3B1dAkA/AcECQEHQWRkcmVzcwEJANkEAQUCcG8FBXB1dE9wCQDMCAIAAQkAzAgCBwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQdhc3NldEluBQhhbW91bnRJbgUDbmlsAwkAAAIFA3B1dAUDcHV0BAt3eF9scF9hc3NldAkBDWdldEFzc2V0Qnl0ZXMBBQ53eF9scF9hc3NldF9pZAQJbHBCYWxhbmNlCQEJbXlCYWxhbmNlAQULd3hfbHBfYXNzZXQDCQAAAgUJbHBCYWxhbmNlBQlscEJhbGFuY2UEA2dldAkA/AcECQEHQWRkcmVzcwEJANkEAQUCcG8FBWdldE9wCQDMCAIFBWFfb3V0CQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQt3eF9scF9hc3NldAUJbHBCYWxhbmNlBQNuaWwDCQAAAgUDZ2V0BQNnZXQEFmFtb3VudF9hZnRlcl9hc3NldF9vdXQJAQlteUJhbGFuY2UBCQENZ2V0QXNzZXRCeXRlcwEFBWFfb3V0AwkAAAIFFmFtb3VudF9hZnRlcl9hc3NldF9vdXQFFmFtb3VudF9hZnRlcl9hc3NldF9vdXQEBHJlc3UJAGUCBRZhbW91bnRfYWZ0ZXJfYXNzZXRfb3V0BRRhbW91bnRfYmVmX2Fzc2V0X291dAkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkApAMBBQRyZXN1AgEsCQCkAwEFCWxwQmFsYW5jZQIBLAkApAMBBQZzdXBwbHkJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AQHKSGw==", "height": 3599648, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4ywTac8xXQU9aB9W64fp1vwTNgBrofNSVjvCeKoQhALg Next: 7NJyi4p1ccz8rvKqxjCmf1LjKaznZ1Rm5PwBCxgb3oCS Diff:
Old | New | Differences | |
---|---|---|---|
67 | 67 | ||
68 | 68 | ||
69 | 69 | @Callable(i) | |
70 | - | func rexxxy (r,m) = { | |
71 | - | let rex = "3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU" | |
72 | - | let callerPbk = toBase58String(i.callerPublicKey) | |
73 | - | let p0 = i.payments[0] | |
74 | - | let p1 = i.payments[1] | |
75 | - | let a0_b = myBalance(p0.assetId) | |
76 | - | if ((a0_b == a0_b)) | |
70 | + | func fake (a_in,amount,a_out,po,po_ty,wx_lp_asset_id,is_stable) = { | |
71 | + | let assetIn = getAssetBytes(a_in) | |
72 | + | let amountIn = amount | |
73 | + | let putOp = if (is_stable) | |
74 | + | then "putOneTknV2" | |
75 | + | else "putOneTkn" | |
76 | + | let getOp = if (is_stable) | |
77 | + | then "getOneTknV2" | |
78 | + | else "getOneTkn" | |
79 | + | let amount_bef_asset_out = myBalance(getAssetBytes(a_out)) | |
80 | + | if ((amount_bef_asset_out == amount_bef_asset_out)) | |
77 | 81 | then { | |
78 | - | let a1_b = myBalance(p1.assetId) | |
79 | - | if ((a1_b == a1_b)) | |
80 | - | then if (vip(callerPbk)) | |
81 | - | then { | |
82 | - | let re = invoke(Address(fromBase58String(rex)), "swap", [r, m], [p0, p1]) | |
83 | - | if ((re == re)) | |
82 | + | let entry1 = if ((po_ty == "p")) | |
83 | + | then invoke(Address(fromBase58String(po)), "swap", [a_out, 1], [AttachedPayment(assetIn, amountIn)]) | |
84 | + | else if ((po_ty == "s")) | |
85 | + | then invoke(Address(fromBase58String(po)), "exchange", [1], [AttachedPayment(assetIn, amountIn)]) | |
86 | + | else { | |
87 | + | let put = invoke(Address(fromBase58String(po)), putOp, [1, false], [AttachedPayment(assetIn, amountIn)]) | |
88 | + | if ((put == put)) | |
84 | 89 | then { | |
85 | - | let a0_b_a = myBalance(p0.assetId) | |
86 | - | if ((a0_b_a == a0_b_a)) | |
87 | - | then { | |
88 | - | let a1_b_a = myBalance(p1.assetId) | |
89 | - | if ((a1_b_a == a1_b_a)) | |
90 | - | then [ScriptTransfer(i.caller, a1_b_a, p1.assetId), ScriptTransfer(i.caller, a0_b_a, p0.assetId)] | |
91 | - | else throw("Strict value is not equal to itself.") | |
92 | - | } | |
93 | - | else throw("Strict value is not equal to itself.") | |
90 | + | let wx_lp_asset = getAssetBytes(wx_lp_asset_id) | |
91 | + | let lpBalance = myBalance(wx_lp_asset) | |
92 | + | invoke(Address(fromBase58String(po)), getOp, [a_out, 1], [AttachedPayment(wx_lp_asset, lpBalance)]) | |
94 | 93 | } | |
95 | 94 | else throw("Strict value is not equal to itself.") | |
96 | 95 | } | |
97 | - | else throw("No-no-no") | |
96 | + | if ((entry1 == entry1)) | |
97 | + | then { | |
98 | + | let amount_after_asset_out = myBalance(getAssetBytes(a_out)) | |
99 | + | if ((amount_after_asset_out == amount_after_asset_out)) | |
100 | + | then { | |
101 | + | let resu = (amount_after_asset_out - amount_bef_asset_out) | |
102 | + | throw((toString(resu) + ", 0")) | |
103 | + | } | |
104 | + | else throw("Strict value is not equal to itself.") | |
105 | + | } | |
106 | + | else throw("Strict value is not equal to itself.") | |
107 | + | } | |
108 | + | else throw("Strict value is not equal to itself.") | |
109 | + | } | |
110 | + | ||
111 | + | ||
112 | + | ||
113 | + | @Callable(i) | |
114 | + | func fake_wx (a_in,amount,a_out,po,po_ty,wx_lp_asset_id,is_stable) = { | |
115 | + | let assetIn = getAssetBytes(a_in) | |
116 | + | let amountIn = amount | |
117 | + | let putOp = if (is_stable) | |
118 | + | then "putOneTknV2" | |
119 | + | else "putOneTkn" | |
120 | + | let getOp = if (is_stable) | |
121 | + | then "getOneTknV2" | |
122 | + | else "getOneTkn" | |
123 | + | let amount_bef_asset_out = myBalance(getAssetBytes(a_out)) | |
124 | + | if ((amount_bef_asset_out == amount_bef_asset_out)) | |
125 | + | then { | |
126 | + | let supply = value(assetInfo(fromBase58String(wx_lp_asset_id))).quantity | |
127 | + | if ((supply == supply)) | |
128 | + | then { | |
129 | + | let put = invoke(Address(fromBase58String(po)), putOp, [1, false], [AttachedPayment(assetIn, amountIn)]) | |
130 | + | if ((put == put)) | |
131 | + | then { | |
132 | + | let wx_lp_asset = getAssetBytes(wx_lp_asset_id) | |
133 | + | let lpBalance = myBalance(wx_lp_asset) | |
134 | + | if ((lpBalance == lpBalance)) | |
135 | + | then { | |
136 | + | let get = invoke(Address(fromBase58String(po)), getOp, [a_out, 1], [AttachedPayment(wx_lp_asset, lpBalance)]) | |
137 | + | if ((get == get)) | |
138 | + | then { | |
139 | + | let amount_after_asset_out = myBalance(getAssetBytes(a_out)) | |
140 | + | if ((amount_after_asset_out == amount_after_asset_out)) | |
141 | + | then { | |
142 | + | let resu = (amount_after_asset_out - amount_bef_asset_out) | |
143 | + | throw(((((toString(resu) + ",") + toString(lpBalance)) + ",") + toString(supply))) | |
144 | + | } | |
145 | + | else throw("Strict value is not equal to itself.") | |
146 | + | } | |
147 | + | else throw("Strict value is not equal to itself.") | |
148 | + | } | |
149 | + | else throw("Strict value is not equal to itself.") | |
150 | + | } | |
151 | + | else throw("Strict value is not equal to itself.") | |
152 | + | } | |
98 | 153 | else throw("Strict value is not equal to itself.") | |
99 | 154 | } | |
100 | 155 | else throw("Strict value is not equal to itself.") |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let ruler_test = "BgxpCm4wxbW8SKLPKZnf4KU2D6ZU29ov8MgZrkaSAqpY" | |
5 | 5 | ||
6 | 6 | let ruler = "7zNUJBVoPMBCRstP3R1AvxhxrN51SQkn5BMi2iJ9ciAd" | |
7 | 7 | ||
8 | 8 | let ruler2 = "9fe67ewzxtaLozePZ2U3SG71ZQFyGLAXWmmmHREpFeMC" | |
9 | 9 | ||
10 | 10 | let ruler3 = "FeMX6hQaRKsLski77xVHHDGRkj9VuJzmP2MACbAWDjDK" | |
11 | 11 | ||
12 | 12 | let ruler4 = "3PSK7b6bMf1gBDvjHRbGQ9zGc68UireqBj2eubVi1q5r" | |
13 | 13 | ||
14 | 14 | let ruler5 = "66rCv9dfdouqQ3SRG9XrKnRiFmMbwkZQgmhS1ftnCtqm" | |
15 | 15 | ||
16 | 16 | let ruler6 = "FeMX6hQaRKsLski77xVHHDGRkj9VuJzmP2MACbAWDjDK" | |
17 | 17 | ||
18 | 18 | let abracadbra = base58'9wFjTx4rK6ZxfHa3z65BHhP6A7gkZLioxVrD4p2Frjjn' | |
19 | 19 | ||
20 | 20 | func vip (kkk) = if (if (if (if (if (if ((kkk == ruler)) | |
21 | 21 | then true | |
22 | 22 | else (kkk == ruler2)) | |
23 | 23 | then true | |
24 | 24 | else (kkk == ruler3)) | |
25 | 25 | then true | |
26 | 26 | else (kkk == ruler4)) | |
27 | 27 | then true | |
28 | 28 | else (kkk == ruler5)) | |
29 | 29 | then true | |
30 | 30 | else (kkk == ruler6)) | |
31 | 31 | then true | |
32 | 32 | else false | |
33 | 33 | ||
34 | 34 | ||
35 | 35 | func getAssetId (pmt) = match pmt { | |
36 | 36 | case p: ByteVector => | |
37 | 37 | pmt | |
38 | 38 | case _ => | |
39 | 39 | unit | |
40 | 40 | } | |
41 | 41 | ||
42 | 42 | ||
43 | 43 | func getAssetString (assetId) = match assetId { | |
44 | 44 | case b: ByteVector => | |
45 | 45 | toBase58String(b) | |
46 | 46 | case _ => | |
47 | 47 | "WAVES" | |
48 | 48 | } | |
49 | 49 | ||
50 | 50 | ||
51 | 51 | func getAccBalance (assetId) = if ((assetId == "WAVES")) | |
52 | 52 | then wavesBalance(this).available | |
53 | 53 | else assetBalance(this, fromBase58String(assetId)) | |
54 | 54 | ||
55 | 55 | ||
56 | 56 | func getAssetBytes (assetId) = if ((assetId == "WAVES")) | |
57 | 57 | then unit | |
58 | 58 | else fromBase58String(assetId) | |
59 | 59 | ||
60 | 60 | ||
61 | 61 | func myBalance (assetId) = match assetId { | |
62 | 62 | case b: ByteVector => | |
63 | 63 | assetBalance(this, b) | |
64 | 64 | case _ => | |
65 | 65 | wavesBalance(this).available | |
66 | 66 | } | |
67 | 67 | ||
68 | 68 | ||
69 | 69 | @Callable(i) | |
70 | - | func rexxxy (r,m) = { | |
71 | - | let rex = "3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU" | |
72 | - | let callerPbk = toBase58String(i.callerPublicKey) | |
73 | - | let p0 = i.payments[0] | |
74 | - | let p1 = i.payments[1] | |
75 | - | let a0_b = myBalance(p0.assetId) | |
76 | - | if ((a0_b == a0_b)) | |
70 | + | func fake (a_in,amount,a_out,po,po_ty,wx_lp_asset_id,is_stable) = { | |
71 | + | let assetIn = getAssetBytes(a_in) | |
72 | + | let amountIn = amount | |
73 | + | let putOp = if (is_stable) | |
74 | + | then "putOneTknV2" | |
75 | + | else "putOneTkn" | |
76 | + | let getOp = if (is_stable) | |
77 | + | then "getOneTknV2" | |
78 | + | else "getOneTkn" | |
79 | + | let amount_bef_asset_out = myBalance(getAssetBytes(a_out)) | |
80 | + | if ((amount_bef_asset_out == amount_bef_asset_out)) | |
77 | 81 | then { | |
78 | - | let a1_b = myBalance(p1.assetId) | |
79 | - | if ((a1_b == a1_b)) | |
80 | - | then if (vip(callerPbk)) | |
81 | - | then { | |
82 | - | let re = invoke(Address(fromBase58String(rex)), "swap", [r, m], [p0, p1]) | |
83 | - | if ((re == re)) | |
82 | + | let entry1 = if ((po_ty == "p")) | |
83 | + | then invoke(Address(fromBase58String(po)), "swap", [a_out, 1], [AttachedPayment(assetIn, amountIn)]) | |
84 | + | else if ((po_ty == "s")) | |
85 | + | then invoke(Address(fromBase58String(po)), "exchange", [1], [AttachedPayment(assetIn, amountIn)]) | |
86 | + | else { | |
87 | + | let put = invoke(Address(fromBase58String(po)), putOp, [1, false], [AttachedPayment(assetIn, amountIn)]) | |
88 | + | if ((put == put)) | |
84 | 89 | then { | |
85 | - | let a0_b_a = myBalance(p0.assetId) | |
86 | - | if ((a0_b_a == a0_b_a)) | |
87 | - | then { | |
88 | - | let a1_b_a = myBalance(p1.assetId) | |
89 | - | if ((a1_b_a == a1_b_a)) | |
90 | - | then [ScriptTransfer(i.caller, a1_b_a, p1.assetId), ScriptTransfer(i.caller, a0_b_a, p0.assetId)] | |
91 | - | else throw("Strict value is not equal to itself.") | |
92 | - | } | |
93 | - | else throw("Strict value is not equal to itself.") | |
90 | + | let wx_lp_asset = getAssetBytes(wx_lp_asset_id) | |
91 | + | let lpBalance = myBalance(wx_lp_asset) | |
92 | + | invoke(Address(fromBase58String(po)), getOp, [a_out, 1], [AttachedPayment(wx_lp_asset, lpBalance)]) | |
94 | 93 | } | |
95 | 94 | else throw("Strict value is not equal to itself.") | |
96 | 95 | } | |
97 | - | else throw("No-no-no") | |
96 | + | if ((entry1 == entry1)) | |
97 | + | then { | |
98 | + | let amount_after_asset_out = myBalance(getAssetBytes(a_out)) | |
99 | + | if ((amount_after_asset_out == amount_after_asset_out)) | |
100 | + | then { | |
101 | + | let resu = (amount_after_asset_out - amount_bef_asset_out) | |
102 | + | throw((toString(resu) + ", 0")) | |
103 | + | } | |
104 | + | else throw("Strict value is not equal to itself.") | |
105 | + | } | |
106 | + | else throw("Strict value is not equal to itself.") | |
107 | + | } | |
108 | + | else throw("Strict value is not equal to itself.") | |
109 | + | } | |
110 | + | ||
111 | + | ||
112 | + | ||
113 | + | @Callable(i) | |
114 | + | func fake_wx (a_in,amount,a_out,po,po_ty,wx_lp_asset_id,is_stable) = { | |
115 | + | let assetIn = getAssetBytes(a_in) | |
116 | + | let amountIn = amount | |
117 | + | let putOp = if (is_stable) | |
118 | + | then "putOneTknV2" | |
119 | + | else "putOneTkn" | |
120 | + | let getOp = if (is_stable) | |
121 | + | then "getOneTknV2" | |
122 | + | else "getOneTkn" | |
123 | + | let amount_bef_asset_out = myBalance(getAssetBytes(a_out)) | |
124 | + | if ((amount_bef_asset_out == amount_bef_asset_out)) | |
125 | + | then { | |
126 | + | let supply = value(assetInfo(fromBase58String(wx_lp_asset_id))).quantity | |
127 | + | if ((supply == supply)) | |
128 | + | then { | |
129 | + | let put = invoke(Address(fromBase58String(po)), putOp, [1, false], [AttachedPayment(assetIn, amountIn)]) | |
130 | + | if ((put == put)) | |
131 | + | then { | |
132 | + | let wx_lp_asset = getAssetBytes(wx_lp_asset_id) | |
133 | + | let lpBalance = myBalance(wx_lp_asset) | |
134 | + | if ((lpBalance == lpBalance)) | |
135 | + | then { | |
136 | + | let get = invoke(Address(fromBase58String(po)), getOp, [a_out, 1], [AttachedPayment(wx_lp_asset, lpBalance)]) | |
137 | + | if ((get == get)) | |
138 | + | then { | |
139 | + | let amount_after_asset_out = myBalance(getAssetBytes(a_out)) | |
140 | + | if ((amount_after_asset_out == amount_after_asset_out)) | |
141 | + | then { | |
142 | + | let resu = (amount_after_asset_out - amount_bef_asset_out) | |
143 | + | throw(((((toString(resu) + ",") + toString(lpBalance)) + ",") + toString(supply))) | |
144 | + | } | |
145 | + | else throw("Strict value is not equal to itself.") | |
146 | + | } | |
147 | + | else throw("Strict value is not equal to itself.") | |
148 | + | } | |
149 | + | else throw("Strict value is not equal to itself.") | |
150 | + | } | |
151 | + | else throw("Strict value is not equal to itself.") | |
152 | + | } | |
98 | 153 | else throw("Strict value is not equal to itself.") | |
99 | 154 | } | |
100 | 155 | else throw("Strict value is not equal to itself.") | |
101 | 156 | } | |
102 | 157 | ||
103 | 158 |
github/deemru/w8io/6500d08 38.17 ms ◑