tx · J4Jf4gZR4uP67JtLGLaEAEAsskbowD5dR5FdhPdEGfXm

3N9R7u449Z1b76QpJp9u3gzPjMYQYnp3V7r:  -0.04000000 Waves

2022.01.15 04:44 [1879427] smart account 3N9R7u449Z1b76QpJp9u3gzPjMYQYnp3V7r > SELF 0.00000000 Waves

{ "type": 13, "id": "J4Jf4gZR4uP67JtLGLaEAEAsskbowD5dR5FdhPdEGfXm", "fee": 4000000, "feeAssetId": null, "timestamp": 1642211092099, "version": 2, "chainId": 84, "sender": "3N9R7u449Z1b76QpJp9u3gzPjMYQYnp3V7r", "senderPublicKey": "GUHw1jkstNWTs9SX1KM3pMtq9HXjupvxiTd1urNhNoyY", "proofs": [ "5pZwupw4DYLsWP2xcNrBXTWnbmEgfz72CYyR2v7bbfRMUi7XcduYF8GobPsRotvy7VZhi8x1PTsVgzZNTv7wHVWd" ], "script": "base64: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", "height": 1879427, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4QzDetcMM3TWoDSczY5Foq3ZdoJNuK1yYf6jWVNFyw2z Next: 61zba1DFGcCSqhAZPKUUZRjm8wwBogJmdm1Txj9svZL2 Diff:
OldNewDifferences
6666 }
6767
6868
69-@Verifier(tx)
70-func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
71-
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
1010 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 {
4545 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
69-@Verifier(tx)
70-func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
71-

github/deemru/w8io/169f3d6 
24.24 ms