tx · 9UP8skMPuZzoWvFkgbTQiaaqhsQ8BvK2dtmDGyS5RmP1

3N2FodsKP7M3AQ3k3XHbMggtKaeiJEv36gk:  -0.01400000 Waves

2023.05.21 13:24 [2587615] smart account 3N2FodsKP7M3AQ3k3XHbMggtKaeiJEv36gk > SELF 0.00000000 Waves

{ "type": 13, "id": "9UP8skMPuZzoWvFkgbTQiaaqhsQ8BvK2dtmDGyS5RmP1", "fee": 1400000, "feeAssetId": null, "timestamp": 1684664690926, "version": 2, "chainId": 84, "sender": "3N2FodsKP7M3AQ3k3XHbMggtKaeiJEv36gk", "senderPublicKey": "78Bt5i3ukexi4JyJKXa9f3aGmpTT1t79wSaBXNy68zWU", "proofs": [ "533jhAaWRUBNHkB48tyh5U7U3uFfjmFp3EpXPyUM1mpcj56Uof7fdLexJ6gSvEPWjiHetKEQX8p138GkNvnkpYtv" ], "script": "base64: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", "height": 2587615, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AxdnB73y4bmB5m4vaKLMBTNc3ccpbqwQ1jaez2kqcmdG Next: Ao5ZHkuRpW7BqDy8QL9aoYCwksjcqpg93wm81tjbsL4h Diff:
OldNewDifferences
2727 func isValidPair (asset1,asset2) = {
2828 let x = match getValidPair(asset1, asset2) {
2929 case c: String =>
30- true
30+ if ((c == ""))
31+ then false
32+ else true
3133 case _ =>
3234 false
3335 }
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) = {
2828 let x = match getValidPair(asset1, asset2) {
2929 case c: String =>
30- true
30+ if ((c == ""))
31+ then false
32+ else true
3133 case _ =>
3234 false
3335 }
3436 x
3537 }
3638
3739
3840 func checkAssetId (asset) = {
3941 let a = match asset {
4042 case v: ByteVector =>
4143 toBase58String(v)
4244 case _ =>
4345 "WAVES"
4446 }
4547 a
4648 }
4749
4850
4951 @Callable(i)
5052 func addAdmin (address) = if (isAdmin(i.caller.bytes))
5153 then [StringEntry("admin", address)]
5254 else throw(adminmsg)
5355
5456
5557
5658 @Callable(i)
5759 func setOracle (address) = if (isAdmin(i.caller.bytes))
5860 then [StringEntry("oracle", address)]
5961 else throw(adminmsg)
6062
6163
6264
6365 @Callable(i)
6466 func addPair (asset1,asset2) = if (isAdmin(i.caller.bytes))
6567 then if (isValidPair(asset1, asset2))
6668 then throw("This pair has been previously added")
6769 else [BooleanEntry(((asset1 + "_") + asset2), true)]
6870 else throw(adminmsg)
6971
7072
7173
7274 @Callable(i)
7375 func feeSwap (fee) = if (isAdmin(i.caller.bytes))
7476 then [IntegerEntry("fee", fee)]
7577 else throw(adminmsg)
7678
7779
7880
7981 @Callable(i)
8082 func Swap (asset1,asset2,price) = {
8183 let D = match i.payments[0].assetId {
8284 case o: Unit =>
8385 pow(10, 0, 8, 0, 0, HALFUP)
8486 case x: ByteVector =>
8587 pow(10, 0, value(assetInfo(x)).decimals, 0, 0, HALFUP)
8688 case _ =>
8789 throw("Match error")
8890 }
8991 if (isValidPair(asset1, asset2))
9092 then if (!(isDefined(getString((getValidPair(asset1, asset2) + toBase58String(i.caller.bytes))))))
9193 then if ((checkAssetId(i.payments[0].assetId) == getStringValue((getValidPair(asset1, asset2) + "_asset2"))))
9294 then if ((price == getIntegerValue((getValidPair(asset1, asset2) + "_price"))))
9395 then if (((i.payments[0].amount / price) > getIntegerValue((getValidPair(asset1, asset2) + "_total"))))
9496 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)))]
9597 else throw("Amount above that available for Swap. Try decreasing the value.")
9698 else throw("Invalid price.")
9799 else throw("Invalid payment asset. Use the second asset of the pair")
98100 else throw("You already have a Guaranteed Swap made before, cancel the previous one or withdraw the current one to create a new Swap.")
99101 else throw("Invalid Pair.")
100102 }
101103
102104
103105
104106 @Callable(i)
105107 func Withdraw (asset1,asset2) = if (isValidPair(asset1, asset2))
106108 then if (isDefined(getString((getValidPair(asset1, asset2) + toBase58String(i.caller.bytes)))))
107109 then if ((checkAssetId(i.payments[0].assetId) == getStringValue((getValidPair(asset1, asset2) + "_asset1"))))
108110 then if ((i.payments[0].amount == getIntegerValue(((getValidPair(asset1, asset2) + toBase58String(i.caller.bytes)) + "_received"))))
109111 then if ((i.payments[1].amount == ((i.payments[0].amount / getIntegerValue("fee")) * 100)))
110112 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"))))]
111113 else throw("Invalid Amount Fee Payment.")
112114 else throw(("Invalid Amount. Try " + toString(getIntegerValue(((getValidPair(asset1, asset2) + toBase58String(i.caller.bytes)) + "_received")))))
113115 else throw("Invalid payment asset. Use the first asset of the pair")
114116 else throw("You do not have a Guaranteed swap for this pair. Create a new Swap.")
115117 else throw("Invalid Pair.")
116118
117119
118120
119121 @Callable(i)
120122 func depositOracle (assetValue,assetPrice,price) = {
121123 let oracleAddress = match getString("oracle") {
122124 case ix: String =>
123125 ix
124126 case _ =>
125127 throw("Oracle is not defined. Please contact the admin.")
126128 }
127129 let n = checkAssetId(i.payments[0].assetId)
128130 let a = match getInteger(((((assetValue + "_") + assetPrice) + "_") + n)) {
129131 case ix: Int =>
130132 ix
131133 case _ =>
132134 0
133135 }
134136 let nn = match getInteger((((assetValue + "_") + assetPrice) + "_total")) {
135137 case xx: Int =>
136138 (xx + i.payments[0].amount)
137139 case _ =>
138140 i.payments[0].amount
139141 }
140142 if ((toBase58String(i.caller.bytes) == oracleAddress))
141143 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)]
142144 else throw(adminmsg)
143145 }
144146
145147
146148 @Verifier(tx)
147149 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
148150

github/deemru/w8io/873ac7e 
58.03 ms