tx · CAVVBiWYDsZPeCuDfqHbPZsz7ucTjeQq8C2dCxsHkGLW

3MvU8vDCk4NkA1Ag4vE3mETA4U9ioFh6VEM:  -0.01500000 Waves

2019.12.14 09:50 [808197] smart account 3MvU8vDCk4NkA1Ag4vE3mETA4U9ioFh6VEM > SELF 0.00000000 Waves

{ "type": 13, "id": "CAVVBiWYDsZPeCuDfqHbPZsz7ucTjeQq8C2dCxsHkGLW", "fee": 1500000, "feeAssetId": null, "timestamp": 1576306276279, "version": 1, "sender": "3MvU8vDCk4NkA1Ag4vE3mETA4U9ioFh6VEM", "senderPublicKey": "LknnJnwRo6xRdriHmjgVbRDgpexijZFTYBU3Lw4HBS1", "proofs": [ "6WL8ema4di7ULz1TxdcVMVYzoNLkdUzZks4oi4bxiyQ6i3LgqtqU4kbrjyQeQni674AcMUZ7dfcwcp82KMJ9kfL" ], "script": "base64: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AQkBAAAACWlzRGVmaW5lZAAAAAEFAAAADWhpZ2hlc3RCaWRBbXQJAABnAAAAAgUAAAAIbWluUHJpY2UFAAAADnRvdGFsQmlkQW1vdW50BwYDCQEAAAAJaXNEZWZpbmVkAAAAAQUAAAANaGlnaGVzdEJpZEFtdAkAAGcAAAACCQEAAAAFdmFsdWUAAAABBQAAAA1oaWdoZXN0QmlkQW10BQAAAA50b3RhbEJpZEFtb3VudAcJAAACAAAAAQkAASwAAAACAgAAABZCaWQgbXVzdCBiZSBtb3JlIHRoZW4gAwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQUAAAANaGlnaGVzdEJpZEFtdAkAAaQAAAABBQAAAAhtaW5QcmljZQkAAaQAAAABCQEAAAAFdmFsdWUAAAABBQAAAA1oaWdoZXN0QmlkQW10AwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQUAAAANaGlnaGVzdEJpZGRlcgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADl9oaWdoZXN0QmlkZGVyBQAAAA1jYWxsZXJBZGRyZXNzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAOX2hpZ2hlc3RCaWRBbXQFAAAADnRvdGFsQmlkQW1vdW50BQAAAANuaWwDBQAAABJiaWRGcm9tVGhlU2FtZVVzZXIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAA5faGlnaGVzdEJpZEFtdAUAAAAOdG90YWxCaWRBbW91bnQFAAAAA25pbAQAAAAOcHJldmlvdXNCaWRkZXIJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQkBAAAABXZhbHVlAAAAAQUAAAANaGlnaGVzdEJpZGRlcgkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAA5faGlnaGVzdEJpZGRlcgUAAAANY2FsbGVyQWRkcmVzcwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADl9oaWdoZXN0QmlkQW10BQAAAA50b3RhbEJpZEFtb3VudAUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAADnByZXZpb3VzQmlkZGVyCQEAAAAFdmFsdWUAAAABBQAAAA1oaWdoZXN0QmlkQW10BQAAAAR1bml0BQAAAANuaWwAAAAAuHB2kA==", "chainId": 84, "height": 808197, "spentComplexity": 0 } View: original | compacted Prev: AND3yuGwTZHnG2ogkkesA8Sum8YnZKZnHzManXpPFyNN Next: DsA5wkGXy1LjT5oo7FkcwxEdFWabYsb5aqsWhATYgNPh Diff:
OldNewDifferences
5555 }
5656
5757
58-
59-@Callable(i)
60-func withdraw (auctionId) = {
61- let pmt = extract(i.payment)
62- let callerAddress = toBase58String(i.caller.bytes)
63- let endTime = getIntegerValue(this, (auctionId + "_endTime"))
64- let owner = getStringValue(this, (auctionId + "_owner"))
65- let highestBidder = getString(this, (auctionId + "_highestBidder"))
66- let itemId = getStringValue(this, (auctionId + "_itemId"))
67- let highestBidAmt = getIntegerValue(this, (auctionId + "_highestBidAmt"))
68- let highestBidderAddr = addressFromStringValue(value(highestBidder))
69- let ownerAddr = addressFromStringValue(value(owner))
70- let itemAddr = addressFromStringValue(value(itemId))
71- if ((endTime > lastBlock.height))
72- then throw("Auction is not finished yet")
73- else if (!(isDefined(highestBidder)))
74- then if (!(isDefined(getBoolean(this, (auctionId + "_status")))))
75- then throw("Owner already withdrawn the item")
76- else ScriptResult(WriteSet([DataEntry((auctionId + "_status"), true)]), TransferSet([ScriptTransfer(ownerAddr, 1, base58'itemAddr')]))
77- else if (isDefined(getBoolean(this, (auctionId + "_status"))))
78- then throw("The item is transfered to the highest bidder and the bid amount is transfered to the owner")
79- else ScriptResult(WriteSet([DataEntry((auctionId + "_status"), true)]), TransferSet([ScriptTransfer(highestBidderAddr, 1, base58'itemAddr'), ScriptTransfer(ownerAddr, highestBidAmt, unit)]))
80- }
81-
82-
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let auctionDuration = (1440 * 1)
55
66 @Callable(i)
77 func beginAuction (minPrice,duration) = if ((duration > auctionDuration))
88 then throw((((("Specified duration(" + toString(duration)) + ") exceeds the maximum duration(") + toString(auctionDuration)) + ")"))
99 else {
1010 let auctionId = toBase58String(i.transactionId)
1111 let endTime = (lastBlock.height + duration)
1212 let pmt = extract(i.payment)
1313 WriteSet([DataEntry(auctionId, auctionId), DataEntry((auctionId + "_endTime"), endTime), DataEntry((auctionId + "_owner"), toBase58String(i.caller.bytes)), DataEntry((auctionId + "_itemId"), if (isDefined(pmt.assetId))
1414 then toBase58String(value(pmt.assetId))
1515 else throw("Item not atached")), DataEntry((auctionId + "_minPrice"), minPrice)])
1616 }
1717
1818
1919
2020 @Callable(i)
2121 func bid (auctionId) = {
2222 let callerAddress = toBase58String(i.caller.bytes)
2323 let endTime = getIntegerValue(this, (auctionId + "_endTime"))
2424 let minPrice = getIntegerValue(this, (auctionId + "_minPrice"))
2525 let highestBidAmt = getInteger(this, (auctionId + "_highestBidAmt"))
2626 let highestBidder = getString(this, (auctionId + "_highestBidder"))
2727 let bidFromTheSameUser = if (isDefined(highestBidder))
2828 then (value(highestBidder) == callerAddress)
2929 else false
3030 let totalBidAmount = (1000000 + (if (bidFromTheSameUser)
3131 then value(highestBidAmt)
3232 else 0))
3333 if (!(isDefined(getIntegerValue(this, auctionId))))
3434 then throw("Auction Id not found")
3535 else if ((lastBlock.height >= endTime))
3636 then throw("Auction Completed")
3737 else if (if (if (!(isDefined(highestBidAmt)))
3838 then (minPrice >= totalBidAmount)
3939 else false)
4040 then true
4141 else if (isDefined(highestBidAmt))
4242 then (value(highestBidAmt) >= totalBidAmount)
4343 else false)
4444 then throw(("Bid must be more then " + (if (!(isDefined(highestBidAmt)))
4545 then toString(minPrice)
4646 else toString(value(highestBidAmt)))))
4747 else if (!(isDefined(highestBidder)))
4848 then WriteSet([DataEntry((auctionId + "_highestBidder"), callerAddress), DataEntry((auctionId + "_highestBidAmt"), totalBidAmount)])
4949 else if (bidFromTheSameUser)
5050 then WriteSet([DataEntry((auctionId + "_highestBidAmt"), totalBidAmount)])
5151 else {
5252 let previousBidder = addressFromStringValue(value(highestBidder))
5353 ScriptResult(WriteSet([DataEntry((auctionId + "_highestBidder"), callerAddress), DataEntry((auctionId + "_highestBidAmt"), totalBidAmount)]), TransferSet([ScriptTransfer(previousBidder, value(highestBidAmt), unit)]))
5454 }
5555 }
5656
5757
58-
59-@Callable(i)
60-func withdraw (auctionId) = {
61- let pmt = extract(i.payment)
62- let callerAddress = toBase58String(i.caller.bytes)
63- let endTime = getIntegerValue(this, (auctionId + "_endTime"))
64- let owner = getStringValue(this, (auctionId + "_owner"))
65- let highestBidder = getString(this, (auctionId + "_highestBidder"))
66- let itemId = getStringValue(this, (auctionId + "_itemId"))
67- let highestBidAmt = getIntegerValue(this, (auctionId + "_highestBidAmt"))
68- let highestBidderAddr = addressFromStringValue(value(highestBidder))
69- let ownerAddr = addressFromStringValue(value(owner))
70- let itemAddr = addressFromStringValue(value(itemId))
71- if ((endTime > lastBlock.height))
72- then throw("Auction is not finished yet")
73- else if (!(isDefined(highestBidder)))
74- then if (!(isDefined(getBoolean(this, (auctionId + "_status")))))
75- then throw("Owner already withdrawn the item")
76- else ScriptResult(WriteSet([DataEntry((auctionId + "_status"), true)]), TransferSet([ScriptTransfer(ownerAddr, 1, base58'itemAddr')]))
77- else if (isDefined(getBoolean(this, (auctionId + "_status"))))
78- then throw("The item is transfered to the highest bidder and the bid amount is transfered to the owner")
79- else ScriptResult(WriteSet([DataEntry((auctionId + "_status"), true)]), TransferSet([ScriptTransfer(highestBidderAddr, 1, base58'itemAddr'), ScriptTransfer(ownerAddr, highestBidAmt, unit)]))
80- }
81-
82-

github/deemru/w8io/3ef1775 
49.84 ms