tx · HhqFXZzuydjAad3oFCbkTC72rNiyrtN7iCYAjGL5fA1k

3N9R7u449Z1b76QpJp9u3gzPjMYQYnp3V7r:  -0.04000000 Waves

2022.01.13 17:31 [1877303] smart account 3N9R7u449Z1b76QpJp9u3gzPjMYQYnp3V7r > SELF 0.00000000 Waves

{ "type": 13, "id": "HhqFXZzuydjAad3oFCbkTC72rNiyrtN7iCYAjGL5fA1k", "fee": 4000000, "feeAssetId": null, "timestamp": 1642084319746, "version": 2, "chainId": 84, "sender": "3N9R7u449Z1b76QpJp9u3gzPjMYQYnp3V7r", "senderPublicKey": "GUHw1jkstNWTs9SX1KM3pMtq9HXjupvxiTd1urNhNoyY", "proofs": [ "EKUJF1y8Hqdx2dXuycZV3RQSEQAbo8wuL6AHHTiSB6uXHXdyXfwsB6zCn7jmKymGmnH2VYCLqiNWbhkZzfRtNcp" ], "script": "base64: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", "height": 1877303, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5cnrbEwjRJSpQFMjXT8psszopyha9XTBYdCXKStfb1AY Next: DT1QFW3cn7yjMrqJAARvMdkh2ww2LpMqqrK9zcfR1ndp Diff:
OldNewDifferences
1414
1515 @Callable(i)
1616 func buyFromHoldings (assetId) = {
17- let ownerIdData = getString(this, (("sale_" + assetId) + "_originalOwner"))
18- let ownerId = match ownerIdData {
17+ let ownerId = match getString(this, (("sale_" + assetId) + "_originalOwner")) {
1918 case _: Unit =>
2019 "unset"
2120 case x: String =>
22- "unset"
21+ x
2322 case _ =>
2423 throw("Match error")
2524 }
3332 throw("Match error")
3433 }
3534 if ((ownerId == "unset"))
36- then throw(("Original owner not found " + valueOrElse(ownerIdData, "nothing")))
35+ then throw("Original owner not found ")
3736 else if (if ((amount == 0))
3837 then true
3938 else (amount > paymentAmount))
4140 else {
4241 let amountToRemainInHoldings = (paymentAmount * (transferCostPct / 1000))
4342 let amountToTransferToOwner = (paymentAmount - amountToRemainInHoldings)
44- let ownerAddress = Address(toBytes(ownerId))
43+ let ownerAddress = Address(fromBase58String(ownerId))
4544 [ScriptTransfer(i.caller, 1, fromBase58String(assetId)), ScriptTransfer(ownerAddress, amountToTransferToOwner, unit)]
4645 }
4746 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let holdingsPublicKey = base58'GUHw1jkstNWTs9SX1KM3pMtq9HXjupvxiTd1urNhNoyY'
55
66 let holdingsAddress = addressFromPublicKey(holdingsPublicKey)
77
88 let transferCostPct = 25
99
1010 @Callable(i)
1111 func addOwnerAndAmount (ownerId,assetId,amount) = [StringEntry((("sale_" + assetId) + "_originalOwner"), ownerId), StringEntry((("sale_" + assetId) + "_amount"), amount)]
1212
1313
1414
1515 @Callable(i)
1616 func buyFromHoldings (assetId) = {
17- let ownerIdData = getString(this, (("sale_" + assetId) + "_originalOwner"))
18- let ownerId = match ownerIdData {
17+ let ownerId = match getString(this, (("sale_" + assetId) + "_originalOwner")) {
1918 case _: Unit =>
2019 "unset"
2120 case x: String =>
22- "unset"
21+ x
2322 case _ =>
2423 throw("Match error")
2524 }
2625 let paymentAmount = valueOrElse(i.payments[0].amount, 0)
2726 let amount = match getString(this, (("sale_" + assetId) + "_amount")) {
2827 case _: Unit =>
2928 0
3029 case x: String =>
3130 (valueOrElse(parseInt(x), 0) * 100000000)
3231 case _ =>
3332 throw("Match error")
3433 }
3534 if ((ownerId == "unset"))
36- then throw(("Original owner not found " + valueOrElse(ownerIdData, "nothing")))
35+ then throw("Original owner not found ")
3736 else if (if ((amount == 0))
3837 then true
3938 else (amount > paymentAmount))
4039 then throw(((("Payment and amount do not match. This assets costs " + toString(amount)) + "but you sent ") + toString(paymentAmount)))
4140 else {
4241 let amountToRemainInHoldings = (paymentAmount * (transferCostPct / 1000))
4342 let amountToTransferToOwner = (paymentAmount - amountToRemainInHoldings)
44- let ownerAddress = Address(toBytes(ownerId))
43+ let ownerAddress = Address(fromBase58String(ownerId))
4544 [ScriptTransfer(i.caller, 1, fromBase58String(assetId)), ScriptTransfer(ownerAddress, amountToTransferToOwner, unit)]
4645 }
4746 }
4847
4948
5049 @Verifier(tx)
5150 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
5251

github/deemru/w8io/169f3d6 
47.23 ms