tx · 4QzDetcMM3TWoDSczY5Foq3ZdoJNuK1yYf6jWVNFyw2z

3N9R7u449Z1b76QpJp9u3gzPjMYQYnp3V7r:  -0.04000000 Waves

2022.01.15 04:31 [1879413] smart account 3N9R7u449Z1b76QpJp9u3gzPjMYQYnp3V7r > SELF 0.00000000 Waves

{ "type": 13, "id": "4QzDetcMM3TWoDSczY5Foq3ZdoJNuK1yYf6jWVNFyw2z", "fee": 4000000, "feeAssetId": null, "timestamp": 1642210337235, "version": 2, "chainId": 84, "sender": "3N9R7u449Z1b76QpJp9u3gzPjMYQYnp3V7r", "senderPublicKey": "GUHw1jkstNWTs9SX1KM3pMtq9HXjupvxiTd1urNhNoyY", "proofs": [ "3K9BtG15zCkwKkiuysQqRku2w9zFemE8dCGC757dzQs5TfXGw1Z7AhzxgrUdhtKjtfePjHciGspSrhpyjLBDfaYj" ], "script": "base64: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", "height": 1879413, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Aad4hQWXYVbtVfmKtxEXVDjdX9r6wPmi2nzyNG4MBtBK Next: J4Jf4gZR4uP67JtLGLaEAEAsskbowD5dR5FdhPdEGfXm Diff:
OldNewDifferences
77
88 let holdingsPublicKey = base58'GUHw1jkstNWTs9SX1KM3pMtq9HXjupvxiTd1urNhNoyY'
99
10-let holdingsAddress = addressFromPublicKey(holdingsPublicKey)
10+let holdingsAddress = Address(fromBase58String(holdingsAddressStr))
1111
1212 let transferCostPct = 25
1313
4242 else (amount > paymentAmount))
4343 then throw(((("Payment and amount do not match. This assets costs " + toString(amount)) + "but you sent ") + toString(paymentAmount)))
4444 else {
45- let dAppUpdate = invoke(Address(fromBase58String(dappAddress)), "finalizeSale", [assetId, ownerId], [AttachedPayment(unit, 1000000)])
45+ let dAppUpdate = invoke(Address(fromBase58String(dappAddress)), "finalizeSale", [assetId, ownerId], [AttachedPayment(unit, 0)])
4646 if ((dAppUpdate == dAppUpdate))
4747 then {
4848 let dataKey = match dAppUpdate {
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let dappAddress = "3N4vqUXWw8tf23LDWDbSEpJZH6dent3ETFu"
55
66 let holdingsAddressStr = "3N9R7u449Z1b76QpJp9u3gzPjMYQYnp3V7r"
77
88 let holdingsPublicKey = base58'GUHw1jkstNWTs9SX1KM3pMtq9HXjupvxiTd1urNhNoyY'
99
10-let holdingsAddress = addressFromPublicKey(holdingsPublicKey)
10+let holdingsAddress = Address(fromBase58String(holdingsAddressStr))
1111
1212 let transferCostPct = 25
1313
1414 @Callable(i)
1515 func addOwnerAndAmount (ownerId,assetId,amount) = [StringEntry((("sale_" + assetId) + "_originalOwner"), ownerId), StringEntry((("sale_" + assetId) + "_amount"), amount)]
1616
1717
1818
1919 @Callable(i)
2020 func buyFromHoldings (assetId) = {
2121 let ownerId = match getString(this, (("sale_" + assetId) + "_originalOwner")) {
2222 case _: Unit =>
2323 "unset"
2424 case x: String =>
2525 x
2626 case _ =>
2727 throw("Match error")
2828 }
2929 let paymentAmount = valueOrElse(i.payments[0].amount, 0)
3030 let amount = match getString(this, (("sale_" + assetId) + "_amount")) {
3131 case _: Unit =>
3232 0
3333 case x: String =>
3434 (valueOrElse(parseInt(x), 0) * 100000000)
3535 case _ =>
3636 throw("Match error")
3737 }
3838 if ((ownerId == "unset"))
3939 then throw("Original owner not found ")
4040 else if (if ((amount == 0))
4141 then true
4242 else (amount > paymentAmount))
4343 then throw(((("Payment and amount do not match. This assets costs " + toString(amount)) + "but you sent ") + toString(paymentAmount)))
4444 else {
45- let dAppUpdate = invoke(Address(fromBase58String(dappAddress)), "finalizeSale", [assetId, ownerId], [AttachedPayment(unit, 1000000)])
45+ let dAppUpdate = invoke(Address(fromBase58String(dappAddress)), "finalizeSale", [assetId, ownerId], [AttachedPayment(unit, 0)])
4646 if ((dAppUpdate == dAppUpdate))
4747 then {
4848 let dataKey = match dAppUpdate {
4949 case a: String =>
5050 a
5151 case _ =>
5252 throw("Unexpected result from finalizing purcahse")
5353 }
5454 let transfer = [ScriptTransfer(i.caller, 1, fromBase58String(assetId))]
5555 if ((ownerId != holdingsAddressStr))
5656 then {
5757 let amountToRemainInHoldings = (paymentAmount * (transferCostPct / 1000))
5858 let amountToTransferToOwner = (paymentAmount - amountToRemainInHoldings)
5959 let ownerAddress = Address(fromBase58String(ownerId))
6060 (transfer ++ [ScriptTransfer(ownerAddress, amountToTransferToOwner, unit)])
6161 }
6262 else transfer
6363 }
6464 else throw("Strict value is not equal to itself.")
6565 }
6666 }
6767
6868
6969 @Verifier(tx)
7070 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
7171

github/deemru/w8io/169f3d6 
87.49 ms