tx · 8DRYuJaQCiMYgsWw4YpNMtQN7QfKKrmMVkxaTqYB8L2w

3NCEnW5hTnRQ7J9TFQsHS4W92f54PCCWQvN:  -0.01400000 Waves

2020.02.03 14:25 [882918] smart account 3NCEnW5hTnRQ7J9TFQsHS4W92f54PCCWQvN > SELF 0.00000000 Waves

{ "type": 13, "id": "8DRYuJaQCiMYgsWw4YpNMtQN7QfKKrmMVkxaTqYB8L2w", "fee": 1400000, "feeAssetId": null, "timestamp": 1580729094564, "version": 1, "sender": "3NCEnW5hTnRQ7J9TFQsHS4W92f54PCCWQvN", "senderPublicKey": "8PUyJHGVRUxhY118c4H5isGCGLYgRBmcSzNYooDAqwh", "proofs": [ "4G27tovtRPPqa3q9s1kX3c9Dr5unuPMSRSLb713edpmUdiakjoXiRemuvJr5SBXFs2ZWxkht3vWvtaUfKNCFLBYX" ], "script": "base64:AAIDAAAAAAAAAAcIARIDCgEIAAAAAAAAAAEAAAABaQEAAAAUdHJ5R2V0NjAwU2Vjb25kc0xvY2sAAAABAAAACGxvY2tOYW1lBAAAAA1sb2NrVW50aWxOYW1lCQABLAAAAAIFAAAACGxvY2tOYW1lAgAAAAYvdW50aWwEAAAAA25vdwQAAAAHJG1hdGNoMAkAA+0AAAABBQAAAAZoZWlnaHQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACUJsb2NrSW5mbwQAAAABYgUAAAAHJG1hdGNoMAgFAAAAAWIAAAAJdGltZXN0YW1wAAAAAAAAAAAABAAAAAhsb2NrZWRCeQQAAAAHJG1hdGNoMAkABBwAAAACBQAAAAR0aGlzBQAAAAhsb2NrTmFtZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKQnl0ZVZlY3RvcgQAAAABYgUAAAAHJG1hdGNoMAUAAAABYggIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAALbG9ja2VkVW50aWwEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAANbG9ja1VudGlsTmFtZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAV1bnRpbAUAAAAHJG1hdGNoMAUAAAAFdW50aWwAAAAAAAAAAAAEAAAAB2NhbkxvY2sDCQAAZgAAAAIFAAAAA25vdwUAAAALbG9ja2VkVW50aWwGCQAAAAAAAAIFAAAACGxvY2tlZEJ5CAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzAwUAAAAHY2FuTG9jawkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAIbG9ja05hbWUICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADWxvY2tVbnRpbE5hbWUJAABkAAAAAgUAAAADbm93AAAAAAAAAAJYBQAAAANuaWwJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAACGxvY2tOYW1lBQAAAAhsb2NrZWRCeQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAANbG9ja1VudGlsTmFtZQUAAAALbG9ja2VkVW50aWwFAAAAA25pbAAAAACGaaqc", "chainId": 84, "height": 882918, "spentComplexity": 0 } View: original | compacted Prev: 62NBkKVzVyUedufzyNsFtHM357jdfRBtFDi9joAtSvA3 Next: HURkJMycQXQsJw5SXMLfYv4H9eUEENkjFRE3iUxPCQWp Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let nameUntilSuffux = ":until"
4+
55
66 @Callable(i)
7-func getLock (lockName,until) = {
8- let lockNameUntil = (lockName + nameUntilSuffux)
9- let blockInfo = blockInfoByHeight(height)
10- let now = match blockInfo {
11- case t: BlockInfo =>
12- t.timestamp
7+func tryGet600SecondsLock (lockName) = {
8+ let lockUntilName = (lockName + "/until")
9+ let now = match blockInfoByHeight(height) {
10+ case b: BlockInfo =>
11+ b.timestamp
1312 case _ =>
14- throw("Cannot get blockinfo")
15- }
16- let notTooLow = if ((now >= until))
17- then throw("Supplied until value is too low")
18- else true
19- let notTooHigh = if ((until > (now + 600000)))
20- then throw("Supplied until value is too high")
21- else true
22- let canBeLocked = match getBinary(this, lockName) {
23- case b: ByteVector =>
24- (b == i.caller.bytes)
25- case Unit =>
26- true
27- }
28- let lastLockTime = match getInteger(this, lockNameUntil) {
29- case t: Int =>
30- t
31- case Unit =>
3213 0
3314 }
34- if (if (if (notTooLow)
35- then notTooHigh
36- else false)
37- then if (canBeLocked)
38- then true
39- else (height >= lastLockTime)
40- else false)
41- then WriteSet([DataEntry(lockName, i.caller.bytes), DataEntry(lockNameUntil, until)])
42- else throw("Lock cant be locked")
15+ let lockedBy = match getBinary(this, lockName) {
16+ case b: ByteVector =>
17+ b
18+ case _ =>
19+ i.caller.bytes
20+ }
21+ let lockedUntil = match getInteger(this, lockUntilName) {
22+ case until: Int =>
23+ until
24+ case _ =>
25+ 0
26+ }
27+ let canLock = if ((now > lockedUntil))
28+ then true
29+ else (lockedBy == i.caller.bytes)
30+ if (canLock)
31+ then WriteSet([DataEntry(lockName, i.caller.bytes), DataEntry(lockUntilName, (now + 600))])
32+ else WriteSet([DataEntry(lockName, lockedBy), DataEntry(lockUntilName, lockedUntil)])
4333 }
4434
4535

github/deemru/w8io/873ac7e 
53.66 ms