tx · Ga8M349XXYJwVGRnNtEXPgEaWq8czAHxyAhe7RPiUJVi

3N9b7vExDf2qqZt2xG9FUsca7iwLVuih1Ta:  -0.01000000 Waves

2023.12.01 18:50 [2867783] smart account 3N9b7vExDf2qqZt2xG9FUsca7iwLVuih1Ta > SELF 0.00000000 Waves

{ "type": 13, "id": "Ga8M349XXYJwVGRnNtEXPgEaWq8czAHxyAhe7RPiUJVi", "fee": 1000000, "feeAssetId": null, "timestamp": 1701445877360, "version": 2, "chainId": 84, "sender": "3N9b7vExDf2qqZt2xG9FUsca7iwLVuih1Ta", "senderPublicKey": "4rSYGN3SSXzknh6jLyLqqGdGor584DXdjdP2BAbz7kgt", "proofs": [ "472TRHJjMhbCu9KnZjK2u8W6JQr1ZsUNWJRGoBrrveSNpVskUehwSymaxj1vQXrhB9tDEhv7ptSA9RvjjSrgk3UW" ], "script": "base64:AAIFAAAAAAAAABcIAhIGCgQIAQgBEgMKAQgSBgoECAgBAQAAAAsAAAAACWRldmVsb3BlcgkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQIAAAAjM01wNlRUaHZiYjh6OW5wcXo0QUszQnlxQWJ2czdkWVM4dVIBAAAACmtleVBhcnRuZXIAAAABAAAAB2FkZHJlc3MJAAEsAAAAAgIAAAAPJXMlc19fcGFydG5lcl9fBQAAAAdhZGRyZXNzAQAAABBrZXlXYW50ZWRBc3NldElkAAAAAQAAAAdhZGRyZXNzCQABLAAAAAICAAAAFSVzJXNfX3dhbnRlZEFzc2V0SWRfXwUAAAAHYWRkcmVzcwEAAAAPa2V5V2FudGVkQW1vdW50AAAAAQAAAAdhZGRyZXNzCQABLAAAAAICAAAAFCVzJXNfX3dhbnRlZEFtb3VudF9fBQAAAAdhZGRyZXNzAQAAAAprZXlBc3NldElkAAAAAQAAAAdvcmRlcklkCQABLAAAAAICAAAADyVzJXNfX2Fzc2V0SWRfXwUAAAAHb3JkZXJJZAEAAAAJa2V5QW1vdW50AAAAAQAAAAdvcmRlcklkCQABLAAAAAICAAAADiVzJXNfX2Ftb3VudF9fBQAAAAdvcmRlcklkAQAAAAprZXlPcmRlcklkAAAAAQAAAAdvcmRlcklkCQABLAAAAAICAAAADyVzJXNfX29yZGVySWRfXwUAAAAHb3JkZXJJZAEAAAANa2V5U2VydmljZUZlZQAAAAEAAAAHb3JkZXJJZAkAASwAAAACAgAAABIlcyVzX19zZXJ2aWNlRmVlX18FAAAAB29yZGVySWQBAAAABXRvU3RyAAAAAQAAAAdhc3NldElkAwkAAAAAAAACBQAAAAdhc3NldElkBQAAAAR1bml0AgAAAAVXQVZFUwkAAlgAAAABCQEAAAAFdmFsdWUAAAABBQAAAAdhc3NldElkAQAAAAdmcm9tU3RyAAAAAQAAAAphc3NldElkU3RyAwkAAAAAAAACBQAAAAphc3NldElkU3RyAgAAAAVXQVZFUwUAAAAEdW5pdAkAAlkAAAABBQAAAAphc3NldElkU3RyAQAAAApjaGVja0Fzc2V0AAAAAQAAAAdhc3NldElkBAAAAAVhc3NldAkBAAAAB2Zyb21TdHIAAAABBQAAAAdhc3NldElk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", "height": 2867783, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FsxsWNHLDenjoguS3T1wJwoGzsEwTodGV1C9idxeu8qf Next: 8WBzB2Bc7YQqu9F7FEuX4Hrgxzq68tq9WJ1PCdmdrRjL Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let developer = addressFromStringValue("3P9mTCpBtuAzMkHodb4XwgX4zKYAch2pgwa")
4+let developer = addressFromStringValue("3Mp6TThvbb8z9npqz4AK3ByqAbvs7dYS8uR")
55
66 func keyPartner (address) = ("%s%s__partner__" + address)
77
4949 then throw(("You already have an order with this id: " + orderId))
5050 else if ((0 >= amount))
5151 then throw("Non-positive order amount")
52- else [IntegerEntry(keyServiceFee(orderId), developerFee), IntegerEntry(keyAmount(orderId), amount), StringEntry(keyOrderId(orderId), orderId), StringEntry(keyAssetId(orderId), assetId)]
52+ else {
53+ let orderAmount = (amount - developerFee)
54+[IntegerEntry(keyServiceFee(orderId), developerFee), IntegerEntry(keyAmount(orderId), orderAmount), StringEntry(keyOrderId(orderId), orderId), StringEntry(keyAssetId(orderId), assetId)]
55+ }
5356
5457
5558
5760 func cancel (orderId) = if (!(isDefined(keyOrderId(orderId))))
5861 then throw(("You don't have an order with this id: " + orderId))
5962 else {
60- let assetId = toBytes(value(keyAssetId(orderId)))
6163 let restAmount = toBytes(value(keyAmount(orderId)))
62-[ScriptTransfer(i.caller, toInt(restAmount), assetId), DeleteEntry(keyServiceFee(orderId)), DeleteEntry(keyAmount(orderId)), DeleteEntry(keyOrderId(orderId)), DeleteEntry(keyAssetId(orderId))]
64+ let assetIdKey = keyAssetId(toString(i.caller))
65+ let assetIdRaw = getString(this, assetIdKey)
66+ let assetIdStr = value(assetIdRaw)
67+[ScriptTransfer(i.caller, toInt(restAmount), fromStr(assetIdStr)), ScriptTransfer(developer, toInt(toBytes(value(keyServiceFee(orderId)))), fromStr(assetIdStr)), DeleteEntry(keyServiceFee(orderId)), DeleteEntry(keyAmount(orderId)), DeleteEntry(keyOrderId(orderId)), DeleteEntry(keyAssetId(orderId))]
6368 }
6469
6570
7176 then throw("The transaction cannot be executed because the seller does not have enough funds")
7277 else {
7378 let restAmount = (toInt(toBytes(value(keyAmount(orderId)))) - amount)
74- let assetId = toBytes(value(keyAssetId(orderId)))
79+ let assetIdKey = keyAssetId(toString(i.caller))
80+ let assetIdRaw = getString(this, assetIdKey)
81+ let assetIdStr = value(assetIdRaw)
7582 if ((minAmount > restAmount))
76- then [ScriptTransfer(addressFromStringValue(address), amount, assetId), ScriptTransfer(i.caller, restAmount, assetId), DeleteEntry(keyServiceFee(orderId)), DeleteEntry(keyAmount(orderId)), DeleteEntry(keyOrderId(orderId)), DeleteEntry(keyAssetId(orderId))]
77- else [ScriptTransfer(addressFromStringValue(address), amount, assetId), DeleteEntry(keyAmount(orderId)), IntegerEntry(keyAmount(orderId), restAmount)]
83+ then [ScriptTransfer(addressFromStringValue(address), amount, fromStr(assetIdStr)), ScriptTransfer(i.caller, restAmount, fromStr(assetIdStr)), ScriptTransfer(developer, toInt(toBytes(value(keyServiceFee(orderId)))), fromStr(assetIdStr)), DeleteEntry(keyServiceFee(orderId)), DeleteEntry(keyAmount(orderId)), DeleteEntry(keyOrderId(orderId)), DeleteEntry(keyAssetId(orderId))]
84+ else [ScriptTransfer(addressFromStringValue(address), amount, fromStr(assetIdStr)), DeleteEntry(keyAmount(orderId)), IntegerEntry(keyAmount(orderId), restAmount)]
7885 }
7986
8087
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let developer = addressFromStringValue("3P9mTCpBtuAzMkHodb4XwgX4zKYAch2pgwa")
4+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
2121 func keyOrderId (orderId) = ("%s%s__orderId__" + orderId)
2222
2323
2424 func keyServiceFee (orderId) = ("%s%s__serviceFee__" + orderId)
2525
2626
2727 func toStr (assetId) = if ((assetId == unit))
2828 then "WAVES"
2929 else toBase58String(value(assetId))
3030
3131
3232 func fromStr (assetIdStr) = if ((assetIdStr == "WAVES"))
3333 then unit
3434 else fromBase58String(assetIdStr)
3535
3636
3737 func checkAsset (assetId) = {
3838 let asset = fromStr(assetId)
3939 if (if ((asset != unit))
4040 then (assetInfo(value(asset)) == unit)
4141 else false)
4242 then throw("Invalid assetId: assetInfo missing")
4343 else toStr(asset)
4444 }
4545
4646
4747 @Callable(i)
4848 func escrow (orderId,amount,assetId,developerFee) = if (isDefined(getString(this, keyOrderId(orderId))))
4949 then throw(("You already have an order with this id: " + orderId))
5050 else if ((0 >= amount))
5151 then throw("Non-positive order amount")
52- else [IntegerEntry(keyServiceFee(orderId), developerFee), IntegerEntry(keyAmount(orderId), amount), StringEntry(keyOrderId(orderId), orderId), StringEntry(keyAssetId(orderId), assetId)]
52+ else {
53+ let orderAmount = (amount - developerFee)
54+[IntegerEntry(keyServiceFee(orderId), developerFee), IntegerEntry(keyAmount(orderId), orderAmount), StringEntry(keyOrderId(orderId), orderId), StringEntry(keyAssetId(orderId), assetId)]
55+ }
5356
5457
5558
5659 @Callable(i)
5760 func cancel (orderId) = if (!(isDefined(keyOrderId(orderId))))
5861 then throw(("You don't have an order with this id: " + orderId))
5962 else {
60- let assetId = toBytes(value(keyAssetId(orderId)))
6163 let restAmount = toBytes(value(keyAmount(orderId)))
62-[ScriptTransfer(i.caller, toInt(restAmount), assetId), DeleteEntry(keyServiceFee(orderId)), DeleteEntry(keyAmount(orderId)), DeleteEntry(keyOrderId(orderId)), DeleteEntry(keyAssetId(orderId))]
64+ let assetIdKey = keyAssetId(toString(i.caller))
65+ let assetIdRaw = getString(this, assetIdKey)
66+ let assetIdStr = value(assetIdRaw)
67+[ScriptTransfer(i.caller, toInt(restAmount), fromStr(assetIdStr)), ScriptTransfer(developer, toInt(toBytes(value(keyServiceFee(orderId)))), fromStr(assetIdStr)), DeleteEntry(keyServiceFee(orderId)), DeleteEntry(keyAmount(orderId)), DeleteEntry(keyOrderId(orderId)), DeleteEntry(keyAssetId(orderId))]
6368 }
6469
6570
6671
6772 @Callable(i)
6873 func deal (orderId,address,amount,minAmount) = if (!(isDefined(keyOrderId(orderId))))
6974 then throw(("You don't have an order with this id: " + orderId))
7075 else if ((amount > toInt(toBytes(value(keyAmount(orderId))))))
7176 then throw("The transaction cannot be executed because the seller does not have enough funds")
7277 else {
7378 let restAmount = (toInt(toBytes(value(keyAmount(orderId)))) - amount)
74- let assetId = toBytes(value(keyAssetId(orderId)))
79+ let assetIdKey = keyAssetId(toString(i.caller))
80+ let assetIdRaw = getString(this, assetIdKey)
81+ let assetIdStr = value(assetIdRaw)
7582 if ((minAmount > restAmount))
76- then [ScriptTransfer(addressFromStringValue(address), amount, assetId), ScriptTransfer(i.caller, restAmount, assetId), DeleteEntry(keyServiceFee(orderId)), DeleteEntry(keyAmount(orderId)), DeleteEntry(keyOrderId(orderId)), DeleteEntry(keyAssetId(orderId))]
77- else [ScriptTransfer(addressFromStringValue(address), amount, assetId), DeleteEntry(keyAmount(orderId)), IntegerEntry(keyAmount(orderId), restAmount)]
83+ then [ScriptTransfer(addressFromStringValue(address), amount, fromStr(assetIdStr)), ScriptTransfer(i.caller, restAmount, fromStr(assetIdStr)), ScriptTransfer(developer, toInt(toBytes(value(keyServiceFee(orderId)))), fromStr(assetIdStr)), DeleteEntry(keyServiceFee(orderId)), DeleteEntry(keyAmount(orderId)), DeleteEntry(keyOrderId(orderId)), DeleteEntry(keyAssetId(orderId))]
84+ else [ScriptTransfer(addressFromStringValue(address), amount, fromStr(assetIdStr)), DeleteEntry(keyAmount(orderId)), IntegerEntry(keyAmount(orderId), restAmount)]
7885 }
7986
8087

github/deemru/w8io/873ac7e 
35.21 ms