tx · J8up4RiDgz5Xik3tYrNmev5JGyhkPZ2FvRDgxsEVjrzV

3N9b7vExDf2qqZt2xG9FUsca7iwLVuih1Ta:  -0.01000000 Waves

2023.12.02 10:44 [2868738] smart account 3N9b7vExDf2qqZt2xG9FUsca7iwLVuih1Ta > SELF 0.00000000 Waves

{ "type": 13, "id": "J8up4RiDgz5Xik3tYrNmev5JGyhkPZ2FvRDgxsEVjrzV", "fee": 1000000, "feeAssetId": null, "timestamp": 1701503114436, "version": 2, "chainId": 84, "sender": "3N9b7vExDf2qqZt2xG9FUsca7iwLVuih1Ta", "senderPublicKey": "4rSYGN3SSXzknh6jLyLqqGdGor584DXdjdP2BAbz7kgt", "proofs": [ "55BQvR7GaCctyWjxfXn3JoysHoEuAWRj3FFw1YBBnd9Nt2NhEzcoM6M9Cb3xUkUDed7GpRcaaKj4zSqeQod3r3Nz" ], "script": "base64:AAIFAAAAAAAAABcIAhIGCgQIAQgBEgYKBAgIAQESAwoBCAAAAAwAAAAACWRldmVsb3BlcgkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQIAAAAjM01wNlRUaHZiYjh6OW5wcXo0QUszQnlxQWJ2czdkWVM4dVIBAAAACmtleVBhcnRuZXIAAAABAAAAB2FkZHJlc3MJAAEsAAAAAgIAAAAPJXMlc19fcGFydG5lcl9fBQAAAAdhZGRyZXNzAQAAABBrZXlXYW50ZWRBc3NldElkAAAAAQAAAAdhZGRyZXNzCQABLAAAAAICAAAAFSVzJXNfX3dhbnRlZEFzc2V0SWRfXwUAAAAHYWRkcmVzcwEAAAAPa2V5V2FudGVkQW1vdW50AAAAAQAAAAdhZGRyZXNzCQABLAAAAAICAAAAFCVzJXNfX3dhbnRlZEFtb3VudF9fBQAAAAdhZGRyZXNzAQAAAAprZXlBc3NldElkAAAAAQAAAAdvcmRlcklkCQABLAAAAAICAAAADyVzJXNfX2Fzc2V0SWRfXwUAAAAHb3JkZXJJZAEAAAAJa2V5QW1vdW50AAAAAQAAAAdvcmRlcklkCQABLAAAAAICAAAADiVzJXNfX2Ftb3VudF9fBQAAAAdvcmRlcklkAQAAAAprZXlPcmRlcklkAAAAAgAAAAdvcmRlcklkAAAABmNhbGxlcgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAPJXMlc19fb3JkZXJJZF9fBQAAAAdvcmRlcklkAgAAAAJfXwUAAAAGY2FsbGVyAQAAAA1rZXlTZXJ2aWNlRmVlAAAAAQAAAAdvcmRlcklkCQABLAAAAAICAAAAEiVzJXNfX3NlcnZpY2VGZWVfXwUAAAAHb3JkZXJJZAEAAAAJZ2V0QW1vdW50AAAAAQAAAAZhbW91bnQFAAAABmFtb3VudAEAAAAFdG9TdHIAAAABAAAAB2Fzc2V0SWQDCQAAAAAAAAIFAAAAB2Fzc2V0SWQFAAAABHVuaXQCAAAABVdBVkVTCQACWAAAAAEJAQAAAAV2YWx1ZQAAAAEFAAAAB2Fzc2V0SWQBAAAAB2Zyb21TdHIAAAABAAAACmFzc2V0SWRTdHIDCQAAAAAAAAIFAAAACmFzc2V0SWRTdHICAAAABVdBVkVTBQAAAAR1bml0CQACWQAAAAEFAAAACmFzc2V0SWRTdHIBAAAACmNoZWNrQXNzZXQAAAABAAAAB2Fzc2V0SWQEAAAABWFzc2V0CQEAAAAHZnJvbVN0cgAAAAEFAAAAB2Fzc2V0SWQDAwkBAAAAAiE9AAAAAgUAAAAFYXNzZXQFAAAABHVuaXQJAAAAAAAAAgkAA+wAAAABCQEAAAAFdmFsdWUAAAABBQAAAAVhc3NldAUAAAAEdW5pdAcJAAACAAAAAQIAAAAiSW52YWxpZCBhc3NldElkOiBhc3NldEluZm8gbWlzc2luZwkBAAAABXRvU3RyAAAAAQUAAAAFYXNzZXQAAAADAAAAAWkBAAAABmVzY3JvdwAAAAQAAAAHb3JkZXJJZAAAAAZhbW91bnQAAAAHYXNzZXRJZAAAAAxkZXZlbG9wZXJGZWUDCQEAAAAJaXNEZWZpbmVkAAAAAQkABB0AAAACBQAAAAR0aGlzCQEAAAAKa2V5T3JkZXJJZAAAAAIFAAAAB29yZGVySWQJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQAAAgAAAAEJAAEsAAAAAgIAAAAoWW91IGFscmVhZHkgaGF2ZSBhbiBvcmRlciB3aXRoIHRoaXMgaWQ6IAUAAAAHb3JkZXJJZAMJAABnAAAAAgAAAAAAAAAAAAUAAAAGYW1vdW50CQAAAgAAAAECAAAAGU5vbi1wb3NpdGl2ZSBvcmRlciBhbW91bnQEAAAAC29yZGVyQW1vdW50CQAAZQAAAAIFAAAABmFtb3VudAUAAAAMZGV2ZWxvcGVyRmVlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAANa2V5U2VydmljZUZlZQAAAAEFAAAAB29yZGVySWQFAAAADGRldmVsb3BlckZlZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAACWtleUFtb3VudAAAAAEFAAAAB29yZGVySWQFAAAAC29yZGVyQW1vdW50CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAprZXlPcmRlcklkAAAAAgUAAAAHb3JkZXJJZAkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAB29yZGVySWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAACmtleUFzc2V0SWQAAAABBQAAAAdvcmRlcklkBQAAAAdhc3NldElkBQAAAANuaWwAAAABaQEAAAAEZGVhbAAAAAQAAAAHb3JkZXJJZAAAAAdhZGRyZXNzAAAABmFtb3VudAAAAAltaW5BbW91bnQDCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABCQEAAAAKa2V5T3JkZXJJZAAAAAIFAAAAB29yZGVySWQJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQAAAgAAAAEJAAEsAAAAAgIAAAAmWW91IGRvbid0IGhhdmUgYW4gb3JkZXIgd2l0aCB0aGlzIGlkOiAFAAAAB29yZGVySWQDCQAAZgAAAAIFAAAABmFtb3VudAkBAAAAEUBleHRyTmF0aXZlKDEwNTUpAAAAAQkBAAAACWtleUFtb3VudAAAAAEFAAAAB29yZGVySWQJAAACAAAAAQIAAABQVGhlIHRyYW5zYWN0aW9uIGNhbm5vdCBiZSBleGVjdXRlZCBiZWNhdXNlIHRoZSBzZWxsZXIgZG9lcyBub3QgaGF2ZSBlbm91Z2ggZnVuZHMEAAAACnJlc3RBbW91bnQJAABlAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTUpAAAAAQkBAAAACWtleUFtb3VudAAAAAEFAAAAB29yZGVySWQFAAAABmFtb3VudAQAAAAKYXNzZXRJZEtleQkBAAAACmtleUFzc2V0SWQAAAABBQAAAAdvcmRlcklkBAAAAAphc3NldElkUmF3CQAEHQAAAAIFAAAABHRoaXMFAAAACmFzc2V0SWRLZXkEAAAACmFzc2V0SWRTdHIJAQAAAAV2YWx1ZQAAAAEFAAAACmFzc2V0SWRSYXcDCQAAZgAAAAIFAAAACW1pbkFtb3VudAUAAAAKcmVzdEFtb3VudAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAAAdhZGRyZXNzBQAAAAZhbW91bnQJAQAAAAdmcm9tU3RyAAAAAQUAAAAKYXNzZXRJZFN0cgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAACnJlc3RBbW91bnQJAQAAAAdmcm9tU3RyAAAAAQUAAAAKYXNzZXRJZFN0cgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAlkZXZlbG9wZXIJAQAAABFAZXh0ck5hdGl2ZSgxMDU1KQAAAAEJAQAAAA1rZXlTZXJ2aWNlRmVlAAAAAQUAAAAHb3JkZXJJZAkBAAAAB2Zyb21TdHIAAAABBQAAAAphc3NldElkU3RyCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAA1rZXlTZXJ2aWNlRmVlAAAAAQUAAAAHb3JkZXJJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAJa2V5QW1vdW50AAAAAQUAAAAHb3JkZXJJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAKa2V5T3JkZXJJZAAAAAIFAAAAB29yZGVySWQJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAprZXlBc3NldElkAAAAAQUAAAAHb3JkZXJJZAUAAAADbmlsCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAAB2FkZHJlc3MFAAAABmFtb3VudAkBAAAAB2Zyb21TdHIAAAABBQAAAAphc3NldElkU3RyCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAlrZXlBbW91bnQAAAABBQAAAAdvcmRlcklkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAJa2V5QW1vdW50AAAAAQUAAAAHb3JkZXJJZAUAAAAKcmVzdEFtb3VudAUAAAADbmlsAAAAAWkBAAAABmNhbmNlbAAAAAEAAAAHb3JkZXJJZAMJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEJAQAAAAprZXlPcmRlcklkAAAAAgUAAAAHb3JkZXJJZAkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIJAAACAAAAAQkAASwAAAACAgAAACZZb3UgZG9uJ3QgaGF2ZSBhbiBvcmRlciB3aXRoIHRoaXMgaWQ6IAUAAAAHb3JkZXJJZAQAAAAKcmVzdEFtb3VudAkBAAAAEUBleHRyTmF0aXZlKDEwNTUpAAAAAQkBAAAACWtleUFtb3VudAAAAAEFAAAAB29yZGVySWQEAAAACmFzc2V0SWRLZXkJAQAAAAprZXlBc3NldElkAAAAAQUAAAAHb3JkZXJJZAQAAAAKYXNzZXRJZFJhdwkABB0AAAACBQAAAAR0aGlzBQAAAAphc3NldElkS2V5BAAAAAphc3NldElkU3RyCQEAAAAFdmFsdWUAAAABBQAAAAphc3NldElkUmF3CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAKcmVzdEFtb3VudAkBAAAAB2Zyb21TdHIAAAABBQAAAAphc3NldElkU3RyCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAACWRldmVsb3BlcgkBAAAAEUBleHRyTmF0aXZlKDEwNTUpAAAAAQkBAAAADWtleVNlcnZpY2VGZWUAAAABBQAAAAdvcmRlcklkCQEAAAAHZnJvbVN0cgAAAAEFAAAACmFzc2V0SWRTdHIJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAADWtleVNlcnZpY2VGZWUAAAABBQAAAAdvcmRlcklkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAlrZXlBbW91bnQAAAABBQAAAAdvcmRlcklkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAprZXlPcmRlcklkAAAAAgUAAAAHb3JkZXJJZAkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAACmtleUFzc2V0SWQAAAABBQAAAAdvcmRlcklkBQAAAANuaWwAAAAAsCi9kA==", "height": 2868738, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6ZZGDGFNQLjXvU6jGVaZjyYx1cWQNoYvkLuftQqZ1awE Next: B3kNCXBdMjnmy3769mVHjJgKoaGSeijuyKnm3bHCZtqu Diff:
OldNewDifferences
1818 func keyAmount (orderId) = ("%s%s__amount__" + orderId)
1919
2020
21-func keyOrderId (orderId) = ("%s%s__orderId__" + orderId)
21+func keyOrderId (orderId,caller) = ((("%s%s__orderId__" + orderId) + "__") + caller)
2222
2323
2424 func keyServiceFee (orderId) = ("%s%s__serviceFee__" + orderId)
4848
4949
5050 @Callable(i)
51-func escrow (orderId,amount,assetId,developerFee) = if (isDefined(getString(this, keyOrderId(orderId))))
51+func escrow (orderId,amount,assetId,developerFee) = if (isDefined(getString(this, keyOrderId(orderId, toString(i.caller)))))
5252 then throw(("You already have an order with this id: " + orderId))
5353 else if ((0 >= amount))
5454 then throw("Non-positive order amount")
5555 else {
5656 let orderAmount = (amount - developerFee)
57-[IntegerEntry(keyServiceFee(orderId), developerFee), IntegerEntry(keyAmount(orderId), orderAmount), StringEntry(keyOrderId(orderId), orderId), StringEntry(keyAssetId(orderId), assetId)]
57+[IntegerEntry(keyServiceFee(orderId), developerFee), IntegerEntry(keyAmount(orderId), orderAmount), StringEntry(keyOrderId(orderId, toString(i.caller)), orderId), StringEntry(keyAssetId(orderId), assetId)]
5858 }
5959
6060
6161
6262 @Callable(i)
63-func deal (orderId,address,amount,minAmount) = if (!(isDefined(keyOrderId(orderId))))
63+func deal (orderId,address,amount,minAmount) = if (!(isDefined(keyOrderId(orderId, toString(i.caller)))))
6464 then throw(("You don't have an order with this id: " + orderId))
6565 else if ((amount > getIntegerValue(keyAmount(orderId))))
6666 then throw("The transaction cannot be executed because the seller does not have enough funds")
7070 let assetIdRaw = getString(this, assetIdKey)
7171 let assetIdStr = value(assetIdRaw)
7272 if ((minAmount > restAmount))
73- then [ScriptTransfer(addressFromStringValue(address), amount, fromStr(assetIdStr)), ScriptTransfer(i.caller, restAmount, fromStr(assetIdStr)), ScriptTransfer(developer, getIntegerValue(keyServiceFee(orderId)), fromStr(assetIdStr)), DeleteEntry(keyServiceFee(orderId)), DeleteEntry(keyAmount(orderId)), DeleteEntry(keyOrderId(orderId)), DeleteEntry(keyAssetId(orderId))]
73+ then [ScriptTransfer(addressFromStringValue(address), amount, fromStr(assetIdStr)), ScriptTransfer(i.caller, restAmount, fromStr(assetIdStr)), ScriptTransfer(developer, getIntegerValue(keyServiceFee(orderId)), fromStr(assetIdStr)), DeleteEntry(keyServiceFee(orderId)), DeleteEntry(keyAmount(orderId)), DeleteEntry(keyOrderId(orderId, toString(i.caller))), DeleteEntry(keyAssetId(orderId))]
7474 else [ScriptTransfer(addressFromStringValue(address), amount, fromStr(assetIdStr)), DeleteEntry(keyAmount(orderId)), IntegerEntry(keyAmount(orderId), restAmount)]
7575 }
7676
7777
7878
7979 @Callable(i)
80-func cancel (orderId) = if (!(isDefined(keyOrderId(orderId))))
80+func cancel (orderId) = if (!(isDefined(keyOrderId(orderId, toString(i.caller)))))
8181 then throw(("You don't have an order with this id: " + orderId))
8282 else {
8383 let restAmount = getIntegerValue(keyAmount(orderId))
8484 let assetIdKey = keyAssetId(orderId)
8585 let assetIdRaw = getString(this, assetIdKey)
8686 let assetIdStr = value(assetIdRaw)
87-[ScriptTransfer(i.caller, restAmount, fromStr(assetIdStr)), ScriptTransfer(developer, getIntegerValue(keyServiceFee(orderId)), fromStr(assetIdStr)), DeleteEntry(keyServiceFee(orderId)), DeleteEntry(keyAmount(orderId)), DeleteEntry(keyOrderId(orderId)), DeleteEntry(keyAssetId(orderId))]
87+[ScriptTransfer(i.caller, restAmount, fromStr(assetIdStr)), ScriptTransfer(developer, getIntegerValue(keyServiceFee(orderId)), fromStr(assetIdStr)), DeleteEntry(keyServiceFee(orderId)), DeleteEntry(keyAmount(orderId)), DeleteEntry(keyOrderId(orderId, toString(i.caller))), DeleteEntry(keyAssetId(orderId))]
8888 }
8989
9090
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let developer = addressFromStringValue("3Mp6TThvbb8z9npqz4AK3ByqAbvs7dYS8uR")
55
66 func keyPartner (address) = ("%s%s__partner__" + address)
77
88
99 func keyWantedAssetId (address) = ("%s%s__wantedAssetId__" + address)
1010
1111
1212 func keyWantedAmount (address) = ("%s%s__wantedAmount__" + address)
1313
1414
1515 func keyAssetId (orderId) = ("%s%s__assetId__" + orderId)
1616
1717
1818 func keyAmount (orderId) = ("%s%s__amount__" + orderId)
1919
2020
21-func keyOrderId (orderId) = ("%s%s__orderId__" + orderId)
21+func keyOrderId (orderId,caller) = ((("%s%s__orderId__" + orderId) + "__") + caller)
2222
2323
2424 func keyServiceFee (orderId) = ("%s%s__serviceFee__" + orderId)
2525
2626
2727 func getAmount (amount) = amount
2828
2929
3030 func toStr (assetId) = if ((assetId == unit))
3131 then "WAVES"
3232 else toBase58String(value(assetId))
3333
3434
3535 func fromStr (assetIdStr) = if ((assetIdStr == "WAVES"))
3636 then unit
3737 else fromBase58String(assetIdStr)
3838
3939
4040 func checkAsset (assetId) = {
4141 let asset = fromStr(assetId)
4242 if (if ((asset != unit))
4343 then (assetInfo(value(asset)) == unit)
4444 else false)
4545 then throw("Invalid assetId: assetInfo missing")
4646 else toStr(asset)
4747 }
4848
4949
5050 @Callable(i)
51-func escrow (orderId,amount,assetId,developerFee) = if (isDefined(getString(this, keyOrderId(orderId))))
51+func escrow (orderId,amount,assetId,developerFee) = if (isDefined(getString(this, keyOrderId(orderId, toString(i.caller)))))
5252 then throw(("You already have an order with this id: " + orderId))
5353 else if ((0 >= amount))
5454 then throw("Non-positive order amount")
5555 else {
5656 let orderAmount = (amount - developerFee)
57-[IntegerEntry(keyServiceFee(orderId), developerFee), IntegerEntry(keyAmount(orderId), orderAmount), StringEntry(keyOrderId(orderId), orderId), StringEntry(keyAssetId(orderId), assetId)]
57+[IntegerEntry(keyServiceFee(orderId), developerFee), IntegerEntry(keyAmount(orderId), orderAmount), StringEntry(keyOrderId(orderId, toString(i.caller)), orderId), StringEntry(keyAssetId(orderId), assetId)]
5858 }
5959
6060
6161
6262 @Callable(i)
63-func deal (orderId,address,amount,minAmount) = if (!(isDefined(keyOrderId(orderId))))
63+func deal (orderId,address,amount,minAmount) = if (!(isDefined(keyOrderId(orderId, toString(i.caller)))))
6464 then throw(("You don't have an order with this id: " + orderId))
6565 else if ((amount > getIntegerValue(keyAmount(orderId))))
6666 then throw("The transaction cannot be executed because the seller does not have enough funds")
6767 else {
6868 let restAmount = (getIntegerValue(keyAmount(orderId)) - amount)
6969 let assetIdKey = keyAssetId(orderId)
7070 let assetIdRaw = getString(this, assetIdKey)
7171 let assetIdStr = value(assetIdRaw)
7272 if ((minAmount > restAmount))
73- then [ScriptTransfer(addressFromStringValue(address), amount, fromStr(assetIdStr)), ScriptTransfer(i.caller, restAmount, fromStr(assetIdStr)), ScriptTransfer(developer, getIntegerValue(keyServiceFee(orderId)), fromStr(assetIdStr)), DeleteEntry(keyServiceFee(orderId)), DeleteEntry(keyAmount(orderId)), DeleteEntry(keyOrderId(orderId)), DeleteEntry(keyAssetId(orderId))]
73+ then [ScriptTransfer(addressFromStringValue(address), amount, fromStr(assetIdStr)), ScriptTransfer(i.caller, restAmount, fromStr(assetIdStr)), ScriptTransfer(developer, getIntegerValue(keyServiceFee(orderId)), fromStr(assetIdStr)), DeleteEntry(keyServiceFee(orderId)), DeleteEntry(keyAmount(orderId)), DeleteEntry(keyOrderId(orderId, toString(i.caller))), DeleteEntry(keyAssetId(orderId))]
7474 else [ScriptTransfer(addressFromStringValue(address), amount, fromStr(assetIdStr)), DeleteEntry(keyAmount(orderId)), IntegerEntry(keyAmount(orderId), restAmount)]
7575 }
7676
7777
7878
7979 @Callable(i)
80-func cancel (orderId) = if (!(isDefined(keyOrderId(orderId))))
80+func cancel (orderId) = if (!(isDefined(keyOrderId(orderId, toString(i.caller)))))
8181 then throw(("You don't have an order with this id: " + orderId))
8282 else {
8383 let restAmount = getIntegerValue(keyAmount(orderId))
8484 let assetIdKey = keyAssetId(orderId)
8585 let assetIdRaw = getString(this, assetIdKey)
8686 let assetIdStr = value(assetIdRaw)
87-[ScriptTransfer(i.caller, restAmount, fromStr(assetIdStr)), ScriptTransfer(developer, getIntegerValue(keyServiceFee(orderId)), fromStr(assetIdStr)), DeleteEntry(keyServiceFee(orderId)), DeleteEntry(keyAmount(orderId)), DeleteEntry(keyOrderId(orderId)), DeleteEntry(keyAssetId(orderId))]
87+[ScriptTransfer(i.caller, restAmount, fromStr(assetIdStr)), ScriptTransfer(developer, getIntegerValue(keyServiceFee(orderId)), fromStr(assetIdStr)), DeleteEntry(keyServiceFee(orderId)), DeleteEntry(keyAmount(orderId)), DeleteEntry(keyOrderId(orderId, toString(i.caller))), DeleteEntry(keyAssetId(orderId))]
8888 }
8989
9090

github/deemru/w8io/026f985 
34.02 ms