tx · 3y8JopqfPXXGyjWpykJ9f8yDTkoA66Qw1W7nrbboYmf5

3N9R7u449Z1b76QpJp9u3gzPjMYQYnp3V7r:  -0.04000000 Waves

2022.02.15 00:32 [1923840] smart account 3N9R7u449Z1b76QpJp9u3gzPjMYQYnp3V7r > SELF 0.00000000 Waves

{ "type": 13, "id": "3y8JopqfPXXGyjWpykJ9f8yDTkoA66Qw1W7nrbboYmf5", "fee": 4000000, "feeAssetId": null, "timestamp": 1644874343625, "version": 2, "chainId": 84, "sender": "3N9R7u449Z1b76QpJp9u3gzPjMYQYnp3V7r", "senderPublicKey": "GUHw1jkstNWTs9SX1KM3pMtq9HXjupvxiTd1urNhNoyY", "proofs": [ "4hhgdmBdchZgFLGz4EpHLzFB55YB2WU3q9MDkHZTbtvUzfgVGbFGNnRvigVRVqBjYEoxrRhBr1WW2kstK2tyYyAg" ], "script": "base64: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", "height": 1923840, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GZNh7stpDxDM5mwNxvciDHfiEQmmavNbw4MFksP4oAEg Next: FBFkzHV3S1QYVS3HuPtFvWJaJCGh4MSeQLbZ4DrjMzhP Diff:
OldNewDifferences
77
88 let holdingsAddress = addressFromPublicKey(holdingsPublicKey)
99
10-let transferCostPct = 40
10+let transferCostPct = 50
1111
1212 @Callable(i)
1313 func addOwnerAndAmount (ownerId,assetId,amount) = [StringEntry((("sale_" + assetId) + "_originalOwner"), ownerId), IntegerEntry((("sale_" + assetId) + "_amount"), amount)]
14+
15+
16+
17+@Callable(i)
18+func removeForSale (assetId) = {
19+ let callerId = toBase58String(i.caller.bytes)
20+ let ownerId = match getString(this, (("sale_" + assetId) + "_originalOwner")) {
21+ case _: Unit =>
22+ "unset"
23+ case x: String =>
24+ x
25+ case _ =>
26+ throw("Match error")
27+ }
28+ if ((callerId != ownerId))
29+ then throw("Owners do not match")
30+ else [ScriptTransfer(i.caller, 1, fromBase58String(assetId))]
31+ }
1432
1533
1634
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let holdingsAddressStr = "3N9R7u449Z1b76QpJp9u3gzPjMYQYnp3V7r"
55
66 let holdingsPublicKey = base58'GUHw1jkstNWTs9SX1KM3pMtq9HXjupvxiTd1urNhNoyY'
77
88 let holdingsAddress = addressFromPublicKey(holdingsPublicKey)
99
10-let transferCostPct = 40
10+let transferCostPct = 50
1111
1212 @Callable(i)
1313 func addOwnerAndAmount (ownerId,assetId,amount) = [StringEntry((("sale_" + assetId) + "_originalOwner"), ownerId), IntegerEntry((("sale_" + assetId) + "_amount"), amount)]
14+
15+
16+
17+@Callable(i)
18+func removeForSale (assetId) = {
19+ let callerId = toBase58String(i.caller.bytes)
20+ let ownerId = match getString(this, (("sale_" + assetId) + "_originalOwner")) {
21+ case _: Unit =>
22+ "unset"
23+ case x: String =>
24+ x
25+ case _ =>
26+ throw("Match error")
27+ }
28+ if ((callerId != ownerId))
29+ then throw("Owners do not match")
30+ else [ScriptTransfer(i.caller, 1, fromBase58String(assetId))]
31+ }
1432
1533
1634
1735 @Callable(i)
1836 func buyFromHoldings (assetId) = {
1937 let ownerId = match getString(this, (("sale_" + assetId) + "_originalOwner")) {
2038 case _: Unit =>
2139 "unset"
2240 case x: String =>
2341 x
2442 case _ =>
2543 throw("Match error")
2644 }
2745 let paymentAmount = valueOrElse(i.payments[0].amount, 0)
2846 let amount = match getInteger(this, (("sale_" + assetId) + "_amount")) {
2947 case _: Unit =>
3048 0
3149 case x: Int =>
3250 x
3351 case _ =>
3452 throw("Match error")
3553 }
3654 if (if ((ownerId == "unset"))
3755 then true
3856 else (ownerId == ""))
3957 then throw("Original owner not found ")
4058 else if (if ((amount == 0))
4159 then true
4260 else (amount > paymentAmount))
4361 then throw(((("Payment and amount do not match. This assets costs " + toString(amount)) + "but you sent ") + toString(paymentAmount)))
4462 else {
4563 let transfer = [ScriptTransfer(i.caller, 1, fromBase58String(assetId)), StringEntry((("sale_" + assetId) + "_originalOwner"), ""), IntegerEntry((("sale_" + assetId) + "_amount"), 0)]
4664 if ((ownerId != holdingsAddressStr))
4765 then {
4866 let amountToRemainInHoldings = (paymentAmount / transferCostPct)
4967 let amountToTransferToOwner = (paymentAmount - amountToRemainInHoldings)
5068 let ownerAddress = Address(fromBase58String(ownerId))
5169 (transfer ++ [ScriptTransfer(ownerAddress, amountToTransferToOwner, unit)])
5270 }
5371 else transfer
5472 }
5573 }
5674
5775
5876 @Verifier(tx)
5977 func verify () = true
6078

github/deemru/w8io/169f3d6 
198.44 ms