tx · 4EaryqaqazNjg1FhLcCXN4E8NYjgcVYoJHtNQKopUe8H

3N2FodsKP7M3AQ3k3XHbMggtKaeiJEv36gk:  -0.01400000 Waves

2023.05.21 13:35 [2587629] smart account 3N2FodsKP7M3AQ3k3XHbMggtKaeiJEv36gk > SELF 0.00000000 Waves

{ "type": 13, "id": "4EaryqaqazNjg1FhLcCXN4E8NYjgcVYoJHtNQKopUe8H", "fee": 1400000, "feeAssetId": null, "timestamp": 1684665392616, "version": 2, "chainId": 84, "sender": "3N2FodsKP7M3AQ3k3XHbMggtKaeiJEv36gk", "senderPublicKey": "78Bt5i3ukexi4JyJKXa9f3aGmpTT1t79wSaBXNy68zWU", "proofs": [ "4sW6nUuWTJ6iDAoyB8BHTqihpW1D6W4wRaLdKUNjh3hgsHfRQq8mgEbqJ1Q5GPja5haCuZ4pFnQM5F5KXAzrmj2Q" ], "script": "base64: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", "height": 2587629, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8fAR7u1Aej3rQzvnT5xtTwMAdYhH4wbBSb72in356dSc Next: a1JKobFmv1jKcxNCXb3W6XURyA3F3w7AuyVvW5aTJGd Diff:
OldNewDifferences
2525
2626
2727 func isValidPair (asset1,asset2) = {
28- let x = match getValidPair(asset1, asset2) {
29- case c: String =>
30- if ((c == ""))
31- then false
32- else true
33- case _ =>
34- false
35- }
36- x
28+ let x = getValidPair(asset1, asset2)
29+ if ((x == ""))
30+ then false
31+ else true
3732 }
3833
3934
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let adminmsg = "Only admin can call this function"
55
66 func isAdmin (address) = {
77 let c = toBase58String(address)
88 if (isDefined(getString("admin")))
99 then if (if ((c == getStringValue("admin")))
1010 then true
1111 else (c == toBase58String(this.bytes)))
1212 then true
1313 else false
1414 else if ((c == toBase58String(this.bytes)))
1515 then true
1616 else false
1717 }
1818
1919
2020 func getValidPair (asset1,asset2) = if (isDefined(getString(((asset1 + "_") + asset2))))
2121 then ((asset1 + "_") + asset2)
2222 else if (isDefined(getString(((asset2 + "_") + asset1))))
2323 then ((asset2 + "_") + asset1)
2424 else ""
2525
2626
2727 func isValidPair (asset1,asset2) = {
28- let x = match getValidPair(asset1, asset2) {
29- case c: String =>
30- if ((c == ""))
31- then false
32- else true
33- case _ =>
34- false
35- }
36- x
28+ let x = getValidPair(asset1, asset2)
29+ if ((x == ""))
30+ then false
31+ else true
3732 }
3833
3934
4035 func checkAssetId (asset) = {
4136 let a = match asset {
4237 case v: ByteVector =>
4338 toBase58String(v)
4439 case _ =>
4540 "WAVES"
4641 }
4742 a
4843 }
4944
5045
5146 @Callable(i)
5247 func addAdmin (address) = if (isAdmin(i.caller.bytes))
5348 then [StringEntry("admin", address)]
5449 else throw(adminmsg)
5550
5651
5752
5853 @Callable(i)
5954 func setOracle (address) = if (isAdmin(i.caller.bytes))
6055 then [StringEntry("oracle", address)]
6156 else throw(adminmsg)
6257
6358
6459
6560 @Callable(i)
6661 func addPair (asset1,asset2) = if (isAdmin(i.caller.bytes))
6762 then if (isValidPair(asset1, asset2))
6863 then throw("This pair has been previously added")
6964 else [BooleanEntry(((asset1 + "_") + asset2), !(isValidPair(asset1, asset2)))]
7065 else throw(adminmsg)
7166
7267
7368
7469 @Callable(i)
7570 func feeSwap (fee) = if (isAdmin(i.caller.bytes))
7671 then [IntegerEntry("fee", fee)]
7772 else throw(adminmsg)
7873
7974
8075
8176 @Callable(i)
8277 func Swap (asset1,asset2,price) = {
8378 let D = match i.payments[0].assetId {
8479 case o: Unit =>
8580 pow(10, 0, 8, 0, 0, HALFUP)
8681 case x: ByteVector =>
8782 pow(10, 0, value(assetInfo(x)).decimals, 0, 0, HALFUP)
8883 case _ =>
8984 throw("Match error")
9085 }
9186 if (isValidPair(asset1, asset2))
9287 then if (!(isDefined(getString((getValidPair(asset1, asset2) + toBase58String(i.caller.bytes))))))
9388 then if ((checkAssetId(i.payments[0].assetId) == getStringValue((getValidPair(asset1, asset2) + "_asset2"))))
9489 then if ((price == getIntegerValue((getValidPair(asset1, asset2) + "_price"))))
9590 then if (((i.payments[0].amount / price) > getIntegerValue((getValidPair(asset1, asset2) + "_total"))))
9691 then [ScriptTransfer(Address(i.caller.bytes), ((i.payments[0].amount * D) / price), fromBase58String(getStringValue((getValidPair(asset1, asset2) + "_asset1")))), IntegerEntry((getValidPair(asset1, asset2) + toBase58String(i.caller.bytes)), i.payments[0].amount), IntegerEntry(((getValidPair(asset1, asset2) + toBase58String(i.caller.bytes)) + "_price"), price), IntegerEntry(((getValidPair(asset1, asset2) + toBase58String(i.caller.bytes)) + "_height"), height), IntegerEntry(((getValidPair(asset1, asset2) + toBase58String(i.caller.bytes)) + "_received"), ((i.payments[0].amount * D) / price)), StringEntry(((getValidPair(asset1, asset2) + toBase58String(i.caller.bytes)) + "_asset"), checkAssetId(i.payments[0].assetId)), IntegerEntry((getValidPair(asset1, asset2) + "_total"), (getIntegerValue((getValidPair(asset1, asset2) + "_total")) - ((i.payments[0].amount * D) / price)))]
9792 else throw("Amount above that available for Swap. Try decreasing the value.")
9893 else throw("Invalid price.")
9994 else throw("Invalid payment asset. Use the second asset of the pair")
10095 else throw("You already have a Guaranteed Swap made before, cancel the previous one or withdraw the current one to create a new Swap.")
10196 else throw("Invalid Pair.")
10297 }
10398
10499
105100
106101 @Callable(i)
107102 func Withdraw (asset1,asset2) = if (isValidPair(asset1, asset2))
108103 then if (isDefined(getString((getValidPair(asset1, asset2) + toBase58String(i.caller.bytes)))))
109104 then if ((checkAssetId(i.payments[0].assetId) == getStringValue((getValidPair(asset1, asset2) + "_asset1"))))
110105 then if ((i.payments[0].amount == getIntegerValue(((getValidPair(asset1, asset2) + toBase58String(i.caller.bytes)) + "_received"))))
111106 then if ((i.payments[1].amount == ((i.payments[0].amount / getIntegerValue("fee")) * 100)))
112107 then [DeleteEntry((getValidPair(asset1, asset2) + toBase58String(i.caller.bytes))), DeleteEntry(((getValidPair(asset1, asset2) + toBase58String(i.caller.bytes)) + "_price")), DeleteEntry(((getValidPair(asset1, asset2) + toBase58String(i.caller.bytes)) + "_height")), DeleteEntry(((getValidPair(asset1, asset2) + toBase58String(i.caller.bytes)) + "_received")), DeleteEntry(((getValidPair(asset1, asset2) + toBase58String(i.caller.bytes)) + "_asset")), ScriptTransfer(Address(i.caller.bytes), getIntegerValue((getValidPair(asset1, asset2) + toBase58String(i.caller.bytes))), fromBase58String(getStringValue((getValidPair(asset1, asset2) + "_asset2"))))]
113108 else throw("Invalid Amount Fee Payment.")
114109 else throw(("Invalid Amount. Try " + toString(getIntegerValue(((getValidPair(asset1, asset2) + toBase58String(i.caller.bytes)) + "_received")))))
115110 else throw("Invalid payment asset. Use the first asset of the pair")
116111 else throw("You do not have a Guaranteed swap for this pair. Create a new Swap.")
117112 else throw("Invalid Pair.")
118113
119114
120115
121116 @Callable(i)
122117 func depositOracle (assetValue,assetPrice,price) = {
123118 let oracleAddress = match getString("oracle") {
124119 case ix: String =>
125120 ix
126121 case _ =>
127122 throw("Oracle is not defined. Please contact the admin.")
128123 }
129124 let n = checkAssetId(i.payments[0].assetId)
130125 let a = match getInteger(((((assetValue + "_") + assetPrice) + "_") + n)) {
131126 case ix: Int =>
132127 ix
133128 case _ =>
134129 0
135130 }
136131 let nn = match getInteger((((assetValue + "_") + assetPrice) + "_total")) {
137132 case xx: Int =>
138133 (xx + i.payments[0].amount)
139134 case _ =>
140135 i.payments[0].amount
141136 }
142137 if ((toBase58String(i.caller.bytes) == oracleAddress))
143138 then [IntegerEntry(((((assetValue + "_") + assetPrice) + "_") + n), (a + i.payments[0].amount)), IntegerEntry((((assetValue + "_") + assetPrice) + "_price"), price), BooleanEntry(((assetValue + "_") + assetPrice), true), StringEntry((((assetValue + "_") + assetPrice) + "_asset1"), assetValue), StringEntry((((assetValue + "_") + assetPrice) + "_asset2"), assetPrice), IntegerEntry((((assetValue + "_") + assetPrice) + "_total"), nn)]
144139 else throw(adminmsg)
145140 }
146141
147142
148143 @Verifier(tx)
149144 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
150145

github/deemru/w8io/169f3d6 
97.55 ms