tx · G7J4DkXx9icEk37yfyyipA5KJraU2FGkSvicgoMTvYQF

3PCoF5ZnsQJKAJJCoSqUcVVqJ2Dm4fvn9ar:  -0.01000000 Waves

2021.09.30 16:32 [2790765] smart account 3PCoF5ZnsQJKAJJCoSqUcVVqJ2Dm4fvn9ar > SELF 0.00000000 Waves

{ "type": 13, "id": "G7J4DkXx9icEk37yfyyipA5KJraU2FGkSvicgoMTvYQF", "fee": 1000000, "feeAssetId": null, "timestamp": 1633008830811, "version": 2, "chainId": 87, "sender": "3PCoF5ZnsQJKAJJCoSqUcVVqJ2Dm4fvn9ar", "senderPublicKey": "2RFPMtHxVSEG1LnET2FGshyhRepA7zJmx6tPwdHeNpJi", "proofs": [ "5Kk65QsJNjxLnaiDbtFur171FHaYJuk1a26NouPWdgw831ACY7oiPJx4YNNKei5WEr9tGSRQxH7wxHH3NwutYXZ5" ], "script": "base64:AAIFAAAAAAAAAAkIAhIAEgMKAQgAAAADAAAAAA9icmVlZGVyQ29udHJhY3QBAAAAGgFXUiVeI2B2L5G3u+jw9Ht83LEc5U+wJvDuAAAAABFpbmN1YmF0b3JDb250cmFjdAEAAAAaAVcxv5pouTAyfCizFIE+tX4ulYJS5OlG24ABAAAAC2tleUR1Y2tMb2NrAAAAAgAAAA1jYWxsZXJBZGRyZXNzAAAABmR1Y2tJZAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAhhZGRyZXNzXwUAAAANY2FsbGVyQWRkcmVzcwIAAAAGX2R1Y2tfBQAAAAZkdWNrSWQCAAAAB19zdGF0dXMAAAACAAAAAWkBAAAADmxvY2tOZnRGb3JXYXJzAAAAAAoBAAAADWhhbmRsZVBheW1lbnQAAAACAAAABWFjY3VtAAAAB3BheW1lbnQEAAAAB2Fzc2V0SWQJAQAAAAV2YWx1ZQAAAAEIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQEAAAAA25mdAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAD7AAAAAEFAAAAB2Fzc2V0SWQJAAEsAAAAAgIAAAAjVGhlcmUgaXMgbm90IGFzc2V0IHdpdGggc3VjaCBhbiBpZCAJAAJYAAAAAQUAAAAHYXNzZXRJZAMDCQEAAAACIT0AAAACCAUAAAADbmZ0AAAABmlzc3VlcgkBAAAAB0FkZHJlc3MAAAABBQAAAA9icmVlZGVyQ29udHJhY3QJAQAAAAIhPQAAAAIIBQAAAANuZnQAAAAGaXNzdWVyCQEAAAAHQWRkcmVzcwAAAAEFAAAAEWluY3ViYXRvckNvbnRyYWN0BwkAAAIAAAABAgAAACpORlQgd2FzIE5PVCBpc3N1ZWQgYnkgV2F2ZXNEdWNrcyBjb250cmFjdHMEAAAACWtEdWNrTG9jawkBAAAAC2tleUR1Y2tMb2NrAAAAAgkABCUAAAABCAUAAAABaQAAAAxvcmlnaW5DYWxsZXIJAAJYAAAAAQUAAAAHYXNzZXRJZAkABE4AAAACBQAAAAVhY2N1bQkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgUAAAAJa0R1Y2tMb2NrBgUAAAADbmlsCgAAAAACJGwIBQAAAAFpAAAACHBheW1lbnRzCgAAAAACJHMJAAGQAAAAAQUAAAACJGwKAAAAAAUkYWNjMAUAAAADbmlsCgEAAAABMQAAAAIAAAACJGEAAAACJGkDCQAAZwAAAAIFAAAAAiRpBQAAAAIkcwUAAAACJGEJAQAAAA1oYW5kbGVQYXltZW50AAAAAgUAAAACJGEJAAGRAAAAAgUAAAACJGwFAAAAAiRpCgEAAAABMgAAAAIAAAACJGEAAAACJGkDCQAAZwAAAAIFAAAAAiRpBQAAAAIkcwUAAAACJGEJAAACAAAAAQIAAAAUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQAAAAEyAAAAAgkBAAAAATEAAAACCQEAAAABMQAAAAIJAQAAAAExAAAAAgkBAAAAATEAAAACCQEAAAABMQAAAAIJAQAAAAExAAAAAgkBAAAAATEAAAACCQEAAAABMQAAAAIJAQAAAAExAAAAAgkBAAAAATEAAAACBQAAAAUkYWNjMAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAgAAAAAAAAAAAwAAAAAAAAAABAAAAAAAAAAABQAAAAAAAAAABgAAAAAAAAAABwAAAAAAAAAACAAAAAAAAAAACQAAAAAAAAAACgAAAAFpAQAAABB1bmxvY2tOZnRGb3JXYXJzAAAAAQAAAAdkdWNrSWRzBAAAAAtkdWNrSWRzTGlzdAkABLUAAAACBQAAAAdkdWNrSWRzAgAAAAE7AwkAAGYAAAACCQABkAAAAAEFAAAAC2R1Y2tJZHNMaXN0AAAAAAAAAAAKCQAAAgAAAAECAAAAN1lvdSBjYW5ub3QgdW5sb2NrIG1vcmUgdGhhbiAxMCBkdWNrcyBpbiBvbmUgdHJhbnNhY3Rpb24KAQAAABNoYW5kbGVVbmxvY2tPbmVEdWNrAAAAAgAAAAVhY2N1bQAAAAZkdWNrSWQEAAAACWtEdWNrTG9jawkBAAAAC2tleUR1Y2tMb2NrAAAAAgkABCUAAAABCAUAAAABaQAAAAxvcmlnaW5DYWxsZXIFAAAABmR1Y2tJZAQAAAAPZHVja0xvY2tlZFZhbHVlCQAEGwAAAAIFAAAABHRoaXMFAAAACWtEdWNrTG9jawQAAAAMZHVja0lzTG9ja2VkBAAAAAckbWF0Y2gwBQAAAA9kdWNrTG9ja2VkVmFsdWUDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAB0Jvb2xlYW4EAAAAAXQFAAAAByRtYXRjaDAFAAAAAXQHAwkAAAAAAAACBQAAAAxkdWNrSXNMb2NrZWQHCQAAAgAAAAEJAAEsAAAAAgIAAAAoV2hoaGhhdCwgdGhlIGR1Y2sgaXMgbm90IGxvY2tlZCBieSB5b3U6IAUAAAAGZHVja0lkCQAETgAAAAIFAAAABWFjY3VtCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEFAAAACWtEdWNrTG9jawkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAxvcmlnaW5DYWxsZXIAAAAAAAAAAAEJAAJZAAAAAQUAAAAGZHVja0lkBQAAAANuaWwKAAAAAAIkbAUAAAALZHVja0lkc0xpc3QKAAAAAAIkcwkAAZAAAAABBQAAAAIkbAoAAAAABSRhY2MwBQAAAANuaWwKAQAAAAExAAAAAgAAAAIkYQAAAAIkaQMJAABnAAAAAgUAAAACJGkFAAAAAiRzBQAAAAIkYQkBAAAAE2hhbmRsZVVubG9ja09uZUR1Y2sAAAACBQAAAAIkYQkAAZEAAAACBQAAAAIkbAUAAAACJGkKAQAAAAEyAAAAAgAAAAIkYQAAAAIkaQMJAABnAAAAAgUAAAACJGkFAAAAAiRzBQAAAAIkYQkAAAIAAAABAgAAABRMaXN0IHNpemUgZXhjZWVkcyAxMAkBAAAAATIAAAACCQEAAAABMQAAAAIJAQAAAAExAAAAAgkBAAAAATEAAAACCQEAAAABMQAAAAIJAQAAAAExAAAAAgkBAAAAATEAAAACCQEAAAABMQAAAAIJAQAAAAExAAAAAgkBAAAAATEAAAACCQEAAAABMQAAAAIFAAAABSRhY2MwAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAACAAAAAAAAAAADAAAAAAAAAAAEAAAAAAAAAAAFAAAAAAAAAAAGAAAAAAAAAAAHAAAAAAAAAAAIAAAAAAAAAAAJAAAAAAAAAAAKAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXmjS2io", "height": 2790765, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: E7SxXoAvM62i3VZ1RrqpMaZSokgNLx2BgXnrTRwaxDQn Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 5 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let breederContract = base58'3P9REuLBnYBafDqtEu6hfzs2Rv2haSU158y'
5+
6+let incubatorContract = base58'3P6TwNU39Ykkbeqhn5TE4a2736xsA1vXemM'
7+
8+func keyDuckLock (callerAddress,duckId) = (((("address_" + callerAddress) + "_duck_") + duckId) + "_status")
9+
10+
11+@Callable(i)
12+func lockNftForWars () = {
13+ func handlePayment (accum,payment) = {
14+ let assetId = value(payment.assetId)
15+ let nft = valueOrErrorMessage(assetInfo(assetId), ("There is not asset with such an id " + toBase58String(assetId)))
16+ if (if ((nft.issuer != Address(breederContract)))
17+ then (nft.issuer != Address(incubatorContract))
18+ else false)
19+ then throw("NFT was NOT issued by WavesDucks contracts")
20+ else {
21+ let kDuckLock = keyDuckLock(toString(i.originCaller), toBase58String(assetId))
22+ (accum ++ [BooleanEntry(kDuckLock, true)])
23+ }
24+ }
25+
26+ let $l = i.payments
27+ let $s = size($l)
28+ let $acc0 = nil
29+ func 1 ($a,$i) = if (($i >= $s))
30+ then $a
31+ else handlePayment($a, $l[$i])
32+
33+ func 2 ($a,$i) = if (($i >= $s))
34+ then $a
35+ else throw("List size exceeds 10")
36+
37+ 2(1(1(1(1(1(1(1(1(1(1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
38+ }
39+
40+
41+
42+@Callable(i)
43+func unlockNftForWars (duckIds) = {
44+ let duckIdsList = split(duckIds, ";")
45+ if ((size(duckIdsList) > 10))
46+ then throw("You cannot unlock more than 10 ducks in one transaction")
47+ else {
48+ func handleUnlockOneDuck (accum,duckId) = {
49+ let kDuckLock = keyDuckLock(toString(i.originCaller), duckId)
50+ let duckLockedValue = getBoolean(this, kDuckLock)
51+ let duckIsLocked = match duckLockedValue {
52+ case t: Boolean =>
53+ t
54+ case _ =>
55+ false
56+ }
57+ if ((duckIsLocked == false))
58+ then throw(("Whhhhat, the duck is not locked by you: " + duckId))
59+ else (accum ++ [DeleteEntry(kDuckLock), ScriptTransfer(i.originCaller, 1, fromBase58String(duckId))])
60+ }
61+
62+ let $l = duckIdsList
63+ let $s = size($l)
64+ let $acc0 = nil
65+ func 1 ($a,$i) = if (($i >= $s))
66+ then $a
67+ else handleUnlockOneDuck($a, $l[$i])
68+
69+ func 2 ($a,$i) = if (($i >= $s))
70+ then $a
71+ else throw("List size exceeds 10")
72+
73+ 2(1(1(1(1(1(1(1(1(1(1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
74+ }
75+ }
76+
77+
78+@Verifier(tx)
79+func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
80+

github/deemru/w8io/873ac7e 
62.69 ms