tx · Cdtezr6paPDE9B5Hv9b2GW7PZDFzg8KUcHUz27EcB5GQ

3N2FodsKP7M3AQ3k3XHbMggtKaeiJEv36gk:  -0.01400000 Waves

2023.05.21 16:25 [2587792] smart account 3N2FodsKP7M3AQ3k3XHbMggtKaeiJEv36gk > SELF 0.00000000 Waves

{ "type": 13, "id": "Cdtezr6paPDE9B5Hv9b2GW7PZDFzg8KUcHUz27EcB5GQ", "fee": 1400000, "feeAssetId": null, "timestamp": 1684675558825, "version": 2, "chainId": 84, "sender": "3N2FodsKP7M3AQ3k3XHbMggtKaeiJEv36gk", "senderPublicKey": "78Bt5i3ukexi4JyJKXa9f3aGmpTT1t79wSaBXNy68zWU", "proofs": [ "4WYfxS6AQVwD8WKo8P4nmXETFoaUe8oJYperSGEVzWNMtWdEmBLSTXSdCdq7bNUgvo5yLMU2RCcqyGMuacgxsUnd" ], "script": "base64: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", "height": 2587792, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CiAFZCSNtH6PaztNs5MjZpAWiuYKWM7HQZrGqqLwWdeQ Next: EscHs6AWF6rvDo7aACrWNECJQCDUqTJMaevusfx2D6G3 Diff:
OldNewDifferences
9494 throw("Match error")
9595 }
9696 if (isValidPair(asset1, asset2))
97- then if (!(isDefined(getString((getValidPair(asset1, asset2) + toBase58String(i.caller.bytes))))))
97+ then if (!(isDefined(getInteger((getValidPair(asset1, asset2) + toBase58String(i.caller.bytes))))))
9898 then if ((checkAssetId(i.payments[0].assetId) == getStringValue((getValidPair(asset1, asset2) + "_asset2"))))
9999 then if ((price == getIntegerValue((getValidPair(asset1, asset2) + "_price"))))
100100 then if ((getIntegerValue((getValidPair(asset1, asset2) + "_total")) > ((i.payments[0].amount * D) / price)))
110110
111111 @Callable(i)
112112 func Withdraw (asset1,asset2) = if (isValidPair(asset1, asset2))
113- then if (isDefined(getString((getValidPair(asset1, asset2) + toBase58String(i.caller.bytes)))))
113+ then if (isDefined(getInteger((getValidPair(asset1, asset2) + toBase58String(i.caller.bytes)))))
114114 then if ((checkAssetId(i.payments[0].assetId) == getStringValue((getValidPair(asset1, asset2) + "_asset1"))))
115115 then if ((i.payments[0].amount == getIntegerValue(((getValidPair(asset1, asset2) + toBase58String(i.caller.bytes)) + "_received"))))
116116 then if ((i.payments[1].amount == ((i.payments[0].amount / getIntegerValue("fee")) * 100)))
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(getBoolean(((asset1 + "_") + asset2))))
2121 then ((asset1 + "_") + asset2)
2222 else if (isDefined(getBoolean(((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 =>
3030 if ((c == ""))
3131 then false
3232 else true
3333 case _ =>
3434 false
3535 }
3636 x
3737 }
3838
3939
4040 func checkAssetId (asset) = {
4141 let a = match asset {
4242 case v: ByteVector =>
4343 toBase58String(v)
4444 case _ =>
4545 "WAVES"
4646 }
4747 a
4848 }
4949
5050
5151 func toPay (asset) = if ((asset == "WAVES"))
5252 then unit
5353 else fromBase58String(asset)
5454
5555
5656 @Callable(i)
5757 func addAdmin (address) = if (isAdmin(i.caller.bytes))
5858 then [StringEntry("admin", address)]
5959 else throw(adminmsg)
6060
6161
6262
6363 @Callable(i)
6464 func setOracle (address) = if (isAdmin(i.caller.bytes))
6565 then [StringEntry("oracle", address)]
6666 else throw(adminmsg)
6767
6868
6969
7070 @Callable(i)
7171 func addPair (asset1,asset2) = if (isAdmin(i.caller.bytes))
7272 then if (isValidPair(asset1, asset2))
7373 then throw("This pair has been previously added")
7474 else [BooleanEntry(((asset1 + "_") + asset2), true)]
7575 else throw(adminmsg)
7676
7777
7878
7979 @Callable(i)
8080 func feeSwap (fee) = if (isAdmin(i.caller.bytes))
8181 then [IntegerEntry("fee", fee)]
8282 else throw(adminmsg)
8383
8484
8585
8686 @Callable(i)
8787 func Swap (asset1,asset2,price) = {
8888 let D = match i.payments[0].assetId {
8989 case o: Unit =>
9090 pow(10, 0, 8, 0, 0, HALFUP)
9191 case x: ByteVector =>
9292 pow(10, 0, 8, 0, 0, HALFUP)
9393 case _ =>
9494 throw("Match error")
9595 }
9696 if (isValidPair(asset1, asset2))
97- then if (!(isDefined(getString((getValidPair(asset1, asset2) + toBase58String(i.caller.bytes))))))
97+ then if (!(isDefined(getInteger((getValidPair(asset1, asset2) + toBase58String(i.caller.bytes))))))
9898 then if ((checkAssetId(i.payments[0].assetId) == getStringValue((getValidPair(asset1, asset2) + "_asset2"))))
9999 then if ((price == getIntegerValue((getValidPair(asset1, asset2) + "_price"))))
100100 then if ((getIntegerValue((getValidPair(asset1, asset2) + "_total")) > ((i.payments[0].amount * D) / price)))
101101 then [ScriptTransfer(Address(i.caller.bytes), ((i.payments[0].amount * D) / price), toPay(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)))]
102102 else throw("Amount above that available for Swap. Try decreasing the value.")
103103 else throw("Invalid price.")
104104 else throw("Invalid payment asset. Use the second asset of the pair")
105105 else throw("You already have a Guaranteed Swap made before, cancel the previous one or withdraw the current one to create a new Swap.")
106106 else throw("Invalid Pair.")
107107 }
108108
109109
110110
111111 @Callable(i)
112112 func Withdraw (asset1,asset2) = if (isValidPair(asset1, asset2))
113- then if (isDefined(getString((getValidPair(asset1, asset2) + toBase58String(i.caller.bytes)))))
113+ then if (isDefined(getInteger((getValidPair(asset1, asset2) + toBase58String(i.caller.bytes)))))
114114 then if ((checkAssetId(i.payments[0].assetId) == getStringValue((getValidPair(asset1, asset2) + "_asset1"))))
115115 then if ((i.payments[0].amount == getIntegerValue(((getValidPair(asset1, asset2) + toBase58String(i.caller.bytes)) + "_received"))))
116116 then if ((i.payments[1].amount == ((i.payments[0].amount / getIntegerValue("fee")) * 100)))
117117 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))), toPay(getStringValue((getValidPair(asset1, asset2) + "_asset2"))))]
118118 else throw("Invalid Amount Fee Payment.")
119119 else throw(("Invalid Amount. Try " + toString(getIntegerValue(((getValidPair(asset1, asset2) + toBase58String(i.caller.bytes)) + "_received")))))
120120 else throw("Invalid payment asset. Use the first asset of the pair")
121121 else throw("You do not have a Guaranteed swap for this pair. Create a new Swap.")
122122 else throw("Invalid Pair.")
123123
124124
125125
126126 @Callable(i)
127127 func depositOracle (assetValue,assetPrice,price) = {
128128 let oracleAddress = match getString("oracle") {
129129 case ix: String =>
130130 ix
131131 case _ =>
132132 throw("Oracle is not defined. Please contact the admin.")
133133 }
134134 let n = checkAssetId(i.payments[0].assetId)
135135 let a = match getInteger(((((assetValue + "_") + assetPrice) + "_") + n)) {
136136 case ix: Int =>
137137 ix
138138 case _ =>
139139 0
140140 }
141141 let nn = match getInteger((((assetValue + "_") + assetPrice) + "_total")) {
142142 case xx: Int =>
143143 (xx + i.payments[0].amount)
144144 case _ =>
145145 i.payments[0].amount
146146 }
147147 if ((toBase58String(i.caller.bytes) == oracleAddress))
148148 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)]
149149 else throw(adminmsg)
150150 }
151151
152152
153153 @Verifier(tx)
154154 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
155155

github/deemru/w8io/169f3d6 
44.80 ms