tx · HxLBuLMSbEa5djHbyzLLxFs8gKi9fx38jYVPhVPorkFf

3N2FodsKP7M3AQ3k3XHbMggtKaeiJEv36gk:  -0.01400000 Waves

2023.05.21 13:44 [2587639] smart account 3N2FodsKP7M3AQ3k3XHbMggtKaeiJEv36gk > SELF 0.00000000 Waves

{ "type": 13, "id": "HxLBuLMSbEa5djHbyzLLxFs8gKi9fx38jYVPhVPorkFf", "fee": 1400000, "feeAssetId": null, "timestamp": 1684665895820, "version": 2, "chainId": 84, "sender": "3N2FodsKP7M3AQ3k3XHbMggtKaeiJEv36gk", "senderPublicKey": "78Bt5i3ukexi4JyJKXa9f3aGmpTT1t79wSaBXNy68zWU", "proofs": [ "2zJWizcUHo8uSmXewsVp5x9UUxwJ2yT3Pkik6SatBY3d4z5hBTgcAoJvDb9JXGKNKhvdXzRbRiuj6A7PKs9nvUtH" ], "script": "base64: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", "height": 2587639, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 47bS6j3k28u2U9ZVdtw1vjcDnJHMXTpvVsMhkCzDNZdo Next: 8ukXYbYrwWMkeMbGeNL6q5MmYUF65Paja6NK61ZJtPNS Diff:
OldNewDifferences
1717 }
1818
1919
20-func getValidPair (asset1,asset2) = if (isDefined(getString(((asset1 + "_") + asset2))))
20+func getValidPair (asset1,asset2) = if (isDefined(getBoolean(((asset1 + "_") + asset2))))
2121 then ((asset1 + "_") + asset2)
22- else if (isDefined(getString(((asset2 + "_") + asset1))))
22+ else if (isDefined(getBoolean(((asset2 + "_") + asset1))))
2323 then ((asset2 + "_") + asset1)
2424 else ""
2525
2626
2727 func isValidPair (asset1,asset2) = {
28- let x = getValidPair(asset1, asset2)
29- if ((x == ""))
30- then false
31- else true
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
3237 }
3338
3439
6166 func addPair (asset1,asset2) = if (isAdmin(i.caller.bytes))
6267 then if (isValidPair(asset1, asset2))
6368 then throw("This pair has been previously added")
64- else throw(((toString(isValidPair(asset1, asset2)) + ", ") + ((getValidPair(asset1, asset2) + ", ") + getStringValue(((asset1 + "_") + asset2)))))
69+ else [BooleanEntry(((asset1 + "_") + asset2), true)]
6570 else throw(adminmsg)
6671
6772
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
20-func getValidPair (asset1,asset2) = if (isDefined(getString(((asset1 + "_") + asset2))))
20+func getValidPair (asset1,asset2) = if (isDefined(getBoolean(((asset1 + "_") + asset2))))
2121 then ((asset1 + "_") + asset2)
22- else if (isDefined(getString(((asset2 + "_") + asset1))))
22+ else if (isDefined(getBoolean(((asset2 + "_") + asset1))))
2323 then ((asset2 + "_") + asset1)
2424 else ""
2525
2626
2727 func isValidPair (asset1,asset2) = {
28- let x = getValidPair(asset1, asset2)
29- if ((x == ""))
30- then false
31- else true
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
3237 }
3338
3439
3540 func checkAssetId (asset) = {
3641 let a = match asset {
3742 case v: ByteVector =>
3843 toBase58String(v)
3944 case _ =>
4045 "WAVES"
4146 }
4247 a
4348 }
4449
4550
4651 @Callable(i)
4752 func addAdmin (address) = if (isAdmin(i.caller.bytes))
4853 then [StringEntry("admin", address)]
4954 else throw(adminmsg)
5055
5156
5257
5358 @Callable(i)
5459 func setOracle (address) = if (isAdmin(i.caller.bytes))
5560 then [StringEntry("oracle", address)]
5661 else throw(adminmsg)
5762
5863
5964
6065 @Callable(i)
6166 func addPair (asset1,asset2) = if (isAdmin(i.caller.bytes))
6267 then if (isValidPair(asset1, asset2))
6368 then throw("This pair has been previously added")
64- else throw(((toString(isValidPair(asset1, asset2)) + ", ") + ((getValidPair(asset1, asset2) + ", ") + getStringValue(((asset1 + "_") + asset2)))))
69+ else [BooleanEntry(((asset1 + "_") + asset2), true)]
6570 else throw(adminmsg)
6671
6772
6873
6974 @Callable(i)
7075 func feeSwap (fee) = if (isAdmin(i.caller.bytes))
7176 then [IntegerEntry("fee", fee)]
7277 else throw(adminmsg)
7378
7479
7580
7681 @Callable(i)
7782 func Swap (asset1,asset2,price) = {
7883 let D = match i.payments[0].assetId {
7984 case o: Unit =>
8085 pow(10, 0, 8, 0, 0, HALFUP)
8186 case x: ByteVector =>
8287 pow(10, 0, value(assetInfo(x)).decimals, 0, 0, HALFUP)
8388 case _ =>
8489 throw("Match error")
8590 }
8691 if (isValidPair(asset1, asset2))
8792 then if (!(isDefined(getString((getValidPair(asset1, asset2) + toBase58String(i.caller.bytes))))))
8893 then if ((checkAssetId(i.payments[0].assetId) == getStringValue((getValidPair(asset1, asset2) + "_asset2"))))
8994 then if ((price == getIntegerValue((getValidPair(asset1, asset2) + "_price"))))
9095 then if (((i.payments[0].amount / price) > getIntegerValue((getValidPair(asset1, asset2) + "_total"))))
9196 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)))]
9297 else throw("Amount above that available for Swap. Try decreasing the value.")
9398 else throw("Invalid price.")
9499 else throw("Invalid payment asset. Use the second asset of the pair")
95100 else throw("You already have a Guaranteed Swap made before, cancel the previous one or withdraw the current one to create a new Swap.")
96101 else throw("Invalid Pair.")
97102 }
98103
99104
100105
101106 @Callable(i)
102107 func Withdraw (asset1,asset2) = if (isValidPair(asset1, asset2))
103108 then if (isDefined(getString((getValidPair(asset1, asset2) + toBase58String(i.caller.bytes)))))
104109 then if ((checkAssetId(i.payments[0].assetId) == getStringValue((getValidPair(asset1, asset2) + "_asset1"))))
105110 then if ((i.payments[0].amount == getIntegerValue(((getValidPair(asset1, asset2) + toBase58String(i.caller.bytes)) + "_received"))))
106111 then if ((i.payments[1].amount == ((i.payments[0].amount / getIntegerValue("fee")) * 100)))
107112 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"))))]
108113 else throw("Invalid Amount Fee Payment.")
109114 else throw(("Invalid Amount. Try " + toString(getIntegerValue(((getValidPair(asset1, asset2) + toBase58String(i.caller.bytes)) + "_received")))))
110115 else throw("Invalid payment asset. Use the first asset of the pair")
111116 else throw("You do not have a Guaranteed swap for this pair. Create a new Swap.")
112117 else throw("Invalid Pair.")
113118
114119
115120
116121 @Callable(i)
117122 func depositOracle (assetValue,assetPrice,price) = {
118123 let oracleAddress = match getString("oracle") {
119124 case ix: String =>
120125 ix
121126 case _ =>
122127 throw("Oracle is not defined. Please contact the admin.")
123128 }
124129 let n = checkAssetId(i.payments[0].assetId)
125130 let a = match getInteger(((((assetValue + "_") + assetPrice) + "_") + n)) {
126131 case ix: Int =>
127132 ix
128133 case _ =>
129134 0
130135 }
131136 let nn = match getInteger((((assetValue + "_") + assetPrice) + "_total")) {
132137 case xx: Int =>
133138 (xx + i.payments[0].amount)
134139 case _ =>
135140 i.payments[0].amount
136141 }
137142 if ((toBase58String(i.caller.bytes) == oracleAddress))
138143 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)]
139144 else throw(adminmsg)
140145 }
141146
142147
143148 @Verifier(tx)
144149 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
145150

github/deemru/w8io/873ac7e 
53.68 ms