tx · AqFJwQ4A2QWNVrAbZj1wHZD4bKAabRoj5ntvV6V97FmP

3MvU8vDCk4NkA1Ag4vE3mETA4U9ioFh6VEM:  -0.01500000 Waves

2019.12.14 10:06 [808210] smart account 3MvU8vDCk4NkA1Ag4vE3mETA4U9ioFh6VEM > SELF 0.00000000 Waves

{ "type": 13, "id": "AqFJwQ4A2QWNVrAbZj1wHZD4bKAabRoj5ntvV6V97FmP", "fee": 1500000, "feeAssetId": null, "timestamp": 1576307195538, "version": 1, "sender": "3MvU8vDCk4NkA1Ag4vE3mETA4U9ioFh6VEM", "senderPublicKey": "LknnJnwRo6xRdriHmjgVbRDgpexijZFTYBU3Lw4HBS1", "proofs": [ "okCk6MiCeoQdt6PfHhE5rWzMYAF7XaUHXVZBE6uaREXb4NBZEBQiooFLVhZZJbo1aHDSggKHtkHYoTPxFesVYxU" ], "script": "base64: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", "chainId": 84, "height": 808210, "spentComplexity": 0 } View: original | compacted Prev: DsA5wkGXy1LjT5oo7FkcwxEdFWabYsb5aqsWhATYgNPh Next: GsjCA1cpQw944yMhzZxRmy29yvartR8GkxG8yZxxXdmX Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+let auctionDuration = (1440 * 1)
5+
6+@Callable(i)
7+func beginAuction (minPrice,duration) = if ((duration > auctionDuration))
8+ then throw((((("Specified duration(" + toString(duration)) + ") exceeds the maximum duration(") + toString(auctionDuration)) + ")"))
9+ else {
10+ let auctionId = toBase58String(i.transactionId)
11+ let endTime = (lastBlock.height + duration)
12+ let pmt = extract(i.payment)
13+ WriteSet([DataEntry(auctionId, auctionId), DataEntry((auctionId + "_endTime"), endTime), DataEntry((auctionId + "_owner"), toBase58String(i.caller.bytes)), DataEntry((auctionId + "_itemId"), if (isDefined(pmt.assetId))
14+ then toBase58String(value(pmt.assetId))
15+ else throw("Item not atached")), DataEntry((auctionId + "_minPrice"), minPrice)])
16+ }
17+
418
519
620 @Callable(i)
7-func bid (auctionId) = WriteSet([DataEntry("Content_Variable", "hello")])
21+func bid (auctionId) = {
22+ let pmt = extract(i.payment)
23+ let callerAddress = toBase58String(i.caller.bytes)
24+ let endTime = getIntegerValue(this, (auctionId + "_endTime"))
25+ let minPrice = getIntegerValue(this, (auctionId + "_minPrice"))
26+ let highestBidAmt = getInteger(this, (auctionId + "_highestBidAmt"))
27+ let highestBidder = getString(this, (auctionId + "_highestBidder"))
28+ let bidFromTheSameUser = if (isDefined(highestBidder))
29+ then (value(highestBidder) == callerAddress)
30+ else false
31+ let totalBidAmount = (pmt.amount + (if (bidFromTheSameUser)
32+ then value(highestBidAmt)
33+ else 0))
34+ if (!(isDefined(getIntegerValue(this, auctionId))))
35+ then throw("Auction Id not found")
36+ else if ((lastBlock.height >= endTime))
37+ then throw("Auction Completed")
38+ else if (if (if (!(isDefined(highestBidAmt)))
39+ then (minPrice >= totalBidAmount)
40+ else false)
41+ then true
42+ else if (isDefined(highestBidAmt))
43+ then (value(highestBidAmt) >= totalBidAmount)
44+ else false)
45+ then throw(("Bid must be more then " + (if (!(isDefined(highestBidAmt)))
46+ then toString(minPrice)
47+ else toString(value(highestBidAmt)))))
48+ else if (!(isDefined(highestBidder)))
49+ then WriteSet([DataEntry((auctionId + "_highestBidder"), callerAddress), DataEntry((auctionId + "_highestBidAmt"), totalBidAmount)])
50+ else if (bidFromTheSameUser)
51+ then WriteSet([DataEntry((auctionId + "_highestBidAmt"), totalBidAmount)])
52+ else {
53+ let previousBidder = addressFromStringValue(value(highestBidder))
54+ ScriptResult(WriteSet([DataEntry((auctionId + "_highestBidder"), callerAddress), DataEntry((auctionId + "_highestBidAmt"), totalBidAmount)]), TransferSet([ScriptTransfer(previousBidder, value(highestBidAmt), unit)]))
55+ }
56+ }
57+
58+
59+
60+@Callable(i)
61+func withdraw (auctionId) = {
62+ let pmt = extract(i.payment)
63+ let callerAddress = toBase58String(i.caller.bytes)
64+ let endTime = getIntegerValue(this, (auctionId + "_endTime"))
65+ let owner = getStringValue(this, (auctionId + "_owner"))
66+ let highestBidder = getString(this, (auctionId + "_highestBidder"))
67+ let itemId = getStringValue(this, (auctionId + "_itemId"))
68+ let highestBidAmt = getIntegerValue(this, (auctionId + "_highestBidAmt"))
69+ let highestBidderAddr = addressFromStringValue(value(highestBidder))
70+ let ownerAddr = addressFromStringValue(value(owner))
71+ let itemAddr = addressFromStringValue(value(itemId))
72+ if ((endTime > lastBlock.height))
73+ then throw("Auction is not finished yet")
74+ else if (!(isDefined(highestBidder)))
75+ then if (!(isDefined(getBoolean(this, (auctionId + "_status")))))
76+ then throw("Owner already withdrawn the item")
77+ else ScriptResult(WriteSet([DataEntry((auctionId + "_status"), true)]), TransferSet([ScriptTransfer(ownerAddr, 1, base58'itemAddr')]))
78+ else if (isDefined(getBoolean(this, (auctionId + "_status"))))
79+ then throw("The item is transfered to the highest bidder and the bid amount is transfered to the owner")
80+ else ScriptResult(WriteSet([DataEntry((auctionId + "_status"), true)]), TransferSet([ScriptTransfer(highestBidderAddr, 1, base58'itemAddr'), ScriptTransfer(ownerAddr, highestBidAmt, unit)]))
81+ }
882
983

github/deemru/w8io/3ef1775 
37.68 ms