tx · B4E4HJiNJNr8FV3HJs9AChh1j7Ry2vTGr7aaw7FqGNrs
3NCEnW5hTnRQ7J9TFQsHS4W92f54PCCWQvN: -0.01400000 Waves
2020.02.02 14:34 [881473] smart account 3NCEnW5hTnRQ7J9TFQsHS4W92f54PCCWQvN > SELF 0.00000000 Waves
{
"type": 13,
"id": "B4E4HJiNJNr8FV3HJs9AChh1j7Ry2vTGr7aaw7FqGNrs",
"fee": 1400000,
"feeAssetId": null,
"timestamp": 1580643152407,
"version": 1,
"sender": "3NCEnW5hTnRQ7J9TFQsHS4W92f54PCCWQvN",
"senderPublicKey": "8PUyJHGVRUxhY118c4H5isGCGLYgRBmcSzNYooDAqwh",
"proofs": [
"32qSjmw6k3dp68V2MapEsnezvCPYvw9UavmMfj3LMNwfJoipyg1p387fjpxcXsy9Ut5HV8ZeXqhm6dxFAFATwCQR"
],
"script": "base64:AAIDAAAAAAAAAAgIARIECgIIAQAAAAEAAAAAD25hbWVVbnRpbFN1ZmZ1eAIAAAAGOnVudGlsAAAAAQAAAAFpAQAAAAdnZXRMb2NrAAAAAgAAAAhsb2NrTmFtZQAAAAV1bnRpbAQAAAANbG9ja05hbWVVbnRpbAkAASwAAAACBQAAAAhsb2NrTmFtZQUAAAAPbmFtZVVudGlsU3VmZnV4BAAAAAhub3dVbmlvbgkAA+0AAAABBQAAAAZoZWlnaHQEAAAAA25vdwQAAAAHJG1hdGNoMAUAAAAIbm93VW5pb24DCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACUJsb2NrSW5mbwQAAAABdAUAAAAHJG1hdGNoMAUAAAABdAkAAAIAAAABAgAAABVDYW5ub3QgZ2V0IGxhc3QgYmxvY2sEAAAAAXEDCQAAZwAAAAIIBQAAAANub3cAAAAJdGltZXN0YW1wBQAAAAV1bnRpbAkAAAIAAAABAgAAABlTdXBwbGllZCB1bnRpbCBpcyB0b28gbG93BgQAAAACcXEDCQAAZgAAAAIFAAAABXVudGlsCQAAZAAAAAIIBQAAAANub3cAAAAJdGltZXN0YW1wAAAAAAAACSfACQAAAgAAAAECAAAAGlN1cHBsaWVkIHVudGlsIGlzIHRvbyBoaWdoBgQAAAALY2FuQmVMb2NrZWQEAAAAByRtYXRjaDAJAAQcAAAAAgUAAAAEdGhpcwUAAAAIbG9ja05hbWUDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACkJ5dGVWZWN0b3IEAAAAAWIFAAAAByRtYXRjaDAJAAAAAAAAAgUAAAABYggIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAEVW5pdAUAAAAHJG1hdGNoMAYEAAAADGxhc3RMb2NrVGltZQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAA1sb2NrTmFtZVVudGlsAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAXQFAAAAByRtYXRjaDAFAAAAAXQEAAAABFVuaXQFAAAAByRtYXRjaDAAAAAAAAAAAAADAwUAAAALY2FuQmVMb2NrZWQGCQAAZwAAAAIIBQAAAANub3cAAAAJdGltZXN0YW1wBQAAAAxsYXN0TG9ja1RpbWUJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAACGxvY2tOYW1lCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAA1sb2NrTmFtZVVudGlsBQAAAAV1bnRpbAUAAAADbmlsCQAAAgAAAAECAAAAE0xvY2sgY2FudCBiZSBsb2NrZWQAAAAAxDSJTg==",
"chainId": 84,
"height": 881473,
"spentComplexity": 0
}
View: original | compacted
Prev: 9WBeRwUDqtTWgfcrZXsgxMm9uAsBew3bh41YGR2K3omv
Next: Masa2LZG6gbvvEtfuM7UhBkbgBxiwrFvZ4FPrHDEtWX
Full:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 3 #-} |
---|
2 | 2 | | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | 3 | | {-# CONTENT_TYPE DAPP #-} |
---|
| 4 | + | let a = ":until" |
---|
4 | 5 | | |
---|
5 | | - | |
---|
6 | | - | @Callable(a) |
---|
7 | | - | func getLock (b) = { |
---|
8 | | - | let c = { |
---|
9 | | - | let d = getBinary(this, b) |
---|
10 | | - | if ($isInstanceOf(d, "ByteVector")) |
---|
| 6 | + | @Callable(b) |
---|
| 7 | + | func getLock (c,d) = { |
---|
| 8 | + | let e = (c + a) |
---|
| 9 | + | let f = blockInfoByHeight(height) |
---|
| 10 | + | let g = { |
---|
| 11 | + | let h = f |
---|
| 12 | + | if ($isInstanceOf(h, "BlockInfo")) |
---|
11 | 13 | | then { |
---|
12 | | - | let e = d |
---|
13 | | - | if ((e == a.caller.bytes)) |
---|
14 | | - | then true |
---|
15 | | - | else (e == this.bytes) |
---|
| 14 | + | let i = h |
---|
| 15 | + | i |
---|
| 16 | + | } |
---|
| 17 | + | else throw("Cannot get last block") |
---|
| 18 | + | } |
---|
| 19 | + | let j = if ((g.timestamp >= d)) |
---|
| 20 | + | then throw("Supplied until is too low") |
---|
| 21 | + | else true |
---|
| 22 | + | let k = if ((d > (g.timestamp + 600000))) |
---|
| 23 | + | then throw("Supplied until is too high") |
---|
| 24 | + | else true |
---|
| 25 | + | let l = { |
---|
| 26 | + | let h = getBinary(this, c) |
---|
| 27 | + | if ($isInstanceOf(h, "ByteVector")) |
---|
| 28 | + | then { |
---|
| 29 | + | let m = h |
---|
| 30 | + | (m == b.caller.bytes) |
---|
16 | 31 | | } |
---|
17 | 32 | | else { |
---|
18 | | - | let f = d |
---|
| 33 | + | let n = h |
---|
19 | 34 | | true |
---|
20 | 35 | | } |
---|
21 | 36 | | } |
---|
22 | | - | if (c) |
---|
23 | | - | then WriteSet([DataEntry(b, a.caller.bytes)]) |
---|
24 | | - | else throw("Already locked by another") |
---|
25 | | - | } |
---|
26 | | - | |
---|
27 | | - | |
---|
28 | | - | |
---|
29 | | - | @Callable(a) |
---|
30 | | - | func releaseLock (b) = { |
---|
31 | | - | let c = { |
---|
32 | | - | let d = getBinary(this, b) |
---|
33 | | - | if ($isInstanceOf(d, "ByteVector")) |
---|
| 37 | + | let o = { |
---|
| 38 | + | let h = getInteger(this, e) |
---|
| 39 | + | if ($isInstanceOf(h, "Int")) |
---|
34 | 40 | | then { |
---|
35 | | - | let e = d |
---|
36 | | - | (e == a.caller.bytes) |
---|
| 41 | + | let i = h |
---|
| 42 | + | i |
---|
37 | 43 | | } |
---|
38 | 44 | | else { |
---|
39 | | - | let f = d |
---|
40 | | - | false |
---|
| 45 | + | let n = h |
---|
| 46 | + | 0 |
---|
41 | 47 | | } |
---|
42 | 48 | | } |
---|
43 | | - | if (c) |
---|
44 | | - | then WriteSet([DataEntry(b, this.bytes)]) |
---|
45 | | - | else throw("Locked by another") |
---|
| 49 | + | if (if (l) |
---|
| 50 | + | then true |
---|
| 51 | + | else (g.timestamp >= o)) |
---|
| 52 | + | then WriteSet([DataEntry(c, b.caller.bytes), DataEntry(e, d)]) |
---|
| 53 | + | else throw("Lock cant be locked") |
---|
46 | 54 | | } |
---|
47 | 55 | | |
---|
48 | 56 | | |
---|