2023.01.10 14:13 [3464286] smart account 3PLPCb3wF2H2gtzohoAjeWcGaMKEiJvtE5X > SELF 0.00000000 Waves

{ "type": 13, "id": "Cc9AmEwcGRhzFa6eSGqUZFroidPCamcCynbssice2XH8", "fee": 1000000, "feeAssetId": null, "timestamp": 1673349246281, "version": 2, "chainId": 87, "sender": "3PLPCb3wF2H2gtzohoAjeWcGaMKEiJvtE5X", "senderPublicKey": "7or3jPDGBqg4WDqCuftD79WiF7FqgpMTqKdQ8HoMh7Wj", "proofs": [ "2K9MQyrFwh2JshxqkfEPfnqPLd2gR3sVTWF2byhUxL3YArRBHkKYViqaxESYMGTuSKbJ24dWWmcsDR44q8NvPmpD" ], "script": "base64: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", "height": 3464286, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 9HDp1HQmU81PmKp55WUHFkU3xCGjexYXreESqVt3Z8Tm Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 5 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let aggregatorAddress = Address(base58'3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU')
5+
6+let whitelist = [Address(base58'3PBTPFGaKL7qEdj9Tz1QUqbvJUcPNu934j4')]
7+
8+func tryGetInteger (key) = match getInteger(this, key) {
9+ case b: Int =>
10+ b
11+ case _ =>
12+ 0
13+}
14+
15+
16+func tryGetString (key) = match getString(this, key) {
17+ case b: String =>
18+ b
19+ case _ =>
20+ ""
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 getAssetBytes (assetIdStr) = if ((assetIdStr == "WAVES"))
33+ then unit
34+ else fromBase58String(assetIdStr)
35+
36+
37+func getBalance (assetId) = match assetId {
38+ case x: Unit =>
39+ wavesBalance(this).available
40+ case _ =>
41+ assetBalance(this, value(assetId))
42+}
43+
44+
45+@Callable(i)
46+func exchangeAndSendTo (asset1IdStr,recipient) = {
47+ let request = toBase58String(i.transactionId)
48+[StringEntry((request + "_sendTo"), recipient), StringEntry((request + "_status"), "open"), StringEntry(("awaits_" + request), ((((getAssetString(i.payments[0].assetId) + ",") + toString(i.payments[0].amount)) + ",") + asset1IdStr))]
49+ }
50+
51+
52+
53+@Callable(i)
54+func handleRequest (request,routeStr) = if ((indexOf(whitelist, i.caller) != unit))
55+ then throw("whitelist only")
56+ else if ((tryGetString((request + "_status")) != "open"))
57+ then throw("operation is not possible")
58+ else {
59+ let swapData = split(tryGetString(("awaits_" + request)), ",")
60+ let inv = invoke(aggregatorAddress, "swap", [routeStr, 0], [AttachedPayment(getAssetBytes(swapData[0]), parseIntValue(swapData[1]))])
61+ if ((inv == inv))
62+ then [DeleteEntry((request + "_status")), DeleteEntry((request + "_sendTo")), DeleteEntry(("awaits_" + request))]
63+ else throw("Strict value is not equal to itself.")
64+ }
65+
66+
67+@Verifier(tx)
68+func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
69+

github/deemru/w8io/786bc32 
17.81 ms