tx · D5oFpgL92XCiarwqQ9zm282ZRAwmsqCZXMFtAeLkjKzQ

3NAm3p62bo4q3yMzWjJ6M4eEDBRYXxqkXLQ:  -0.09000000 Waves

2022.08.28 16:10 [2204368] smart account 3NAm3p62bo4q3yMzWjJ6M4eEDBRYXxqkXLQ > SELF 0.00000000 Waves

{ "type": 13, "id": "D5oFpgL92XCiarwqQ9zm282ZRAwmsqCZXMFtAeLkjKzQ", "fee": 9000000, "feeAssetId": null, "timestamp": 1661692263965, "version": 2, "chainId": 84, "sender": "3NAm3p62bo4q3yMzWjJ6M4eEDBRYXxqkXLQ", "senderPublicKey": "6ftcjfxzkWUUwSQuuRg45YwriXgjJ5RMUoG9etzbvvs3", "proofs": [ "2jYJm8cPVToMDdgh4iQj4RUwjewkF12tgXfVYS6CLP3NsJbyjXjDxKJBMqUV3XyTbVZhMsD3bQScpbG9nSVfxKk9" ], "script": "base64:AAIFAAAAAAAAABIIAhIECgIIARIDCgEIEgMKAQgAAAADAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWIFAAAAByRtYXRjaDAFAAAAAWIAAAAAAAAAAAABAAAADmdldEFzc2V0U3RyaW5nAAAAAQAAAAdhc3NldElkBAAAAAckbWF0Y2gwBQAAAAdhc3NldElkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAApCeXRlVmVjdG9yBAAAAAFiBQAAAAckbWF0Y2gwCQACWAAAAAEFAAAAAWICAAAABVdBVkVTAQAAAA1nZXRBc3NldEJ5dGVzAAAAAQAAAAphc3NldElkU3RyAwkAAAAAAAACBQAAAAphc3NldElkU3RyAgAAAAVXQVZFUwUAAAAEdW5pdAkAAlkAAAABBQAAAAphc3NldElkU3RyAAAAAwAAAAFpAQAAAAtjcmVhdGVPcmRlcgAAAAIAAAAGYXNzZXQxAAAAB2Ftb3VudDEEAAAAD25ld09yZGVyc0Ftb3VudAkAAGQAAAACCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAECAAAAFWdsb2JhbF9mdXJuYWNlc0Ftb3VudAAAAAAAAAAAAQQAAAAHb3JkZXJJZAkAAaQAAAABBQAAAA9uZXdPcmRlcnNBbW91bnQDCQEAAAACIT0AAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABCQAAAgAAAAECAAAAHVlvdSBzaG91bGQgdG8gcHJvdmlkZSBwYXltZW50AwkAAGcAAAACAAAAAAAAAAAABQAAAAdhbW91bnQxCQAAAgAAAAECAAAAIkFtb3VudDEgY2Fubm90IGJlIGxlc3Mgb3IgZXF1YWxzIDAEAAAABmFzc2V0MAkBAAAADmdldEFzc2V0U3RyaW5nAAAAAQgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAHYXNzZXRJZAQAAAAHYW1vdW50MAgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAGYW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABVnbG9iYWxfZnVybmFjZXNBbW91bnQFAAAAD25ld09yZGVyc0Ftb3VudAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGb3JkZXJfBQAAAAdvcmRlcklkAgAAAAdfdG9rZW4wBQAAAAZhc3NldDAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAZvcmRlcl8FAAAAB29yZGVySWQCAAAACF9hbW91bnQwBQAAAAdhbW91bnQwCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGb3JkZXJfBQAAAAdvcmRlcklkAgAAAAhfYW1vdW50MQUAAAAHYW1vdW50MQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGb3JkZXJfBQAAAAdvcmRlcklkAgAAAAdfdG9rZW4xBQAAAAZhc3NldDEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAZvcmRlcl8FAAAAB29yZGVySWQCAAAAC19mdWxmaWxsZWQwAAAAAAAAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGb3JkZXJfBQAAAAdvcmRlcklkAgAAAAtfZnVsZmlsbGVkMQAAAAAAAAAAAAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGb3JkZXJfBQAAAAdvcmRlcklkAgAAAAZfb3duZXIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAZvcmRlcl8FAAAAB29yZGVySWQCAAAAB19zdGF0dXMCAAAABmFjdGl2ZQUAAAADbmlsAAAAAWkBAAAADGZ1bGZpbGxPcmRlcgAAAAEAAAAHb3JkZXJJZAQAAAAKb3JkZXJPd25lcgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEIgAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAZvcmRlcl8FAAAAB29yZGVySWQCAAAABl9vd25lcgIAAAAXQ2Fubm90IGZpbmQgb3JkZXIgb3duZXIEAAAAC29yZGVyU3RhdHVzCQAEIgAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAZvcmRlcl8FAAAAB29yZGVySWQCAAAAB19zdGF0dXMEAAAAC29yZGVyQXNzZXQwCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQiAAAAAQkAASwAAAACCQABLAAAAAICAAAABm9yZGVyXwUAAAAHb3JkZXJJZAIAAAAHX3Rva2VuMAIAAAASQ2Fubm90IGZpbmQgdG9rZW4wBAAAAAxvcmRlckFtb3VudDAJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB8AAAABCQABLAAAAAIJAAEsAAAAAgIAAAAGb3JkZXJfBQAAAAdvcmRlcklkAgAAAAhfYW1vdW50MAIAAAATQ2Fubm90IGZpbmQgYW1vdW50MAQAAAAPb3JkZXJGdWxmaWxsZWQwCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQfAAAAAQkAASwAAAACCQABLAAAAAICAAAABm9yZGVyXwUAAAAHb3JkZXJJZAIAAAALX2Z1bGZpbGxlZDACAAAAFkNhbm5vdCBmaW5kIGZ1bGZpbGxlZDAEAAAAEG9yZGVyQW1vdW50MExlZnQJAABlAAAAAgUAAAAMb3JkZXJBbW91bnQwBQAAAA9vcmRlckZ1bGZpbGxlZDAEAAAAC29yZGVyQXNzZXQxCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQiAAAAAQkAASwAAAACCQABLAAAAAICAAAABm9yZGVyXwUAAAAHb3JkZXJJZAIAAAAHX3Rva2VuMQIAAAASQ2Fubm90IGZpbmQgdG9rZW4xBAAAAAxvcmRlckFtb3VudDEJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB8AAAABCQABLAAAAAIJAAEsAAAAAgIAAAAGb3JkZXJfBQAAAAdvcmRlcklkAgAAAAhfYW1vdW50MQIAAAATQ2Fubm90IGZpbmQgYW1vdW50MQQAAAAPb3JkZXJGdWxmaWxsZWQxCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQfAAAAAQkAASwAAAACCQABLAAAAAICAAAABm9yZGVyXwUAAAAHb3JkZXJJZAIAAAALX2Z1bGZpbGxlZDECAAAAFkNhbm5vdCBmaW5kIGZ1bGZpbGxlZDEEAAAAEG9yZGVyQW1vdW50MUxlZnQJAABlAAAAAgUAAAAMb3JkZXJBbW91bnQxBQAAAA9vcmRlckZ1bGZpbGxlZDEDCQEAAAACIT0AAAACBQAAAAtvcmRlclN0YXR1cwIAAAAGYWN0aXZlCQAAAgAAAAECAAAAIE9yZGVyIGFscmVhZHkgY2xvc2VkIG9yIGNhbmNlbGVkAwkBAAAAAiE9AAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQkAAAIAAAABAgAAAB1Zb3Ugc2hvdWxkIHRvIHByb3ZpZGUgcGF5bWVudAQAAAANY2FsbGVyQWRkcmVzcwgFAAAAAWkAAAAGY2FsbGVyBAAAAAxvd25lckFkZHJlc3MJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAACm9yZGVyT3duZXIEAAAADXBheW1lbnRBc3NldDEJAQAAAA5nZXRBc3NldFN0cmluZwAAAAEICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAAB2Fzc2V0SWQEAAAADnBheW1lbnRBbW91bnQxCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAZhbW91bnQDCQEAAAACIT0AAAACBQAAAA1wYXltZW50QXNzZXQxBQAAAAtvcmRlckFzc2V0MQkAAAIAAAABAgAAABNXcm9uZyBwYXltZW50IGFzc2V0AwkAAGcAAAACBQAAAA5wYXltZW50QW1vdW50MQUAAAAQb3JkZXJBbW91bnQxTGVmdAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAA1jYWxsZXJBZGRyZXNzCQAAZQAAAAIFAAAADnBheW1lbnRBbW91bnQxBQAAABBvcmRlckFtb3VudDFMZWZ0CQEAAAANZ2V0QXNzZXRCeXRlcwAAAAEFAAAAC29yZGVyQXNzZXQxCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAADWNhbGxlckFkZHJlc3MFAAAAEG9yZGVyQW1vdW50MExlZnQJAQAAAA1nZXRBc3NldEJ5dGVzAAAAAQUAAAALb3JkZXJBc3NldDAJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAMb3duZXJBZGRyZXNzBQAAABBvcmRlckFtb3VudDFMZWZ0CQEAAAANZ2V0QXNzZXRCeXRlcwAAAAEFAAAADXBheW1lbnRBc3NldDEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAZvcmRlcl8FAAAAB29yZGVySWQCAAAAC19mdWxmaWxsZWQwCQAAZAAAAAIFAAAAD29yZGVyRnVsZmlsbGVkMAUAAAAQb3JkZXJBbW91bnQwTGVmdAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAABm9yZGVyXwUAAAAHb3JkZXJJZAIAAAALX2Z1bGZpbGxlZDEJAABkAAAAAgUAAAAPb3JkZXJGdWxmaWxsZWQxBQAAABBvcmRlckFtb3VudDFMZWZ0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAZvcmRlcl8FAAAAB29yZGVySWQCAAAAB19zdGF0dXMCAAAABmNsb3NlZAUAAAADbmlsBAAAAAdhbW91bnQwCQEAAAAIZnJhY3Rpb24AAAAEBQAAAAxvcmRlckFtb3VudDAFAAAADnBheW1lbnRBbW91bnQxBQAAAAxvcmRlckFtb3VudDEFAAAABUZMT09SCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAADG93bmVyQWRkcmVzcwUAAAAOcGF5bWVudEFtb3VudDEJAQAAAA1nZXRBc3NldEJ5dGVzAAAAAQUAAAANcGF5bWVudEFzc2V0MQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAA1jYWxsZXJBZGRyZXNzBQAAAAdhbW91bnQwCQEAAAANZ2V0QXNzZXRCeXRlcwAAAAEFAAAAC29yZGVyQXNzZXQwCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGb3JkZXJfBQAAAAdvcmRlcklkAgAAAAtfZnVsZmlsbGVkMAkAAGQAAAACBQAAAA9vcmRlckZ1bGZpbGxlZDAFAAAAB2Ftb3VudDAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAZvcmRlcl8FAAAAB29yZGVySWQCAAAAC19mdWxmaWxsZWQxCQAAZAAAAAIFAAAAD29yZGVyRnVsZmlsbGVkMQUAAAAOcGF5bWVudEFtb3VudDEFAAAAA25pbAAAAAFpAQAAAAtjYW5jZWxPcmRlcgAAAAEAAAAHb3JkZXJJZAQAAAAKb3JkZXJPd25lcgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEIgAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAZvcmRlcl8FAAAAB29yZGVySWQCAAAABl9vd25lcgIAAAAXQ2Fubm90IGZpbmQgb3JkZXIgb3duZXIEAAAAC29yZGVyU3RhdHVzCQAEIgAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAZvcmRlcl8FAAAAB29yZGVySWQCAAAAB19zdGF0dXMEAAAAC29yZGVyQXNzZXQwCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQiAAAAAQkAASwAAAACCQABLAAAAAICAAAABm9yZGVyXwUAAAAHb3JkZXJJZAIAAAAHX3Rva2VuMAIAAAASQ2Fubm90IGZpbmQgdG9rZW4wBAAAAAxvcmRlckFtb3VudDAJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB8AAAABCQABLAAAAAIJAAEsAAAAAgIAAAAGb3JkZXJfBQAAAAdvcmRlcklkAgAAAAhfYW1vdW50MAIAAAATQ2Fubm90IGZpbmQgYW1vdW50MAQAAAAPb3JkZXJGdWxmaWxsZWQwCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQfAAAAAQkAASwAAAACCQABLAAAAAICAAAABm9yZGVyXwUAAAAHb3JkZXJJZAIAAAALX2Z1bGZpbGxlZDACAAAAFkNhbm5vdCBmaW5kIGZ1bGZpbGxlZDAEAAAAEG9yZGVyQW1vdW50MExlZnQJAABlAAAAAgUAAAAMb3JkZXJBbW91bnQwBQAAAA9vcmRlckZ1bGZpbGxlZDADCQEAAAACIT0AAAACCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMFAAAACm9yZGVyT3duZXIJAAACAAAAAQIAAAAXWW91IGNhbm5vdCBjYW5jZWwgb3JkZXIDCQEAAAACIT0AAAACBQAAAAtvcmRlclN0YXR1cwIAAAAGYWN0aXZlCQAAAgAAAAECAAAAG29yZGVyIGlzIGNsb3NlZCBvciBjYW5jZWxlZAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAAApvcmRlck93bmVyBQAAABBvcmRlckFtb3VudDBMZWZ0CQEAAAANZ2V0QXNzZXRCeXRlcwAAAAEFAAAAC29yZGVyQXNzZXQwCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAZvcmRlcl8FAAAAB29yZGVySWQCAAAAB19zdGF0dXMCAAAACGNhbmNlbGVkBQAAAANuaWwAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAACQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tlefHt/kg=", "height": 2204368, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EZ2QjjJKUQReBJBXfu1LGkcFscfTE4YP2ztzePbN5r5X Next: 7WSrwdvU6UjVHNNbZPP5jUFAKBdr2FmBMwpkZ8GQuiom Diff:
OldNewDifferences
2828 let orderId = toString(newOrdersAmount)
2929 if ((size(i.payments) != 1))
3030 then throw("You should to provide payment")
31- else {
32- let asset0 = getAssetString(i.payments[0].assetId)
33- let amount0 = i.payments[0].amount
31+ else if ((0 >= amount1))
32+ then throw("Amount1 cannot be less or equals 0")
33+ else {
34+ let asset0 = getAssetString(i.payments[0].assetId)
35+ let amount0 = i.payments[0].amount
3436 [IntegerEntry("global_furnacesAmount", newOrdersAmount), StringEntry((("order_" + orderId) + "_token0"), asset0), IntegerEntry((("order_" + orderId) + "_amount0"), amount0), IntegerEntry((("order_" + orderId) + "_amount1"), amount1), StringEntry((("order_" + orderId) + "_token1"), asset1), IntegerEntry((("order_" + orderId) + "_fulfilled0"), 0), IntegerEntry((("order_" + orderId) + "_fulfilled1"), 0), StringEntry((("order_" + orderId) + "_owner"), toString(i.caller)), StringEntry((("order_" + orderId) + "_status"), "active")]
35- }
37+ }
3638 }
3739
3840
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func tryGetInteger (key) = match getInteger(this, key) {
55 case b: Int =>
66 b
77 case _ =>
88 0
99 }
1010
1111
1212 func getAssetString (assetId) = match assetId {
1313 case b: ByteVector =>
1414 toBase58String(b)
1515 case _ =>
1616 "WAVES"
1717 }
1818
1919
2020 func getAssetBytes (assetIdStr) = if ((assetIdStr == "WAVES"))
2121 then unit
2222 else fromBase58String(assetIdStr)
2323
2424
2525 @Callable(i)
2626 func createOrder (asset1,amount1) = {
2727 let newOrdersAmount = (tryGetInteger("global_furnacesAmount") + 1)
2828 let orderId = toString(newOrdersAmount)
2929 if ((size(i.payments) != 1))
3030 then throw("You should to provide payment")
31- else {
32- let asset0 = getAssetString(i.payments[0].assetId)
33- let amount0 = i.payments[0].amount
31+ else if ((0 >= amount1))
32+ then throw("Amount1 cannot be less or equals 0")
33+ else {
34+ let asset0 = getAssetString(i.payments[0].assetId)
35+ let amount0 = i.payments[0].amount
3436 [IntegerEntry("global_furnacesAmount", newOrdersAmount), StringEntry((("order_" + orderId) + "_token0"), asset0), IntegerEntry((("order_" + orderId) + "_amount0"), amount0), IntegerEntry((("order_" + orderId) + "_amount1"), amount1), StringEntry((("order_" + orderId) + "_token1"), asset1), IntegerEntry((("order_" + orderId) + "_fulfilled0"), 0), IntegerEntry((("order_" + orderId) + "_fulfilled1"), 0), StringEntry((("order_" + orderId) + "_owner"), toString(i.caller)), StringEntry((("order_" + orderId) + "_status"), "active")]
35- }
37+ }
3638 }
3739
3840
3941
4042 @Callable(i)
4143 func fulfillOrder (orderId) = {
4244 let orderOwner = valueOrErrorMessage(getString((("order_" + orderId) + "_owner")), "Cannot find order owner")
4345 let orderStatus = getString((("order_" + orderId) + "_status"))
4446 let orderAsset0 = valueOrErrorMessage(getString((("order_" + orderId) + "_token0")), "Cannot find token0")
4547 let orderAmount0 = valueOrErrorMessage(getInteger((("order_" + orderId) + "_amount0")), "Cannot find amount0")
4648 let orderFulfilled0 = valueOrErrorMessage(getInteger((("order_" + orderId) + "_fulfilled0")), "Cannot find fulfilled0")
4749 let orderAmount0Left = (orderAmount0 - orderFulfilled0)
4850 let orderAsset1 = valueOrErrorMessage(getString((("order_" + orderId) + "_token1")), "Cannot find token1")
4951 let orderAmount1 = valueOrErrorMessage(getInteger((("order_" + orderId) + "_amount1")), "Cannot find amount1")
5052 let orderFulfilled1 = valueOrErrorMessage(getInteger((("order_" + orderId) + "_fulfilled1")), "Cannot find fulfilled1")
5153 let orderAmount1Left = (orderAmount1 - orderFulfilled1)
5254 if ((orderStatus != "active"))
5355 then throw("Order already closed or canceled")
5456 else if ((size(i.payments) != 1))
5557 then throw("You should to provide payment")
5658 else {
5759 let callerAddress = i.caller
5860 let ownerAddress = addressFromStringValue(orderOwner)
5961 let paymentAsset1 = getAssetString(i.payments[0].assetId)
6062 let paymentAmount1 = i.payments[0].amount
6163 if ((paymentAsset1 != orderAsset1))
6264 then throw("Wrong payment asset")
6365 else if ((paymentAmount1 >= orderAmount1Left))
6466 then [ScriptTransfer(callerAddress, (paymentAmount1 - orderAmount1Left), getAssetBytes(orderAsset1)), ScriptTransfer(callerAddress, orderAmount0Left, getAssetBytes(orderAsset0)), ScriptTransfer(ownerAddress, orderAmount1Left, getAssetBytes(paymentAsset1)), IntegerEntry((("order_" + orderId) + "_fulfilled0"), (orderFulfilled0 + orderAmount0Left)), IntegerEntry((("order_" + orderId) + "_fulfilled1"), (orderFulfilled1 + orderAmount1Left)), StringEntry((("order_" + orderId) + "_status"), "closed")]
6567 else {
6668 let amount0 = fraction(orderAmount0, paymentAmount1, orderAmount1, FLOOR)
6769 [ScriptTransfer(ownerAddress, paymentAmount1, getAssetBytes(paymentAsset1)), ScriptTransfer(callerAddress, amount0, getAssetBytes(orderAsset0)), IntegerEntry((("order_" + orderId) + "_fulfilled0"), (orderFulfilled0 + amount0)), IntegerEntry((("order_" + orderId) + "_fulfilled1"), (orderFulfilled1 + paymentAmount1))]
6870 }
6971 }
7072 }
7173
7274
7375
7476 @Callable(i)
7577 func cancelOrder (orderId) = {
7678 let orderOwner = valueOrErrorMessage(getString((("order_" + orderId) + "_owner")), "Cannot find order owner")
7779 let orderStatus = getString((("order_" + orderId) + "_status"))
7880 let orderAsset0 = valueOrErrorMessage(getString((("order_" + orderId) + "_token0")), "Cannot find token0")
7981 let orderAmount0 = valueOrErrorMessage(getInteger((("order_" + orderId) + "_amount0")), "Cannot find amount0")
8082 let orderFulfilled0 = valueOrErrorMessage(getInteger((("order_" + orderId) + "_fulfilled0")), "Cannot find fulfilled0")
8183 let orderAmount0Left = (orderAmount0 - orderFulfilled0)
8284 if ((toBase58String(i.caller.bytes) != orderOwner))
8385 then throw("You cannot cancel order")
8486 else if ((orderStatus != "active"))
8587 then throw("order is closed or canceled")
8688 else [ScriptTransfer(addressFromStringValue(orderOwner), orderAmount0Left, getAssetBytes(orderAsset0)), StringEntry((("order_" + orderId) + "_status"), "canceled")]
8789 }
8890
8991
9092 @Verifier(tx)
9193 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
9294

github/deemru/w8io/873ac7e 
27.41 ms