tx · EXwNpFyQTMEuMj5jXgaWK39M2TgcavB8UCLZmGcD4mxU 3NA3LRSigk6knLZ16uTzcdLNow2EQZtXTaJ: -0.01400000 Waves 2022.05.23 17:15 [2064434] smart account 3NA3LRSigk6knLZ16uTzcdLNow2EQZtXTaJ > SELF 0.00000000 Waves
{ "type": 13, "id": "EXwNpFyQTMEuMj5jXgaWK39M2TgcavB8UCLZmGcD4mxU", "fee": 1400000, "feeAssetId": null, "timestamp": 1653315357938, "version": 2, "chainId": 84, "sender": "3NA3LRSigk6knLZ16uTzcdLNow2EQZtXTaJ", "senderPublicKey": "ApEZSyUFWsckB3mZSWm3spfm6UPyDhMdrpxNhydohYs1", "proofs": [ "531YCJC9oks1cWd8nswUW9tTbDV7KVL8yhSw3vyFMVj7z1DiXyAgr8JijpShYFwBECJPvkbxaHZTYxyhsvJsdBPC" ], "script": "base64:AAIFAAAAAAAAAAQIAhIAAAAATAAAAAAJc2VwYXJhdG9yAgAAAAFfAAAAAAZnb3ZBcHAJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAECAAAAIzNNeXhmd3ZidWVVQnluWUhmUXN1dE5YWk5xTm96R2lNbnNHAAAAAAhjaGFyc0FwcAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQIAAAAjM05BM0xSU2lnazZrbkxaMTZ1VHpjZExOb3cyRVFadFhUYUoAAAAACGxhbmRzQXBwCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzTXhpSkxyWTZRYTViU1l4eFNGSFNHNWJWVjJuNTl4MU1HbgAAAAAKYmF0dGxlc0FwcAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQIAAAAjM011SDlOZ3BvR2FTUXVmRVFMUFJpa1hOUzlQWGhraGNMenAAAAAAFWtleUVjb3N5c3RlbUFkZHJlc3NlcwIAAAATZWNvc3lzdGVtX2FkZHJlc3NlcwAAAAAKa2V5VG9rZW5JZAIAAAAIdG9rZW5faWQAAAAAFGtleVRva2VuRW1pc3Npb25SYXRlAgAAABN0b2tlbl9lbWlzc2lvbl9yYXRlAAAAABFrZXlUb2tlbkdlbmVyYXRlZAIAAAAPdG9rZW5fZ2VuZXJhdGVkAAAAABtrZXlUb2tlbkdlbmVyYXRlZExhc3RVcGRhdGUCAAAAG3Rva2VuX2dlbmVyYXRlZF9sYXN0X3VwZGF0ZQAAAAASa2V5Q2hhcnNCb2R5QW1vdW50AgAAABFjaGFyc19ib2R5X2Ftb3VudAAAAAASa2V5Q2hhcnNFeWVzQW1vdW50AgAAABFjaGFyc19leWVzX2Ftb3VudAAAAAATa2V5Q2hhcnNNb3V0aEFtb3VudAIAAAASY2hhcnNfbW91dGhfYW1vdW50AAAAABhrZXlDaGFyc1N0YXRzVGllcnNSYW5nZXMCAAAAGGNoYXJzX3N0YXRzX3RpZXJzX3JhbmdlcwAAAAAea2V5Q2hhcnNOYXR1cmFsRWxlbUJvbnVzUmFuZ2VzAgAAAB9jaGFyc19uYXR1cmFsX2VsZW1fYm9udXNfcmFuZ2VzAAAAACBrZXlDaGFyc05hdHVyYWxCYXR0bGVCb251c1JhbmdlcwIAAAAhY2hhcnNfbmF0dXJhbF9iYXR0bGVfYm9udXNfcmFuZ2VzAAAAACRrZXlDaGFyc05hdHVyYWxHZW5lcmF0aW5nQm9udXNSYW5nZXMCAAAAJWNoYXJzX25hdHVyYWxfZ2VuZXJhdGluZ19ib251c19yYW5nZXMAAAAADWtleVRvdGFsTGFuZHMCAAAAC3RvdGFsX2xhbmRzAAAAABNrZXlCYXR0bGVSZXN0UGVyaW9kAgAAABJiYXR0bGVfcmVzdF9wZXJpb2QAAAAAGWtleUJhdHRsZVdpbkNoYW5jZUhhcmRjYXACAAAAGWJhdHRsZV93aW5fY2hhbmNlX2hhcmRjYXAAAAAAHmtleUJhdHRsZVdpbkNoYW5jZUluY3JQZXJCbG9jawIAAAAgYmF0dGxlX3dpbl9jaGFuY2VfaW5jcl9wZXJfYmxvY2sAAAAAGWtleUJhdHRsZUxvb3RSYXJpdHlSYW5nZXMCAAAAGWJhdHRsZV9sb290X3Jhcml0eV9yYW5nZXMAAAAAEmtleUl0ZW1zQ2F0ZWdvcmllcwIAAAAQaXRlbXNfY2F0ZWdvcmllcwAAAAATa2V5SXRlbXNUeXBlc1BlckNhdAIAAAATaXRlbXNfdHlwZXNfcGVyX2NhdAAAAAAVa2V5SXRlbXNFZmZlY3RzQW1vdW50AgAAABRpdGVtc19lZmZlY3RzX2Ftb3VudAAAAAAYa2V5aXRlbXNFZmZlY3RzTWF4UmFuZ2VzAgAAABdpdGVtc19lZmZlY3RzX21heF9yYW5nZQAAAAANa2V5Q2hhcnNDb3VudAIAAAALY2hhcnNfY291bnQAAAAACGtleU93bmVyAgAAAAVvd25lcgAAAAANa2V5QXBwZWFyYW5jZQIAAAAKYXBwZWFyYW5jZQAAAAATa2V5TmF0dXJhbFB5cm9Cb251cwIAAAASbmF0dXJhbF9weXJvX2JvbnVzAAAAABNrZXlOYXR1cmFsQXF1YUJvbnVzAgAAABJuYXR1cmFsX2FxdWFfYm9udXMAAAAAFGtleU5hdHVyYWxUZXJyYUJvbnVzAgAAABNuYXR1cmFsX3RlcnJhX2JvbnVzAAAAABNrZXlOYXR1cmFsQWVyb0JvbnVzAgAAABJuYXR1cmFsX2Flcm9fYm9udXMAAAAAFWtleU5hdHVyYWxCYXR0bGVCb251cwIAAAAUbmF0dXJhbF9iYXR0bGVfYm9udXMAAAAAGWtleU5hdHVyYWxHZW5lcmF0aW5nQm9udXMCAAAAGG5hdHVyYWxfZ2VuZXJhdGluZ19ib251cwAAAAASa2V5Q2hhckN1cnJlbnRMYW5kAgAAABFjaGFyX2N1cnJlbnRfbGFuZAAAAAAQa2V5TGFuZFB5cm9Qb3dlcgIAAAAPbGFuZF9weXJvX3Bvd2VyAAAAABBrZXlMYW5kQXF1YVBvd2VyAgAAAA9sYW5kX2FxdWFfcG93ZXIAAAAAEWtleUxhbmRUZXJyYVBvd2VyAgAAABBsYW5kX3RlcnJhX3Bvd2VyAAAAABBrZXlMYW5kQWVyb1Bvd2VyAgAAAA9sYW5kX2Flcm9fcG93ZXIAAAAAEmtleUNoYXJUb3RhbEluY29tZQIAAAARY2hhcl90b3RhbF9pbmNvbWUAAAAAFWtleUFkZHJlc3NUb3RhbEluY29tZQIAAAAUYWRkcmVzc190b3RhbF9pbmNvbWUAAAAAEGtleUNoYXJQeXJvUG93ZXICAAAAD2NoYXJfcHlyb19wb3dlcgAAAAAQa2V5Q2hhckFxdWFQb3dlcgIAAAAPY2hhcl9hcXVhX3Bvd2VyAAAAABFrZXlDaGFyVGVycmFQb3dlcgIAAAAQY2hhcl90ZXJyYV9wb3dlcgAAAAAQa2V5Q2hhckFlcm9Qb3dlcgIAAAAPY2hhcl9hZXJvX3Bvd2VyAAAAABhrZXlDaGFySW5pdGlhbFB5cm9TaGFyZXMCAAAAGGNoYXJfaW5pdGlhbF9weXJvX3NoYXJlcwAAAAAYa2V5Q2hhckluaXRpYWxBcXVhU2hhcmVzAgAAABhjaGFyX2luaXRpYWxfYXF1YV9zaGFyZXMAAAAAGWtleUNoYXJJbml0aWFsVGVycmFTaGFyZXMCAAAAGWNoYXJfaW5pdGlhbF90ZXJyYV9zaGFyZXMAAAAAGGtleUNoYXJJbml0aWFsQWVyb1NoYXJlcwIAAAAYY2hhcl9pbml0aWFsX2Flcm9fc2hhcmVzAAAAACNrZXlDaGFySW5pdGlhbExhbmRQeXJvR3JhbnRlZFRva2VucwIAAAAlY2hhcl9pbml0aWFsX2xhbmRfcHlyb19ncmFudGVkX3Rva2VucwAAAAAja2V5Q2hhckluaXRpYWxMYW5kQXF1YUdyYW50ZWRUb2tlbnMCAAAAJWNoYXJfaW5pdGlhbF9sYW5kX2FxdWFfZ3JhbnRlZF90b2tlbnMAAAAAJGtleUNoYXJJbml0aWFsTGFuZFRlcnJhR3JhbnRlZFRva2VucwIAAAAmY2hhcl9pbml0aWFsX2xhbmRfdGVycmFfZ3JhbnRlZF90b2tlbnMAAAAAI2tleUNoYXJJbml0aWFsTGFuZEFlcm9HcmFudGVkVG9rZW5zAgAAACVjaGFyX2luaXRpYWxfbGFuZF9hZXJvX2dyYW50ZWRfdG9rZW5zAAAAACJrZXlMYW5kTGFzdFRva2VuRGlzdHJpYnV0aW9uVXBkYXRlAgAAACNsYW5kX21hc3RfdG9rZW5fZGlzdHJpYnV0aW9uX3VwZGF0ZQAAAAAda2V5TGFuZFB5cm9Ub3RhbEdyYW50ZWRUb2tlbnMCAAAAHmxhbmRfcHlyb190b3RhbF9ncmFudGVkX3Rva2VucwAAAAAda2V5TGFuZEFxdWFUb3RhbEdyYW50ZWRUb2tlbnMCAAAAHmxhbmRfYXF1YV90b3RhbF9ncmFudGVkX3Rva2VucwAAAAAea2V5TGFuZFRlcnJhVG90YWxHcmFudGVkVG9rZW5zAgAAAB9sYW5kX3RlcnJhX3RvdGFsX2dyYW50ZWRfdG9rZW5zAAAAAB1rZXlMYW5kQWVyb1RvdGFsR3JhbnRlZFRva2VucwIAAAAebGFuZF9hZXJvX3RvdGFsX2dyYW50ZWRfdG9rZW5zAAAAABNrZXlMYXN0QmF0dGxlSGVpZ2h0AgAAABJsYXN0X2JhdHRsZV9oZWlnaHQAAAAADWtleUl0ZW1zQ291bnQCAAAAC2l0ZW1zX2NvdW50AAAAAAxrZXlJdGVtT3duZXICAAAACml0ZW1fb3duZXIAAAAAD2tleUl0ZW1DYXRlZ29yeQIAAAANaXRlbV9jYXRlZ29yeQAAAAALa2V5SXRlbVR5cGUCAAAACWl0ZW1fdHlwZQAAAAAOa2V5SXRlbUVmZmVjdHMCAAAADGl0ZW1fZWZmZWN0cwAAAAATa2V5SXRlbUlzRXF1aXBwZWRCeQIAAAATaXRlbV9pc19lcXVpcHBlZF9ieQAAAAANa2V5Q2hhcldlYXBvbgIAAAALY2hhcl93ZWFwb24AAAAADGtleUNoYXJBcm1vcgIAAAAKY2hhcl9h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b25jZQAAAAAAAAAABgAAAAEAAAABaQEAAAAKY3JlYXRlQ2hhcgAAAAADCQEAAAACIT0AAAACCQEAAAAMaW52b2tlQ2hlY2tzAAAAAQgFAAAAAWkAAAAGY2FsbGVyBgkBAAAABXRocm93AAAAAAQAAAAEdHhJZAgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAQAAAAKY2FsbGVyQWRkcgkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAZjaGFySWQJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAANa2V5Q2hhcnNDb3VudAAAAAAAAAAAAQQAAAAMYm9kaWVzQW1vdW50CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAZnb3ZBcHAFAAAAEmtleUNoYXJzQm9keUFtb3VudAQAAAAKZXllc0Ftb3VudAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAGZ292QXBwBQAAABJrZXlDaGFyc0V5ZXNBbW91bnQEAAAADG1vdXRoc0Ftb3VudAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAGZ292QXBwBQAAABNrZXlDaGFyc01vdXRoQW1vdW50BAAAABBzdGF0c1RpZXJzUmFuZ2VzCQAEtQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABmdvdkFwcAUAAAAYa2V5Q2hhcnNTdGF0c1RpZXJzUmFuZ2VzBQAAAAlzZXBhcmF0b3IEAAAAEm5hdEVsZW1Cb251c1JhbmdlcwkABLUAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAZnb3ZBcHAFAAAAHmtleUNoYXJzTmF0dXJhbEVsZW1Cb251c1JhbmdlcwUAAAAJc2VwYXJhdG9yBAAAABRuYXRCYXR0bGVCb251c1JhbmdlcwkABLUAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAZnb3ZBcHAFAAAAIGtleUNoYXJzTmF0dXJhbEJhdHRsZUJvbnVzUmFuZ2VzBQAAAAlzZXBhcmF0b3IEAAAAGG5hdEdlbmVyYXRpbmdCb251c1JhbmdlcwkABLUAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAZnb3ZBcHAFAAAAJGtleUNoYXJzTmF0dXJhbEdlbmVyYXRpbmdCb251c1JhbmdlcwUAAAAJc2VwYXJhdG9yBAAAAAphcHBlYXJhbmNlCQAEuQAAAAIJAARMAAAAAgkAAaQAAAABCQEAAAAHcmFuZEludAAAAAQAAAAAAAAAAAEFAAAADGJvZGllc0Ftb3VudAUAAAAEdHhJZAAAAAAAAAAAAAkABEwAAAACCQABpAAAAAEJAQAAAAdyYW5kSW50AAAABAAAAAAAAAAAAQUAAAAKZXllc0Ftb3VudAUAAAAEdHhJZAAAAAAAAAAAAQkABEwAAAACCQABpAAAAAEJAQAAAAdyYW5kSW50AAAABAAAAAAAAAAAAQUAAAAMbW91dGhzQW1vdW50BQAAAAR0eElkAAAAAAAAAAACBQAAAANuaWwFAAAACXNlcGFyYXRvcgQAAAAMbmF0UHlyb0JvbnVzCQEAAAAVZ2VuUmFuZG9tTmF0dXJhbEJvbnVzAAAABAUAAAAQc3RhdHNUaWVyc1JhbmdlcwUAAAASbmF0RWxlbUJvbnVzUmFuZ2VzAAAAAAAAAAADBQAAAAR0eElkBAAAAAxuYXRBcXVhQm9udXMJAQAAABVnZW5SYW5kb21OYXR1cmFsQm9udXMAAAAEBQAAABBzdGF0c1RpZXJzUmFuZ2VzBQAAABJuYXRFbGVtQm9udXNSYW5nZXMAAAAAAAAAAAoFAAAABHR4SWQEAAAADW5hdFRlcnJhQm9udXMJAQAAABVnZW5SYW5kb21OYXR1cmFsQm9udXMAAAAEBQAAABBzdGF0c1RpZXJzUmFuZ2VzBQAAABJuYXRFbGVtQm9udXNSYW5nZXMAAAAAAAAAABEFAAAABHR4SWQEAAAADG5hdEFlcm9Cb251cwkBAAAAFWdlblJhbmRvbU5hdHVyYWxCb251cwAAAAQFAAAAEHN0YXRzVGllcnNSYW5nZXMFAAAAEm5hdEVsZW1Cb251c1JhbmdlcwAAAAAAAAAAGAUAAAAEdHhJZAQAAAASbmF0R2VuZXJhdGluZ0JvbnVzCQEAAAAVZ2VuUmFuZG9tTmF0dXJhbEJvbnVzAAAABAUAAAAQc3RhdHNUaWVyc1JhbmdlcwUAAAAYbmF0R2VuZXJhdGluZ0JvbnVzUmFuZ2VzAAAAAAAAAAAfBQAAAAR0eElkBAAAAA5uYXRCYXR0bGVCb251cwkBAAAAFWdlblJhbmRvbU5hdHVyYWxCb251cwAAAAQFAAAAEHN0YXRzVGllcnNSYW5nZXMFAAAAFG5hdEJhdHRsZUJvbnVzUmFuZ2VzAAAAAAAAAAAmBQAAAAR0eElkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAIa2V5T3duZXIFAAAABmNoYXJJZAUAAAAKY2FsbGVyQWRkcgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAADWtleUFwcGVhcmFuY2UFAAAABmNoYXJJZAUAAAAKYXBwZWFyYW5jZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABNrZXlOYXR1cmFsUHlyb0JvbnVzBQAAAAZjaGFySWQFAAAADG5hdFB5cm9Cb251cwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABNrZXlOYXR1cmFsQXF1YUJvbnVzBQAAAAZjaGFySWQFAAAADG5hdEFxdWFCb251cwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABRrZXlOYXR1cmFsVGVycmFCb251cwUAAAAGY2hhcklkBQAAAA1uYXRUZXJyYUJvbnVzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAE2tleU5hdHVyYWxBZXJvQm9udXMFAAAABmNoYXJJZAUAAAAMbmF0QWVyb0JvbnVzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAFWtleU5hdHVyYWxCYXR0bGVCb251cwUAAAAGY2hhcklkBQAAAA5uYXRCYXR0bGVCb251cwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABlrZXlOYXR1cmFsR2VuZXJhdGluZ0JvbnVzBQAAAAZjaGFySWQFAAAAEm5hdEdlbmVyYXRpbmdCb251cwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAANa2V5Q2hhcnNDb3VudAkAAGQAAAACBQAAAAZjaGFySWQAAAAAAAAAAAEFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V53U0+zg==", "height": 2064434, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EH6F1nYWZQHZZXjnwRsM9abBC79iw7zqgFtdv48bLezg Next: F8T3oZf5rg8yhCFrpxmCddnhUKogcYZ5Njw2ywvTszpw Diff:
Old | New | Differences | |
---|---|---|---|
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = "_" | |
5 | 5 | ||
6 | - | let b = " | |
6 | + | let b = addressFromStringValue("3MyxfwvbueUBynYHfQsutNXZNqNozGiMnsG") | |
7 | 7 | ||
8 | - | let c = " | |
8 | + | let c = addressFromStringValue("3NA3LRSigk6knLZ16uTzcdLNow2EQZtXTaJ") | |
9 | 9 | ||
10 | - | let d = " | |
10 | + | let d = addressFromStringValue("3MxiJLrY6Qa5bSYxxSFHSG5bVV2n59x1MGn") | |
11 | 11 | ||
12 | - | let e = " | |
12 | + | let e = addressFromStringValue("3MuH9NgpoGaSQufEQLPRikXNS9PXhkhcLzp") | |
13 | 13 | ||
14 | - | let f = " | |
14 | + | let f = "ecosystem_addresses" | |
15 | 15 | ||
16 | - | let g = " | |
16 | + | let g = "token_id" | |
17 | 17 | ||
18 | - | let h = " | |
18 | + | let h = "token_emission_rate" | |
19 | 19 | ||
20 | - | let i = " | |
20 | + | let i = "token_generated" | |
21 | 21 | ||
22 | - | let j = " | |
22 | + | let j = "token_generated_last_update" | |
23 | 23 | ||
24 | - | let k = | |
24 | + | let k = "chars_body_amount" | |
25 | 25 | ||
26 | - | let l = " | |
26 | + | let l = "chars_eyes_amount" | |
27 | 27 | ||
28 | - | let m = "chars_ | |
28 | + | let m = "chars_mouth_amount" | |
29 | 29 | ||
30 | - | let n = "chars_ | |
30 | + | let n = "chars_stats_tiers_ranges" | |
31 | 31 | ||
32 | - | let o = "chars_ | |
32 | + | let o = "chars_natural_elem_bonus_ranges" | |
33 | 33 | ||
34 | - | let p = "chars_ | |
34 | + | let p = "chars_natural_battle_bonus_ranges" | |
35 | 35 | ||
36 | - | let q = "chars_natural_ | |
36 | + | let q = "chars_natural_generating_bonus_ranges" | |
37 | 37 | ||
38 | - | let r = " | |
38 | + | let r = "total_lands" | |
39 | 39 | ||
40 | - | let s = " | |
40 | + | let s = "battle_rest_period" | |
41 | 41 | ||
42 | - | func t (u) = if ((isDataStorageUntouched(k) != false)) | |
42 | + | let t = "battle_win_chance_hardcap" | |
43 | + | ||
44 | + | let u = "battle_win_chance_incr_per_block" | |
45 | + | ||
46 | + | let v = "battle_loot_rarity_ranges" | |
47 | + | ||
48 | + | let w = "items_categories" | |
49 | + | ||
50 | + | let x = "items_types_per_cat" | |
51 | + | ||
52 | + | let y = "items_effects_amount" | |
53 | + | ||
54 | + | let z = "items_effects_max_range" | |
55 | + | ||
56 | + | let A = "chars_count" | |
57 | + | ||
58 | + | let B = "owner" | |
59 | + | ||
60 | + | let C = "appearance" | |
61 | + | ||
62 | + | let D = "natural_pyro_bonus" | |
63 | + | ||
64 | + | let E = "natural_aqua_bonus" | |
65 | + | ||
66 | + | let F = "natural_terra_bonus" | |
67 | + | ||
68 | + | let G = "natural_aero_bonus" | |
69 | + | ||
70 | + | let H = "natural_battle_bonus" | |
71 | + | ||
72 | + | let I = "natural_generating_bonus" | |
73 | + | ||
74 | + | let J = "char_current_land" | |
75 | + | ||
76 | + | let K = "land_pyro_power" | |
77 | + | ||
78 | + | let L = "land_aqua_power" | |
79 | + | ||
80 | + | let M = "land_terra_power" | |
81 | + | ||
82 | + | let N = "land_aero_power" | |
83 | + | ||
84 | + | let O = "char_total_income" | |
85 | + | ||
86 | + | let P = "address_total_income" | |
87 | + | ||
88 | + | let Q = "char_pyro_power" | |
89 | + | ||
90 | + | let R = "char_aqua_power" | |
91 | + | ||
92 | + | let S = "char_terra_power" | |
93 | + | ||
94 | + | let T = "char_aero_power" | |
95 | + | ||
96 | + | let U = "char_initial_pyro_shares" | |
97 | + | ||
98 | + | let V = "char_initial_aqua_shares" | |
99 | + | ||
100 | + | let W = "char_initial_terra_shares" | |
101 | + | ||
102 | + | let X = "char_initial_aero_shares" | |
103 | + | ||
104 | + | let Y = "char_initial_land_pyro_granted_tokens" | |
105 | + | ||
106 | + | let Z = "char_initial_land_aqua_granted_tokens" | |
107 | + | ||
108 | + | let aa = "char_initial_land_terra_granted_tokens" | |
109 | + | ||
110 | + | let ab = "char_initial_land_aero_granted_tokens" | |
111 | + | ||
112 | + | let ac = "land_mast_token_distribution_update" | |
113 | + | ||
114 | + | let ad = "land_pyro_total_granted_tokens" | |
115 | + | ||
116 | + | let ae = "land_aqua_total_granted_tokens" | |
117 | + | ||
118 | + | let af = "land_terra_total_granted_tokens" | |
119 | + | ||
120 | + | let ag = "land_aero_total_granted_tokens" | |
121 | + | ||
122 | + | let ah = "last_battle_height" | |
123 | + | ||
124 | + | let ai = "items_count" | |
125 | + | ||
126 | + | let aj = "item_owner" | |
127 | + | ||
128 | + | let ak = "item_category" | |
129 | + | ||
130 | + | let al = "item_type" | |
131 | + | ||
132 | + | let am = "item_effects" | |
133 | + | ||
134 | + | let an = "item_is_equipped_by" | |
135 | + | ||
136 | + | let ao = "char_weapon" | |
137 | + | ||
138 | + | let ap = "char_armor" | |
139 | + | ||
140 | + | let aq = "char_jewel" | |
141 | + | ||
142 | + | let ar = "item_effects_values_per_types" | |
143 | + | ||
144 | + | func as (at) = if ((isDataStorageUntouched(b) != false)) | |
43 | 145 | then throw("Governing app not ready") | |
44 | 146 | else { | |
45 | - | let | |
46 | - | if ((contains( | |
147 | + | let au = getStringValue(b, f) | |
148 | + | if ((contains(au, toString(at)) != false)) | |
47 | 149 | then throw("Access denied") | |
48 | 150 | else true | |
49 | 151 | } | |
50 | 152 | ||
51 | 153 | ||
52 | - | func w (x,y) = { | |
53 | - | let z = { | |
54 | - | let A = y | |
55 | - | if ($isInstanceOf(A, "Int")) | |
56 | - | then { | |
57 | - | let B = A | |
58 | - | toString(B) | |
59 | - | } | |
60 | - | else if ($isInstanceOf(A, "String")) | |
61 | - | then { | |
62 | - | let C = A | |
63 | - | C | |
64 | - | } | |
65 | - | else throw("Matching issue in with function") | |
66 | - | } | |
67 | - | ((z + a) + x) | |
154 | + | func av (aw) = if ((contains(getStringValue(this, f), toBase58String(aw.bytes)) != true)) | |
155 | + | then throw("Access denied ") | |
156 | + | else true | |
157 | + | ||
158 | + | ||
159 | + | func ax (ay,az) = makeString([toString(az), ay], a) | |
160 | + | ||
161 | + | ||
162 | + | func aA (ay,az) = makeString([az, ay], a) | |
163 | + | ||
164 | + | ||
165 | + | func aB (aC,aD,aE,aF) = { | |
166 | + | let aG = value(sha256_16Kb(((value(value(blockInfoByHeight(height)).vrf) + aE) + toBytes(aF)))) | |
167 | + | value(((value(toInt(aG)) % ((aD - aC) + 1)) + aC)) | |
68 | 168 | } | |
69 | 169 | ||
70 | 170 | ||
71 | - | func D (E,F,G,H) = { | |
72 | - | let I = value(sha256_16Kb(((value(value(blockInfoByHeight(height)).vrf) + G) + toBytes(H)))) | |
73 | - | value(((value(toInt(I)) % ((F - E) + 1)) + E)) | |
171 | + | func aH (aI,aJ,aK,aE) = { | |
172 | + | let aL = parseIntValue(aI[0]) | |
173 | + | let aM = parseIntValue(aI[1]) | |
174 | + | let aN = parseIntValue(aI[2]) | |
175 | + | let aO = parseIntValue(aI[3]) | |
176 | + | let aP = parseIntValue(aI[4]) | |
177 | + | let aQ = parseIntValue(aI[5]) | |
178 | + | let aR = parseIntValue(aJ[0]) | |
179 | + | let aS = parseIntValue(aJ[1]) | |
180 | + | let aT = parseIntValue(aJ[2]) | |
181 | + | let aU = parseIntValue(aJ[3]) | |
182 | + | let aV = parseIntValue(aJ[4]) | |
183 | + | let aW = parseIntValue(aJ[5]) | |
184 | + | let aX = aB(0, 10000, aE, aK) | |
185 | + | if ((aL >= aX)) | |
186 | + | then aB(0, aR, aE, (aK + 1)) | |
187 | + | else if ((aM >= aX)) | |
188 | + | then aB((aR + 1), aS, aE, (aK + 2)) | |
189 | + | else if ((aN >= aX)) | |
190 | + | then aB((aS + 1), aT, aE, (aK + 3)) | |
191 | + | else if ((aO >= aX)) | |
192 | + | then aB((aT + 1), aU, aE, (aK + 4)) | |
193 | + | else if ((aP >= aX)) | |
194 | + | then aB((aU + 1), aV, aE, (aK + 5)) | |
195 | + | else aB((aV + 1), aW, aE, (aK + 6)) | |
74 | 196 | } | |
75 | 197 | ||
76 | 198 | ||
77 | - | func J (K,L,M,G) = { | |
78 | - | let N = parseIntValue(K[0]) | |
79 | - | let O = parseIntValue(K[1]) | |
80 | - | let P = parseIntValue(K[2]) | |
81 | - | let Q = parseIntValue(K[3]) | |
82 | - | let R = parseIntValue(K[4]) | |
83 | - | let S = parseIntValue(K[5]) | |
84 | - | let T = parseIntValue(L[0]) | |
85 | - | let U = parseIntValue(L[1]) | |
86 | - | let V = parseIntValue(L[2]) | |
87 | - | let W = parseIntValue(L[3]) | |
88 | - | let X = parseIntValue(L[4]) | |
89 | - | let Y = parseIntValue(L[5]) | |
90 | - | let Z = D(0, 10000, G, M) | |
91 | - | if ((N >= Z)) | |
92 | - | then D(0, T, G, (M + 1)) | |
93 | - | else if ((O >= Z)) | |
94 | - | then D((T + 1), U, G, (M + 2)) | |
95 | - | else if ((P >= Z)) | |
96 | - | then D((U + 1), V, G, (M + 3)) | |
97 | - | else if ((Q >= Z)) | |
98 | - | then D((V + 1), W, G, (M + 4)) | |
99 | - | else if ((R >= Z)) | |
100 | - | then D((W + 1), X, G, (M + 5)) | |
101 | - | else D((X + 1), Y, G, (M + 6)) | |
102 | - | } | |
103 | - | ||
104 | - | ||
105 | - | @Callable(aa) | |
106 | - | func createChar () = if ((t(aa.caller) != true)) | |
199 | + | @Callable(aY) | |
200 | + | func createChar () = if ((as(aY.caller) != true)) | |
107 | 201 | then throw() | |
108 | 202 | else { | |
109 | - | let | |
110 | - | let | |
111 | - | let | |
112 | - | let | |
113 | - | let | |
114 | - | let | |
115 | - | let | |
116 | - | let | |
117 | - | let | |
118 | - | let | |
119 | - | let | |
120 | - | let | |
121 | - | let | |
122 | - | let | |
123 | - | let | |
124 | - | let | |
125 | - | let | |
126 | - | [StringEntry( | |
203 | + | let aE = aY.transactionId | |
204 | + | let at = toBase58String(aY.caller.bytes) | |
205 | + | let aZ = valueOrElse(getInteger(this, A), 1) | |
206 | + | let ba = getIntegerValue(b, k) | |
207 | + | let bb = getIntegerValue(b, l) | |
208 | + | let bc = getIntegerValue(b, m) | |
209 | + | let bd = split(getStringValue(b, n), a) | |
210 | + | let be = split(getStringValue(b, o), a) | |
211 | + | let bf = split(getStringValue(b, p), a) | |
212 | + | let bg = split(getStringValue(b, q), a) | |
213 | + | let bh = makeString([toString(aB(1, ba, aE, 0)), toString(aB(1, bb, aE, 1)), toString(aB(1, bc, aE, 2))], a) | |
214 | + | let bi = aH(bd, be, 3, aE) | |
215 | + | let bj = aH(bd, be, 10, aE) | |
216 | + | let bk = aH(bd, be, 17, aE) | |
217 | + | let bl = aH(bd, be, 24, aE) | |
218 | + | let bm = aH(bd, bg, 31, aE) | |
219 | + | let bn = aH(bd, bf, 38, aE) | |
220 | + | [StringEntry(ax(B, aZ), at), StringEntry(ax(C, aZ), bh), IntegerEntry(ax(D, aZ), bi), IntegerEntry(ax(E, aZ), bj), IntegerEntry(ax(F, aZ), bk), IntegerEntry(ax(G, aZ), bl), IntegerEntry(ax(H, aZ), bn), IntegerEntry(ax(I, aZ), bm), IntegerEntry(A, (aZ + 1))] | |
127 | 221 | } | |
128 | 222 | ||
129 | 223 | ||
130 | - | @Verifier( | |
131 | - | func | |
224 | + | @Verifier(bo) | |
225 | + | func bp () = sigVerify(bo.bodyBytes, bo.proofs[0], bo.senderPublicKey) | |
132 | 226 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = "_" | |
5 | 5 | ||
6 | - | let b = " | |
6 | + | let b = addressFromStringValue("3MyxfwvbueUBynYHfQsutNXZNqNozGiMnsG") | |
7 | 7 | ||
8 | - | let c = " | |
8 | + | let c = addressFromStringValue("3NA3LRSigk6knLZ16uTzcdLNow2EQZtXTaJ") | |
9 | 9 | ||
10 | - | let d = " | |
10 | + | let d = addressFromStringValue("3MxiJLrY6Qa5bSYxxSFHSG5bVV2n59x1MGn") | |
11 | 11 | ||
12 | - | let e = " | |
12 | + | let e = addressFromStringValue("3MuH9NgpoGaSQufEQLPRikXNS9PXhkhcLzp") | |
13 | 13 | ||
14 | - | let f = " | |
14 | + | let f = "ecosystem_addresses" | |
15 | 15 | ||
16 | - | let g = " | |
16 | + | let g = "token_id" | |
17 | 17 | ||
18 | - | let h = " | |
18 | + | let h = "token_emission_rate" | |
19 | 19 | ||
20 | - | let i = " | |
20 | + | let i = "token_generated" | |
21 | 21 | ||
22 | - | let j = " | |
22 | + | let j = "token_generated_last_update" | |
23 | 23 | ||
24 | - | let k = | |
24 | + | let k = "chars_body_amount" | |
25 | 25 | ||
26 | - | let l = " | |
26 | + | let l = "chars_eyes_amount" | |
27 | 27 | ||
28 | - | let m = "chars_ | |
28 | + | let m = "chars_mouth_amount" | |
29 | 29 | ||
30 | - | let n = "chars_ | |
30 | + | let n = "chars_stats_tiers_ranges" | |
31 | 31 | ||
32 | - | let o = "chars_ | |
32 | + | let o = "chars_natural_elem_bonus_ranges" | |
33 | 33 | ||
34 | - | let p = "chars_ | |
34 | + | let p = "chars_natural_battle_bonus_ranges" | |
35 | 35 | ||
36 | - | let q = "chars_natural_ | |
36 | + | let q = "chars_natural_generating_bonus_ranges" | |
37 | 37 | ||
38 | - | let r = " | |
38 | + | let r = "total_lands" | |
39 | 39 | ||
40 | - | let s = " | |
40 | + | let s = "battle_rest_period" | |
41 | 41 | ||
42 | - | func t (u) = if ((isDataStorageUntouched(k) != false)) | |
42 | + | let t = "battle_win_chance_hardcap" | |
43 | + | ||
44 | + | let u = "battle_win_chance_incr_per_block" | |
45 | + | ||
46 | + | let v = "battle_loot_rarity_ranges" | |
47 | + | ||
48 | + | let w = "items_categories" | |
49 | + | ||
50 | + | let x = "items_types_per_cat" | |
51 | + | ||
52 | + | let y = "items_effects_amount" | |
53 | + | ||
54 | + | let z = "items_effects_max_range" | |
55 | + | ||
56 | + | let A = "chars_count" | |
57 | + | ||
58 | + | let B = "owner" | |
59 | + | ||
60 | + | let C = "appearance" | |
61 | + | ||
62 | + | let D = "natural_pyro_bonus" | |
63 | + | ||
64 | + | let E = "natural_aqua_bonus" | |
65 | + | ||
66 | + | let F = "natural_terra_bonus" | |
67 | + | ||
68 | + | let G = "natural_aero_bonus" | |
69 | + | ||
70 | + | let H = "natural_battle_bonus" | |
71 | + | ||
72 | + | let I = "natural_generating_bonus" | |
73 | + | ||
74 | + | let J = "char_current_land" | |
75 | + | ||
76 | + | let K = "land_pyro_power" | |
77 | + | ||
78 | + | let L = "land_aqua_power" | |
79 | + | ||
80 | + | let M = "land_terra_power" | |
81 | + | ||
82 | + | let N = "land_aero_power" | |
83 | + | ||
84 | + | let O = "char_total_income" | |
85 | + | ||
86 | + | let P = "address_total_income" | |
87 | + | ||
88 | + | let Q = "char_pyro_power" | |
89 | + | ||
90 | + | let R = "char_aqua_power" | |
91 | + | ||
92 | + | let S = "char_terra_power" | |
93 | + | ||
94 | + | let T = "char_aero_power" | |
95 | + | ||
96 | + | let U = "char_initial_pyro_shares" | |
97 | + | ||
98 | + | let V = "char_initial_aqua_shares" | |
99 | + | ||
100 | + | let W = "char_initial_terra_shares" | |
101 | + | ||
102 | + | let X = "char_initial_aero_shares" | |
103 | + | ||
104 | + | let Y = "char_initial_land_pyro_granted_tokens" | |
105 | + | ||
106 | + | let Z = "char_initial_land_aqua_granted_tokens" | |
107 | + | ||
108 | + | let aa = "char_initial_land_terra_granted_tokens" | |
109 | + | ||
110 | + | let ab = "char_initial_land_aero_granted_tokens" | |
111 | + | ||
112 | + | let ac = "land_mast_token_distribution_update" | |
113 | + | ||
114 | + | let ad = "land_pyro_total_granted_tokens" | |
115 | + | ||
116 | + | let ae = "land_aqua_total_granted_tokens" | |
117 | + | ||
118 | + | let af = "land_terra_total_granted_tokens" | |
119 | + | ||
120 | + | let ag = "land_aero_total_granted_tokens" | |
121 | + | ||
122 | + | let ah = "last_battle_height" | |
123 | + | ||
124 | + | let ai = "items_count" | |
125 | + | ||
126 | + | let aj = "item_owner" | |
127 | + | ||
128 | + | let ak = "item_category" | |
129 | + | ||
130 | + | let al = "item_type" | |
131 | + | ||
132 | + | let am = "item_effects" | |
133 | + | ||
134 | + | let an = "item_is_equipped_by" | |
135 | + | ||
136 | + | let ao = "char_weapon" | |
137 | + | ||
138 | + | let ap = "char_armor" | |
139 | + | ||
140 | + | let aq = "char_jewel" | |
141 | + | ||
142 | + | let ar = "item_effects_values_per_types" | |
143 | + | ||
144 | + | func as (at) = if ((isDataStorageUntouched(b) != false)) | |
43 | 145 | then throw("Governing app not ready") | |
44 | 146 | else { | |
45 | - | let | |
46 | - | if ((contains( | |
147 | + | let au = getStringValue(b, f) | |
148 | + | if ((contains(au, toString(at)) != false)) | |
47 | 149 | then throw("Access denied") | |
48 | 150 | else true | |
49 | 151 | } | |
50 | 152 | ||
51 | 153 | ||
52 | - | func w (x,y) = { | |
53 | - | let z = { | |
54 | - | let A = y | |
55 | - | if ($isInstanceOf(A, "Int")) | |
56 | - | then { | |
57 | - | let B = A | |
58 | - | toString(B) | |
59 | - | } | |
60 | - | else if ($isInstanceOf(A, "String")) | |
61 | - | then { | |
62 | - | let C = A | |
63 | - | C | |
64 | - | } | |
65 | - | else throw("Matching issue in with function") | |
66 | - | } | |
67 | - | ((z + a) + x) | |
154 | + | func av (aw) = if ((contains(getStringValue(this, f), toBase58String(aw.bytes)) != true)) | |
155 | + | then throw("Access denied ") | |
156 | + | else true | |
157 | + | ||
158 | + | ||
159 | + | func ax (ay,az) = makeString([toString(az), ay], a) | |
160 | + | ||
161 | + | ||
162 | + | func aA (ay,az) = makeString([az, ay], a) | |
163 | + | ||
164 | + | ||
165 | + | func aB (aC,aD,aE,aF) = { | |
166 | + | let aG = value(sha256_16Kb(((value(value(blockInfoByHeight(height)).vrf) + aE) + toBytes(aF)))) | |
167 | + | value(((value(toInt(aG)) % ((aD - aC) + 1)) + aC)) | |
68 | 168 | } | |
69 | 169 | ||
70 | 170 | ||
71 | - | func D (E,F,G,H) = { | |
72 | - | let I = value(sha256_16Kb(((value(value(blockInfoByHeight(height)).vrf) + G) + toBytes(H)))) | |
73 | - | value(((value(toInt(I)) % ((F - E) + 1)) + E)) | |
171 | + | func aH (aI,aJ,aK,aE) = { | |
172 | + | let aL = parseIntValue(aI[0]) | |
173 | + | let aM = parseIntValue(aI[1]) | |
174 | + | let aN = parseIntValue(aI[2]) | |
175 | + | let aO = parseIntValue(aI[3]) | |
176 | + | let aP = parseIntValue(aI[4]) | |
177 | + | let aQ = parseIntValue(aI[5]) | |
178 | + | let aR = parseIntValue(aJ[0]) | |
179 | + | let aS = parseIntValue(aJ[1]) | |
180 | + | let aT = parseIntValue(aJ[2]) | |
181 | + | let aU = parseIntValue(aJ[3]) | |
182 | + | let aV = parseIntValue(aJ[4]) | |
183 | + | let aW = parseIntValue(aJ[5]) | |
184 | + | let aX = aB(0, 10000, aE, aK) | |
185 | + | if ((aL >= aX)) | |
186 | + | then aB(0, aR, aE, (aK + 1)) | |
187 | + | else if ((aM >= aX)) | |
188 | + | then aB((aR + 1), aS, aE, (aK + 2)) | |
189 | + | else if ((aN >= aX)) | |
190 | + | then aB((aS + 1), aT, aE, (aK + 3)) | |
191 | + | else if ((aO >= aX)) | |
192 | + | then aB((aT + 1), aU, aE, (aK + 4)) | |
193 | + | else if ((aP >= aX)) | |
194 | + | then aB((aU + 1), aV, aE, (aK + 5)) | |
195 | + | else aB((aV + 1), aW, aE, (aK + 6)) | |
74 | 196 | } | |
75 | 197 | ||
76 | 198 | ||
77 | - | func J (K,L,M,G) = { | |
78 | - | let N = parseIntValue(K[0]) | |
79 | - | let O = parseIntValue(K[1]) | |
80 | - | let P = parseIntValue(K[2]) | |
81 | - | let Q = parseIntValue(K[3]) | |
82 | - | let R = parseIntValue(K[4]) | |
83 | - | let S = parseIntValue(K[5]) | |
84 | - | let T = parseIntValue(L[0]) | |
85 | - | let U = parseIntValue(L[1]) | |
86 | - | let V = parseIntValue(L[2]) | |
87 | - | let W = parseIntValue(L[3]) | |
88 | - | let X = parseIntValue(L[4]) | |
89 | - | let Y = parseIntValue(L[5]) | |
90 | - | let Z = D(0, 10000, G, M) | |
91 | - | if ((N >= Z)) | |
92 | - | then D(0, T, G, (M + 1)) | |
93 | - | else if ((O >= Z)) | |
94 | - | then D((T + 1), U, G, (M + 2)) | |
95 | - | else if ((P >= Z)) | |
96 | - | then D((U + 1), V, G, (M + 3)) | |
97 | - | else if ((Q >= Z)) | |
98 | - | then D((V + 1), W, G, (M + 4)) | |
99 | - | else if ((R >= Z)) | |
100 | - | then D((W + 1), X, G, (M + 5)) | |
101 | - | else D((X + 1), Y, G, (M + 6)) | |
102 | - | } | |
103 | - | ||
104 | - | ||
105 | - | @Callable(aa) | |
106 | - | func createChar () = if ((t(aa.caller) != true)) | |
199 | + | @Callable(aY) | |
200 | + | func createChar () = if ((as(aY.caller) != true)) | |
107 | 201 | then throw() | |
108 | 202 | else { | |
109 | - | let | |
110 | - | let | |
111 | - | let | |
112 | - | let | |
113 | - | let | |
114 | - | let | |
115 | - | let | |
116 | - | let | |
117 | - | let | |
118 | - | let | |
119 | - | let | |
120 | - | let | |
121 | - | let | |
122 | - | let | |
123 | - | let | |
124 | - | let | |
125 | - | let | |
126 | - | [StringEntry( | |
203 | + | let aE = aY.transactionId | |
204 | + | let at = toBase58String(aY.caller.bytes) | |
205 | + | let aZ = valueOrElse(getInteger(this, A), 1) | |
206 | + | let ba = getIntegerValue(b, k) | |
207 | + | let bb = getIntegerValue(b, l) | |
208 | + | let bc = getIntegerValue(b, m) | |
209 | + | let bd = split(getStringValue(b, n), a) | |
210 | + | let be = split(getStringValue(b, o), a) | |
211 | + | let bf = split(getStringValue(b, p), a) | |
212 | + | let bg = split(getStringValue(b, q), a) | |
213 | + | let bh = makeString([toString(aB(1, ba, aE, 0)), toString(aB(1, bb, aE, 1)), toString(aB(1, bc, aE, 2))], a) | |
214 | + | let bi = aH(bd, be, 3, aE) | |
215 | + | let bj = aH(bd, be, 10, aE) | |
216 | + | let bk = aH(bd, be, 17, aE) | |
217 | + | let bl = aH(bd, be, 24, aE) | |
218 | + | let bm = aH(bd, bg, 31, aE) | |
219 | + | let bn = aH(bd, bf, 38, aE) | |
220 | + | [StringEntry(ax(B, aZ), at), StringEntry(ax(C, aZ), bh), IntegerEntry(ax(D, aZ), bi), IntegerEntry(ax(E, aZ), bj), IntegerEntry(ax(F, aZ), bk), IntegerEntry(ax(G, aZ), bl), IntegerEntry(ax(H, aZ), bn), IntegerEntry(ax(I, aZ), bm), IntegerEntry(A, (aZ + 1))] | |
127 | 221 | } | |
128 | 222 | ||
129 | 223 | ||
130 | - | @Verifier( | |
131 | - | func | |
224 | + | @Verifier(bo) | |
225 | + | func bp () = sigVerify(bo.bodyBytes, bo.proofs[0], bo.senderPublicKey) | |
132 | 226 |
github/deemru/w8io/169f3d6 53.76 ms ◑