tx · A3Q56WArTCQ5ySw86X9oFBwetu6TzVFrg8su9vrhHFzR 3N1PPoNT4epUSgdGwx1eNePsZjeYp5RUAcj: -0.01400000 Waves 2019.06.22 21:30 [553616] smart account 3N1PPoNT4epUSgdGwx1eNePsZjeYp5RUAcj > SELF 0.00000000 Waves
{ "type": 13, "id": "A3Q56WArTCQ5ySw86X9oFBwetu6TzVFrg8su9vrhHFzR", "fee": 1400000, "feeAssetId": null, "timestamp": 1561228204584, "version": 1, "sender": "3N1PPoNT4epUSgdGwx1eNePsZjeYp5RUAcj", "senderPublicKey": "AomFdZHmK72gCbitdy7X2sUvNueScd3LhY9g2m7DJdo4", "proofs": [ "2XrYNa5QLd79YMrgSaSQN2c6Rp9r2xmhZ6qNQMfr5EnTBjxAmERkoKTuKviui8Yxv8Tb29tqyWPYAsGRhX69J3oL" ], "script": "base64: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Y3Rpb25Mb3RBc3NldElkCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAMX2xvdF9hc3NldElkBAAAABBhdWN0aW9uTG90QW1vdW50CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAALX2xvdF9hbW91bnQEAAAAE2F1Y3Rpb25QcmljZUFzc2V0SWQJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAA1fcHJpY2VBc3NldElkBAAAABBhdWN0aW9uV2luQW1vdW50CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAKX3dpbkFtb3VudAQAAAAPYXVjdGlvbkxvdEFzc2V0AwkAAAAAAAACBQAAABFhdWN0aW9uTG90QXNzZXRJZAIAAAAFV0FWRVMFAAAABHVuaXQJAAJZAAAAAQUAAAARYXVjdGlvbkxvdEFzc2V0SWQEAAAAEWF1Y3Rpb25QcmljZUFzc2V0AwMJAAAAAAAAAgUAAAATYXVjdGlvblByaWNlQXNzZXRJZAIAAAAFV0FWRVMGCQAAAAAAAAIFAAAAE2F1Y3Rpb25QcmljZUFzc2V0SWQCAAAAAAUAAAAEdW5pdAkAAlkAAAABBQAAABNhdWN0aW9uUHJpY2VBc3NldElkBAAAABFhdWN0aW9uV2lubmVyQWRkcgkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABCQEAAAAFdmFsdWUAAAABBQAAAA1hdWN0aW9uV2lubmVyBAAAABRhdWN0aW9uT3JnYW5pemVyQWRkcgkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABCQEAAAAFdmFsdWUAAAABBQAAABBhdWN0aW9uT3JnYW5pemVyBAAAAAliZXRBbW91bnQJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAIX2JpZGRlcl8FAAAAEGNhbGxl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", "chainId": 84, "height": 553616, "spentComplexity": 0 } View: original | compacted Prev: 2Nqme25Yr4F2MmrW5dtBssQdcXofhoDQdsHCS5aEFtoy Next: BH1pWCc5hg1NBDet9oVvecCVWT2NFmDc9w4BHnJf1N6C Full:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 3 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = (1440 * 30) | |
5 | 5 | ||
6 | 6 | @Callable(b) | |
7 | 7 | func startAuction (c,d,e) = { | |
8 | 8 | let f = toBase58String(b.transactionId) | |
9 | 9 | let g = (lastBlock.height + c) | |
10 | 10 | let h = extract(b.payment) | |
11 | 11 | if ((c > a)) | |
12 | 12 | then throw(("Duration is too long. Must be less than " + toString(a))) | |
13 | 13 | else WriteSet([DataEntry(f, g), DataEntry((f + "_organizer"), toBase58String(b.caller.bytes)), DataEntry((f + "_lot_assetId"), if (isDefined(h.assetId)) | |
14 | 14 | then toBase58String(value(h.assetId)) | |
15 | 15 | else "WAVES"), DataEntry((f + "_lot_amount"), h.amount), DataEntry((f + "_startPrice"), d), DataEntry((f + "_priceAssetId"), e)]) | |
16 | 16 | } | |
17 | 17 | ||
18 | 18 | ||
19 | 19 | ||
20 | 20 | @Callable(b) | |
21 | 21 | func bid (f) = { | |
22 | 22 | let h = extract(b.payment) | |
23 | 23 | let i = if (isDefined(h.assetId)) | |
24 | 24 | then toBase58String(value(h.assetId)) | |
25 | 25 | else "WAVES" | |
26 | 26 | let j = toBase58String(b.caller.bytes) | |
27 | 27 | let g = getIntegerValue(this, f) | |
28 | 28 | let k = getStringValue(this, (f + "_priceAssetId")) | |
29 | 29 | let l = getInteger(this, (f + "_winAmount")) | |
30 | 30 | if ((lastBlock.height >= g)) | |
31 | 31 | then throw("Auction already finished") | |
32 | 32 | else if ((k != i)) | |
33 | 33 | then throw((("Bid must be in asset '" + k) + "'")) | |
34 | 34 | else if (if (isDefined(l)) | |
35 | 35 | then (value(l) >= h.amount) | |
36 | 36 | else false) | |
37 | 37 | then throw(("Bid must be more then " + toString(h.amount))) | |
38 | 38 | else WriteSet([DataEntry(((f + "_bidder_") + j), h.amount), DataEntry((f + "_winner"), j), DataEntry((f + "_winAmount"), h.amount)]) | |
39 | 39 | } | |
40 | 40 | ||
41 | 41 | ||
42 | 42 | ||
43 | 43 | @Callable(b) | |
44 | 44 | func withdraw (f) = { | |
45 | 45 | let h = extract(b.payment) | |
46 | 46 | let i = if (isDefined(h.assetId)) | |
47 | 47 | then toBase58String(value(h.assetId)) | |
48 | 48 | else "WAVES" | |
49 | 49 | let j = toBase58String(b.caller.bytes) | |
50 | 50 | let g = getIntegerValue(this, f) | |
51 | 51 | let m = getStringValue(this, (f + "_organizer")) | |
52 | 52 | let n = getString(this, (f + "_winner")) | |
53 | 53 | let o = getStringValue(this, (f + "_lot_assetId")) | |
54 | 54 | let p = getIntegerValue(this, (f + "_lot_amount")) | |
55 | 55 | let k = getStringValue(this, (f + "_priceAssetId")) | |
56 | 56 | let l = getIntegerValue(this, (f + "_winAmount")) | |
57 | 57 | let q = if ((o == "WAVES")) | |
58 | 58 | then unit | |
59 | 59 | else fromBase58String(o) | |
60 | 60 | let r = if (if ((k == "WAVES")) | |
61 | 61 | then true | |
62 | 62 | else (k == "")) | |
63 | 63 | then unit | |
64 | 64 | else fromBase58String(k) | |
65 | 65 | let s = addressFromStringValue(value(n)) | |
66 | 66 | let t = addressFromStringValue(value(m)) | |
67 | 67 | let u = getInteger(this, ((f + "_bidder_") + j)) | |
68 | 68 | if ((g > lastBlock.height)) | |
69 | 69 | then throw("Auction is not finished yet") | |
70 | 70 | else if (!(isDefined(n))) | |
71 | 71 | then if ((j == m)) | |
72 | 72 | then if (!(isDefined(getBoolean(this, (f + "_lot_passed"))))) | |
73 | 73 | then throw("You have already got your lot back") | |
74 | 74 | else ScriptResult(WriteSet([DataEntry((f + "_lot_passed"), true)]), TransferSet([ScriptTransfer(b.caller, p, q)])) | |
75 | 75 | else throw("You haven't participate in this auction") | |
76 | 76 | else if (if ((j == m)) | |
77 | 77 | then true | |
78 | 78 | else (j == n)) | |
79 | 79 | then if (isDefined(getBoolean(this, (f + "_lot_passed")))) | |
80 | 80 | then throw("Lot is already passed to the winner, and organizer got his reward") | |
81 | 81 | else ScriptResult(WriteSet([DataEntry((f + "_lot_passed"), true)]), TransferSet([ScriptTransfer(s, p, q), ScriptTransfer(t, l, r)])) | |
82 | 82 | else if (!(isDefined(u))) | |
83 | 83 | then throw("You didn't bid anything") | |
84 | 84 | else if (isDefined(getBoolean(this, (((f + "_bidder_") + j) + "_return")))) | |
85 | 85 | then throw("You have already got your bid back") | |
86 | 86 | else ScriptResult(WriteSet([DataEntry((((f + "_bidder_") + j) + "_return"), true)]), TransferSet([ScriptTransfer(b.caller, value(u), r)])) | |
87 | 87 | } | |
88 | 88 | ||
89 | 89 |
github/deemru/w8io/169f3d6 52.62 ms ◑