tx · 9t5dbQNsAbMDsVudyzuRuUhZ5mz2mUX4kstPRCTmUQLt

3MyxfwvbueUBynYHfQsutNXZNqNozGiMnsG:  -0.01500000 Waves

2022.05.23 17:41 [2064456] smart account 3MyxfwvbueUBynYHfQsutNXZNqNozGiMnsG > SELF 0.00000000 Waves

{ "type": 13, "id": "9t5dbQNsAbMDsVudyzuRuUhZ5mz2mUX4kstPRCTmUQLt", "fee": 1500000, "feeAssetId": null, "timestamp": 1653316869000, "version": 2, "chainId": 84, "sender": "3MyxfwvbueUBynYHfQsutNXZNqNozGiMnsG", "senderPublicKey": "A5uPpc5KS7DgroqteAzwUgULhnPuQKdsgxYXJMyji3j8", "proofs": [ "4Wt2jtzmV2dKPHczyb8tHeurTDwnTm4Gi6WLzJ3JcMsHeoqoVPUj9zv9HKtnoLP1BnGaDMvzaCjptrmE8C1LJcTa" ], "script": "base64:AAIFAAAAAAAAABEIAhIAEgQKAgQIEgASAwoBAQAAAF8AAAAACXNlcGFyYXRvcgIAAAABXwAAAAAGZ292QXBwCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzTXl4Znd2YnVlVUJ5bllIZlFzdXROWFpOcU5vekdpTW5zRwAAAAAIY2hhcnNBcHAJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAECAAAAIzNOQTNMUlNpZ2s2a25MWjE2dVR6Y2RMTm93MkVRWnRYVGFKAAAAAAhsYW5kc0FwcAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQIAAAAjM014aUpMclk2UWE1YlNZeHhTRkhTRzViVlYybjU5eDFNR24AAAAACmJhdHRsZXNBcHAJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAECAAAAIzNNdUg5Tmdwb0dhU1F1ZkVRTFBSaWtYTlM5UFhoa2hjTHpwAAAAABVrZXlFY29zeXN0ZW1BZGRyZXNzZXMCAAAAE2Vjb3N5c3RlbV9hZGRyZXNzZXMAAAAACmtleVRva2VuSWQCAAAACHRva2VuX2lkAAAAABRrZXlUb2tlbkVtaXNzaW9uUmF0ZQIAAAATdG9rZW5fZW1pc3Npb25fcmF0ZQAAAAARa2V5VG9rZW5HZW5lcmF0ZWQCAAAAD3Rva2VuX2dlbmVyYXRlZAAAAAAba2V5VG9rZW5HZW5lcmF0ZWRMYXN0VXBkYXRlAgAAABt0b2tlbl9nZW5lcmF0ZWRfbGFzdF91cGRhdGUAAAAAEmtleUNoYXJzQm9keUFtb3VudAIAAAARY2hhcnNfYm9keV9hbW91bnQAAAAAEmtleUNoYXJzRXllc0Ftb3VudAIAAAARY2hhcnNfZXllc19hbW91bnQAAAAAE2tleUNoYXJzTW91dGhBbW91bnQCAAAAEmNoYXJzX21vdXRoX2Ftb3VudAAAAAAYa2V5Q2hhcnNTdGF0c1RpZXJzUmFuZ2VzAgAAABhjaGFyc19zdGF0c190aWVyc19yYW5nZXMAAAAAHmtleUNoYXJzTmF0dXJhbEVsZW1Cb251c1JhbmdlcwIAAAAfY2hhcnNfbmF0dXJhbF9lbGVtX2JvbnVzX3JhbmdlcwAAAAAga2V5Q2hhcnNOYXR1cmFsQmF0dGxlQm9udXNSYW5nZXMCAAAAIWNoYXJzX25hdHVyYWxfYmF0dGxlX2JvbnVzX3JhbmdlcwAAAAAka2V5Q2hhcnNOYXR1cmFsR2VuZXJhdGluZ0JvbnVzUmFuZ2VzAgAAACVjaGFyc19uYXR1cmFsX2dlbmVyYXRpbmdfYm9udXNfcmFuZ2VzAAAAAA1rZXlUb3RhbExhbmRzAgAAAAt0b3RhbF9sYW5kcwAAAAATa2V5QmF0dGxlUmVzdFBlcmlvZAIAAAASYmF0dGxlX3Jlc3RfcGVyaW9kAAAAABlrZXlCYXR0bGVXaW5DaGFuY2VIYXJkY2FwAgAAABliYXR0bGVfd2luX2NoYW5jZV9oYXJkY2FwAAAAAB5rZXlCYXR0bGVXaW5DaGFuY2VJbmNyUGVyQmxvY2sCAAAAIGJhdHRsZV93aW5fY2hhbmNlX2luY3JfcGVyX2Jsb2NrAAAAABlrZXlCYXR0bGVMb290UmFyaXR5UmFuZ2VzAgAAABliYXR0bGVfbG9vdF9yYXJpdHlfcmFuZ2VzAAAAABJrZXlJdGVtc0NhdGVnb3JpZXMCAAAAEGl0ZW1zX2NhdGVnb3JpZXMAAAAAE2tleUl0ZW1zVHlwZXNQZXJDYXQCAAAAE2l0ZW1zX3R5cGVzX3Blcl9jYXQAAAAAFWtleUl0ZW1zRWZmZWN0c0Ftb3VudAIAAAAUaXRlbXNfZWZmZWN0c19hbW91bnQAAAAAGGtleWl0ZW1zRWZmZWN0c01heFJhbmdlcwIAAAAXaXRlbXNfZWZmZWN0c19tYXhfcmFuZ2UAAAAADWtleUNoYXJzQ291bnQCAAAAC2NoYXJzX2NvdW50AAAAAAhrZXlPd25lcgIAAAAFb3duZXIAAAAADWtleUFwcGVhcmFuY2UCAAAACmFwcGVhcmFuY2UAAAAAE2tleU5hdHVyYWxQeXJvQm9udXMCAAAAEm5hdHVyYWxfcHlyb19ib251cwAAAAATa2V5TmF0dXJhbEFxdWFCb251cwIAAAASbmF0dXJhbF9hcXVhX2JvbnVzAAAAABRrZXlOYXR1cmFsVGVycmFCb251cwIAAAATbmF0dXJhbF90ZXJyYV9ib251cwAAAAATa2V5TmF0dXJhbEFlcm9Cb251cwIAAAASbmF0dXJhbF9hZXJvX2JvbnVzAAAAABVrZXlOYXR1cmFsQmF0dGxlQm9udXMCAAAAFG5hdHVyYWxfYmF0dGxlX2JvbnVzAAAAABlrZXlOYXR1cmFsR2VuZXJhdGluZ0JvbnVzAgAAABhuYXR1cmFsX2dlbmVyYXRpbmdfYm9udXMAAAAAEmtleUNoYXJDdXJyZW50TGFuZAIAAAARY2hhcl9jdXJyZW50X2xhbmQAAAAAEGtleUxhbmRQeXJvUG93ZXICAAAAD2xhbmRfcHlyb19wb3dlcgAAAAAQa2V5TGFuZEFxdWFQb3dlcgIAAAAPbGFuZF9hcXVhX3Bvd2VyAAAAABFrZXlMYW5kVGVycmFQb3dlcgIAAAAQbGFuZF90ZXJyYV9wb3dlcgAAAAAQa2V5TGFuZEFlcm9Qb3dlcgIAAAAPbGFuZF9hZXJvX3Bvd2VyAAAAABJrZXlDaGFyVG90YWxJbmNvbWUCAAAAEWNoYXJfdG90YWxfaW5jb21lAAAAABVrZXlBZGRyZXNzVG90YWxJbmNvbWUCAAAAFGFkZHJlc3NfdG90YWxfaW5jb21lAAAAABBrZXlDaGFyUHlyb1Bvd2VyAgAAAA9jaGFyX3B5cm9fcG93ZXIAAAAAEGtleUNoYXJBcXVhUG93ZXICAAAAD2NoYXJfYXF1YV9wb3dlcgAAAAARa2V5Q2hhclRlcnJhUG93ZXICAAAAEGNoYXJfdGVycmFfcG93ZXIAAAAAEGtleUNoYXJBZXJvUG93ZXICAAAAD2NoYXJfYWVyb19wb3dlcgAAAAAYa2V5Q2hhckluaXRpYWxQeXJvU2hhcmVzAgAAABhjaGFyX2luaXRpYWxfcHlyb19zaGFyZXMAAAAAGGtleUNoYXJJbml0aWFsQXF1YVNoYXJlcwIAAAAYY2hhcl9pbml0aWFsX2FxdWFfc2hhcmVzAAAAABlrZXlDaGFySW5pdGlhbFRlcnJhU2hhcmVzAgAAABljaGFyX2luaXRpYWxfdGVycmFfc2hhcmVzAAAAABhrZXlDaGFySW5pdGlhbEFlcm9TaGFyZXMCAAAAGGNoYXJfaW5pdGlhbF9hZXJvX3NoYXJlcwAAAAAja2V5Q2hhckluaXRpYWxMYW5kUHlyb0dyYW50ZWRUb2tlbnMCAAAAJWNoYXJfaW5pdGlhbF9sYW5kX3B5cm9fZ3JhbnRlZF90b2tlbnMAAAAAI2tleUNoYXJJbml0aWFsTGFuZEFxdWFHcmFudGVkVG9rZW5zAgAAACVjaGFyX2luaXRpYWxfbGFuZF9hcXVhX2dyYW50ZWRfdG9rZW5zAAAAACRrZXlDaGFySW5pdGlhbExhbmRUZXJyYUdyYW50ZWRUb2tlbnMCAAAAJmNoYXJfaW5pdGlhbF9sYW5kX3RlcnJhX2dyYW50ZWRfdG9rZW5zAAAAACNrZXlDaGFySW5pdGlhbExhbmRBZXJvR3JhbnRlZFRva2VucwIAAAAlY2hhcl9pbml0aWFsX2xhbmRfYWVyb19ncmFudGVkX3Rva2VucwAAAAAia2V5TGFuZExhc3RUb2tlbkRpc3RyaWJ1dGlvblVwZGF0ZQIAAAAjbGFuZF9tYXN0X3Rva2VuX2Rpc3RyaWJ1dGlvbl91cGRhdGUAAAAAHWtleUxhbmRQeXJvVG90YWxHcmFudGVkVG9rZW5zAgAAAB5sYW5kX3B5cm9fdG90YWxfZ3JhbnRlZF90b2tlbnMAAAAAHWtleUxhbmRBcXVhVG90YWxHcmFudGVkVG9rZW5zAgAAAB5sYW5kX2FxdWFfdG90YWxfZ3JhbnRlZF90b2tlbnMAAAAAHmtleUxhbmRUZXJyYVRvdGFsR3JhbnRlZFRva2VucwIAAAAfbGFuZF90ZXJyYV90b3RhbF9ncmFudGVkX3Rva2VucwAAAAAda2V5TGFuZEFlcm9Ub3RhbEdyYW50ZWRUb2tlbnMCAAAAHmxhbmRfYWVyb190b3RhbF9ncmFudGVkX3Rva2VucwAAAAATa2V5TGFzdEJhdHRsZUhlaWdodAIAAAASbGFzdF9iYXR0bGVfaGVpZ2h0AAAAAA1rZXlJdGVtc0NvdW50AgAAAAtpdGVtc19jb3VudAAAAAAMa2V5SXRlbU93bmVyAgAAAAppdGVtX293bmVyAAAAAA9rZXlJdGVtQ2F0ZWdvcnkCAAAADWl0ZW1fY2F0ZWdvcnkAAAAAC2tleUl0ZW1UeXBlAgAAAAlpdGVtX3R5cGUAAAAADmtleUl0ZW1FZmZlY3RzAgAAAAxpdGVtX2VmZmVjdHMAAAAAE2tleUl0ZW1Jc0VxdWlwcGVkQnkCAAAAE2l0ZW1faXNfZXF1aXBwZWRfYnkAAAAADWtleUNoYXJXZWFwb24CAAAAC2NoYXJfd2VhcG9uAAAAAAxrZXlDaGFyQXJtb3ICAAAACmNoYXJfYXJtb3IAAAAADGtleUNoYXJKZXdlbAIAAAAKY2hhcl9qZXdlbAAAAAAca2V5SXRlbUVmZmVjdHNWYWx1ZXNQZXJUeXBlcwIAAAAdaXRlbV9lZmZlY3RzX3ZhbHVlc19wZXJfdHlwZXMBAAAADGludm9rZUNoZWNrcwAAAAEAAAAKY2FsbGVyQWRkcgMJAQAAAAIhPQAAAAIJAAQeAAAAAQUAAAAGZ292QXBwBwkAAAIAAAABAgAAABdHb3Zlcm5pbmcgYXBwIG5vdCByZWFkeQQAAAASZWNvc3lzdGVtQWRkcmVzc2VzCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAZnb3ZBcHAFAAAAFWtleUVjb3N5c3RlbUFkZHJlc3NlcwMJAQAAAAIhPQAAAAIJAQAAAAhjb250YWlucwAAAAIFAAAAEmVjb3N5c3RlbUFkZHJlc3NlcwkABCUAAAABBQAAAApjYWxsZXJBZGRyBwkAAAIAAAABAgAAAA1BY2Nlc3MgZGVuaWVkBgEAAAAOZWNvc3lzdGVtQ2hlY2sAAAABAAAABmNhbGxlcgMJAQAAAAIhPQAAAAIJAQAAAAhjb250YWlucwAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMFAAAAFWtleUVjb3N5c3RlbUFkZHJlc3NlcwkAAlgAAAABCAUAAAAGY2FsbGVyAAAABWJ5dGVzBgkAAAIAAAABAgAAAA5BY2Nlc3MgZGVuaWVkIAYBAAAABHdpdGgAAAACAAAAAWEAAAABYgkABLkAAAACCQAETAAAAAIJAAGkAAAAAQUAAAABYgkABEwAAAACBQAAAAFhBQAAAANuaWwFAAAACXNlcGFyYXRvcgEAAAAHd2l0aFN0cgAAAAIAAAABYQAAAAFiCQAEuQAAAAIJAARMAAAAAgUAAAABYgkABEwAAAACBQAAAAFhBQAAAANuaWwFAAAACXNlcGFyYXRvcgEAAAAHcmFuZEludAAAAAQAAAADbWluAAAAA21heAAAAAR0eElkAAAABW5vbmNlBAAAAARoYXNoCQEAAAAFdmFsdWUAAAABCQALVAAAAAEJAADLAAAAAgkAAMsAAAACCQEAAAAFdmFsdWUAAAABCAkBAAAABXZhbHVlAAAAAQkAA+0AAAABBQAAAAZoZWlnaHQAAAADdnJmBQAAAAR0eElkCQABmgAAAAEFAAAABW5vbmNlCQEAAAAFdmFsdWUAAAABCQAAZAAAAAIJAABqAAAAAgkBAAAABXZhbHVlAAAAAQkABLEAAAABBQAAAARoYXNoCQAAZAAAAAIJAABlAAAAAgUAAAADbWF4BQAAAANtaW4AAAAAAAAAAAEFAAAAA21pbgAAAAAIREVWX01PREUGAAAAAAl0b2tlbk5hbWUCAAAABkNvdWNvdQAAAAAJdG9rZW5EZXNjAgAAAAdibGEgYmxhAAAAABh0b2tlbkluaXRpYWxFbWlzc2lvblJhdGUAAAAAAAX14QAAAAAAEmxhbmRzSW5pdGlhbEFtb3VudAAAAAAAAAAABgAAAAAbYXBwZWFyYW5jZUluaXRpYWxCb2R5QW1vdW50AAAAAAAAAAAFAAAAABthcHBlYXJhbmNlSW5pdGlhbEV5ZXNBbW91bnQAAAAAAAAAAAUAAAAAHGFwcGVhcmFuY2VJbml0aWFsTW91dGhBbW91bnQAAAAAAAAAAAUAAAAAF3Jhbmdlc0luaXRpYWxTdGF0c1RpZXJzAgAAAB01MDBfNzUwMF85MDAwXzk3NTBfOTk5MF8xMDAwMAAAAAAYcmFuZ2VzSW5pdGlhbE5hdHVyYWxFbGVtAgAAABw0MDBfMTAwMF8xNDAwXzE2MDBfMTc1MF8yMDAwAAAAAB5yYW5nZXNJbml0aWFsTmF0dXJhbEdlbmVyYXRpbmcCAAAAFzIwMF8zMDBfMzc1XzQyNV80NTBfNTAwAAAAABpyYW5nZXNJbml0aWFsTmF0dXJhbEJhdHRsZQIAAAAdOTAwMF85MTAwXzkyMDBfOTMwMF85NDAwXzk1MDAAAAAAEGJhdHRsZVJlc3RQZXJpb2QAAAAAAAAAAAAAAAAAFmJhdHRsZVdpbkNoYW5jZUhhcmRjYXAAAAAAAAAMNQAAAAAAG2JhdHRsZVdpbkNoYW5jZUluY3JQZXJCbG9jawAAAAAAAAAAZAAAAAAVYmF0dGxlTG9vdFJhcml0eVJhbmdlAgAAABQ4MDAwXzk1MDBfOTk5MF8xMDAwMAAAAAAPaXRlbXNDYXRlZ29yaWVzAAAAAAAAAAADAAAAABBpdGVtc1R5cGVzUGVyQ2F0AgAAAAcwXzZfNF8zAAAAABJpdGVtc0VmZmVjdHNBbW91bnQAAAAAAAAAACAAAAAAFGl0ZW1zRWZmZWN0c01heFJhbmdlCQAEuQAAAAIJAARMAAAAAgIAAAABMAkABEwAAAACAgAAAAQyMDAwCQAETAAAAAICAAAABDIwMDAJAARMAAAAAgIAAAAEMjAwMAkABEwAAAACAgAAAAQyMDAwCQAETAAAAAICAAAABDIwMDAJAARMAAAAAgIAAAAEMjAwMAkABEwAAAACAgAAAAQyMDAwCQAETAAAAAICAAAABDIwMDAJAARMAAAAAgIAAAAEMjAwMAkABEwAAAACAgAAAAQyMDAwCQAETAAAAAICAAAABDIwMDAJAARMAAAAAgIAAAAEMjAwMAkABEwAAAACAgAAAAQyMDAwCQAETAAAAAICAAAABDIwMDAJAARMAAAAAgIAAAAEMjAwMAkABEwAAAACAgAAAAQyMDAwCQAETAAAAAICAAAAAzUwMAkABEwAAAACAgAAAAM1MDAJAARMAAAAAgIAAAADNTAwCQAETAAAAAICAAAAAzUwMAkABEwAAAACAgAAAAMxMDAJAARMAAAAAgIAAAADMTAwCQAETAAAAAICAAAAAzEwMAkABEwAAAACAgAAAAMxMDAJAARMAAAAAgIAAAADMTAwCQAETAAAAAICAAAAAzEwMAkABEwAAAACAgAAAAMxMDAJAARMAAAAAgIAAAADMTAwCQAETAAAAAICAAAAAzEwMAkABEwAAAACAgAAAAMxMDAJAARMAAAAAgIAAAADMTAwCQAETAAAAAICAAAAAzEwMAkABEwAAAACAgAAAAMxMDAJAARMAAAAAgIAAAADMTAwCQAETAAAAAICAAAAAzEwMAkABEwAAAACAgAAAAMxMDAJAARMAAAAAgIAAAACMjUJAARMAAAAAgIAAAACMjUFAAAAA25pbAUAAAAJc2VwYXJhdG9yAAAABAAAAAFpAQAAAARpbml0AAAAAAMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwkAAAIAAAABAgAAAAxBY2NlcyBkZW5pZWQDAwkBAAAAASEAAAABCQAEHgAAAAEFAAAABHRoaXMJAQAAAAEhAAAAAQUAAAAIREVWX01PREUHCQAAAgAAAAECAAAAEUluaXQgZG9uZSBhbHJlYWR5BAAAAAp0b2tlbklzc3VlCQAEQgAAAAUFAAAACXRva2VuTmFtZQUAAAAJdG9rZW5EZXNjAAAAAAAAAAABAAAAAAAAAAAIBgQAAAAHdG9rZW5JZAkABDgAAAABBQAAAAp0b2tlbklzc3VlCQAETAAAAAIFAAAACnRva2VuSXNzdWUJAARMAAAAAgkBAAAAC0JpbmFyeUVudHJ5AAAAAgUAAAAKa2V5VG9rZW5JZAUAAAAHdG9rZW5JZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAUa2V5VG9rZW5FbWlzc2lvblJhdGUFAAAAGHRva2VuSW5pdGlhbEVtaXNzaW9uUmF0ZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAARa2V5VG9rZW5HZW5lcmF0ZWQAAAAAAAAAAAAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAG2tleVRva2VuR2VuZXJhdGVkTGFzdFVwZGF0ZQUAAAAGaGVpZ2h0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAFWtleUVjb3N5c3RlbUFkZHJlc3NlcwkABLkAAAACCQAETAAAAAIJAAQlAAAAAQUAAAAEdGhpcwkABEwAAAACCQAEJQAAAAEFAAAACGNoYXJzQXBwCQAETAAAAAIJAAQlAAAAAQUAAAAIbGFuZHNBcHAJAARMAAAAAgkABCUAAAABBQAAAApiYXR0bGVzQXBwBQAAAANuaWwFAAAACXNlcGFyYXRvcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAANa2V5VG90YWxMYW5kcwUAAAASbGFuZHNJbml0aWFsQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABJrZXlDaGFyc0JvZHlBbW91bnQFAAAAG2FwcGVhcmFuY2VJbml0aWFsQm9keUFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAASa2V5Q2hhcnNFeWVzQW1vdW50BQAAABthcHBlYXJhbmNlSW5pdGlhbEV5ZXNBbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAE2tleUNoYXJzTW91dGhBbW91bnQFAAAAHGFwcGVhcmFuY2VJbml0aWFsTW91dGhBbW91bnQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAYa2V5Q2hhcnNTdGF0c1RpZXJzUmFuZ2VzBQAAABdyYW5nZXNJbml0aWFsU3RhdHNUaWVycwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAB5rZXlDaGFyc05hdHVyYWxFbGVtQm9udXNSYW5nZXMFAAAAGHJhbmdlc0luaXRpYWxOYXR1cmFsRWxlbQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAACRrZXlDaGFyc05hdHVyYWxHZW5lcmF0aW5nQm9udXNSYW5nZXMFAAAAHnJhbmdlc0luaXRpYWxOYXR1cmFsR2VuZXJhdGluZwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAACBrZXlDaGFyc05hdHVyYWxCYXR0bGVCb251c1JhbmdlcwUAAAAacmFuZ2VzSW5pdGlhbE5hdHVyYWxCYXR0bGUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAE2tleUJhdHRsZVJlc3RQZXJpb2QFAAAAEGJhdHRsZVJlc3RQZXJpb2QJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAGWtleUJhdHRsZVdpbkNoYW5jZUhhcmRjYXAFAAAAFmJhdHRsZVdpbkNoYW5jZUhhcmRjYXAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAHmtleUJhdHRsZVdpbkNoYW5jZUluY3JQZXJCbG9jawUAAAAbYmF0dGxlV2luQ2hhbmNlSW5jclBlckJsb2NrCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAGWtleUJhdHRsZUxvb3RSYXJpdHlSYW5nZXMFAAAAFWJhdHRsZUxvb3RSYXJpdHlSYW5nZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAASa2V5SXRlbXNDYXRlZ29yaWVzBQAAAA9pdGVtc0NhdGVnb3JpZXMJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAATa2V5SXRlbXNUeXBlc1BlckNhdAUAAAAQaXRlbXNUeXBlc1BlckNhdAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAVa2V5SXRlbXNFZmZlY3RzQW1vdW50BQAAABJpdGVtc0VmZmVjdHNBbW91bnQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAYa2V5aXRlbXNFZmZlY3RzTWF4UmFuZ2VzBQAAABRpdGVtc0VmZmVjdHNNYXhSYW5nZQUAAAADbmlsAAAAAWkBAAAAGG1hbmFnZUVjb3N5c3RlbUFkZHJlc3NlcwAAAAIAAAADYWRkAAAABGFkZHIDCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMJAAACAAAAAQIAAAAMQWNjZXMgZGVuaWVkBAAAAAVtQWRkcgQAAAAHJG1hdGNoMAkABCYAAAABBQAAAARhZGRyAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAdBZGRyZXNzBAAAAAZpc0FkZHIFAAAAByRtYXRjaDAFAAAABGFkZHIJAAACAAAAAQIAAAAOTm90IGFuIGFkZHJlc3MEAAAADmN1cnJlbnRFY29BZGRyCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzBQAAABVrZXlFY29zeXN0ZW1BZGRyZXNzZXMEAAAACmFkZHJJbkxpc3QJAQAAAAhjb250YWlucwAAAAIFAAAADmN1cnJlbnRFY29BZGRyBQAAAAVtQWRkcgMDCQAAAAAAAAIFAAAAA2FkZAYJAAAAAAAAAgUAAAAKYWRkckluTGlzdAYHCQAAAgAAAAECAAAAG0FkZHJlc3MgYWxyZWFkeSBpbiB0aGUgbGlzdAMDCQAAAAAAAAIFAAAAA2FkZAcJAAAAAAAAAgUAAAAKYWRkckluTGlzdAcHCQAAAgAAAAECAAAAH0FkZHJlc3Mgbm90IGluIHRoZSBsaXN0IGFscmVhZHkEAAAACm5ld0Vjb0FkZHIDCQAAAAAAAAIFAAAAA2FkZAYJAAEsAAAAAgkAASwAAAACBQAAAA5jdXJyZW50RWNvQWRkcgUAAAAJc2VwYXJhdG9yBQAAAAVtQWRkcgQAAAALZWNvQWRkckxpc3QJAAS1AAAAAgUAAAAOY3VycmVudEVjb0FkZHIFAAAACXNlcGFyYXRvcgQAAAAJYWRkckluZGV4CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAARPAAAAAgUAAAALZWNvQWRkckxpc3QFAAAABW1BZGRyAgAAAA9Vbmtub3duIGFkZHJlc3MJAAS5AAAAAgkABFEAAAACBQAAAAtlY29BZGRyTGlzdAUAAAAJYWRkckluZGV4BQAAAAlzZXBhcmF0b3IJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAVa2V5RWNvc3lzdGVtQWRkcmVzc2VzBQAAAApuZXdFY29BZGRyBQAAAANuaWwAAAABaQEAAAAUZ2V0R2VuZXJhdGVkU3VwcGxpZXMAAAAAAwkBAAAAASEAAAABCQEAAAAOZWNvc3lzdGVtQ2hlY2sAAAABCAUAAAABaQAAAAZjYWxsZXIJAQAAAAV0aHJvdwAAAAAEAAAAGGN1cnJlbnRHZW5lcmF0ZWRTdXBwbGllcwkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwUAAAARa2V5VG9rZW5HZW5lcmF0ZWQEAAAACmhlaWdodERpZmYJAABlAAAAAgUAAAAGaGVpZ2h0CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzBQAAABtrZXlUb2tlbkdlbmVyYXRlZExhc3RVcGRhdGUEAAAAFG5ld0dlbmVyYXRlZFN1cHBsaWVzCQAAZAAAAAIFAAAAGGN1cnJlbnRHZW5lcmF0ZWRTdXBwbGllcwkAAGgAAAACBQAAAApoZWlnaHREaWZmCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzBQAAABRrZXlUb2tlbkVtaXNzaW9uUmF0ZQMJAABmAAAAAgUAAAAYY3VycmVudEdlbmVyYXRlZFN1cHBsaWVzBQAAABRuZXdHZW5lcmF0ZWRTdXBwbGllcwkAAAIAAAABAgAAAC9uZXdHZW5lcmF0ZWRTdXBwbGllcyA8IGN1cnJlbnRHZW5lcmF0ZWRTdXBwbGllcwMJAABmAAAAAgAAAAAAAAAAAAUAAAAKaGVpZ2h0RGlmZgkAAAIAAAABAgAAAA5oZWlnaHREaWZmIDwgMAkABRQAAAACCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABFrZXlUb2tlbkdlbmVyYXRlZAUAAAAUbmV3R2VuZXJhdGVkU3VwcGxpZXMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAG2tleVRva2VuR2VuZXJhdGVkTGFzdFVwZGF0ZQUAAAAGaGVpZ2h0BQAAAANuaWwFAAAAFG5ld0dlbmVyYXRlZFN1cHBsaWVzAAAAAWkBAAAAD3NlbmRUb2tlbnN0b0FwcAAAAAEAAAAGYW1vdW50AwkBAAAAASEAAAABCQEAAAAOZWNvc3lzdGVtQ2hlY2sAAAABCAUAAAABaQAAAAZjYWxsZXIJAQAAAAV0aHJvdwAAAAAEAAAAB3Rva2VuSWQJAQAAABFAZXh0ck5hdGl2ZSgxMDUyKQAAAAIFAAAABHRoaXMFAAAACmtleVRva2VuSWQEAAAADHRva2VuUmVpc3N1ZQkBAAAAB1JlaXNzdWUAAAADBQAAAAd0b2tlbklkBQAAAAZhbW91bnQGCQAFFAAAAAIJAARMAAAAAgUAAAAMdG9rZW5SZWlzc3VlCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAGYW1vdW50BQAAAAd0b2tlbklkBQAAAANuaWwFAAAABmFtb3VudAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V53PK0WQ==", "height": 2064456, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6qL3BAEnYpNyaDhjZP9PEFuKsm3i6CzSdf2jihht3r4b Next: 6DLmpqiG2nnDZ3k2jWT8MfDQpkgDQH4dNAyUkMtFanHV Diff:
OldNewDifferences
184184
185185 let appearanceInitialMouthAmount = 5
186186
187-let rangesInitialStatsTiers = "4500_7500_9000_9750_9990_10000"
187+let rangesInitialStatsTiers = "500_7500_9000_9750_9990_10000"
188188
189189 let rangesInitialNaturalElem = "400_1000_1400_1600_1750_2000"
190190
191191 let rangesInitialNaturalGenerating = "200_300_375_425_450_500"
192192
193-let rangesInitialNaturalBattle = "10000_10000_10000_10000_10000_10000"
193+let rangesInitialNaturalBattle = "9000_9100_9200_9300_9400_9500"
194194
195195 let battleRestPeriod = 0
196196
218218 else {
219219 let tokenIssue = Issue(tokenName, tokenDesc, 1, 8, true)
220220 let tokenId = calculateAssetId(tokenIssue)
221-[tokenIssue, BinaryEntry(keyTokenId, tokenId), IntegerEntry(keyTokenEmissionRate, tokenInitialEmissionRate), IntegerEntry(keyTokenGenerated, 0), IntegerEntry(keyTokenGeneratedLastUpdate, height), StringEntry(keyEcosystemAddresses, toString(this)), IntegerEntry(keyTotalLands, landsInitialAmount), IntegerEntry(keyCharsBodyAmount, appearanceInitialBodyAmount), IntegerEntry(keyCharsEyesAmount, appearanceInitialEyesAmount), IntegerEntry(keyCharsMouthAmount, appearanceInitialMouthAmount), StringEntry(keyCharsStatsTiersRanges, rangesInitialStatsTiers), StringEntry(keyCharsNaturalElemBonusRanges, rangesInitialNaturalElem), StringEntry(keyCharsNaturalGeneratingBonusRanges, rangesInitialNaturalGenerating), StringEntry(keyCharsNaturalBattleBonusRanges, rangesInitialNaturalBattle), IntegerEntry(keyBattleRestPeriod, battleRestPeriod), IntegerEntry(keyBattleWinChanceHardcap, battleWinChanceHardcap), IntegerEntry(keyBattleWinChanceIncrPerBlock, battleWinChanceIncrPerBlock), StringEntry(keyBattleLootRarityRanges, battleLootRarityRange), IntegerEntry(keyItemsCategories, itemsCategories), StringEntry(keyItemsTypesPerCat, itemsTypesPerCat), IntegerEntry(keyItemsEffectsAmount, itemsEffectsAmount), StringEntry(keyitemsEffectsMaxRanges, itemsEffectsMaxRange)]
221+[tokenIssue, BinaryEntry(keyTokenId, tokenId), IntegerEntry(keyTokenEmissionRate, tokenInitialEmissionRate), IntegerEntry(keyTokenGenerated, 0), IntegerEntry(keyTokenGeneratedLastUpdate, height), StringEntry(keyEcosystemAddresses, makeString([toString(this), toString(charsApp), toString(landsApp), toString(battlesApp)], separator)), IntegerEntry(keyTotalLands, landsInitialAmount), IntegerEntry(keyCharsBodyAmount, appearanceInitialBodyAmount), IntegerEntry(keyCharsEyesAmount, appearanceInitialEyesAmount), IntegerEntry(keyCharsMouthAmount, appearanceInitialMouthAmount), StringEntry(keyCharsStatsTiersRanges, rangesInitialStatsTiers), StringEntry(keyCharsNaturalElemBonusRanges, rangesInitialNaturalElem), StringEntry(keyCharsNaturalGeneratingBonusRanges, rangesInitialNaturalGenerating), StringEntry(keyCharsNaturalBattleBonusRanges, rangesInitialNaturalBattle), IntegerEntry(keyBattleRestPeriod, battleRestPeriod), IntegerEntry(keyBattleWinChanceHardcap, battleWinChanceHardcap), IntegerEntry(keyBattleWinChanceIncrPerBlock, battleWinChanceIncrPerBlock), StringEntry(keyBattleLootRarityRanges, battleLootRarityRange), IntegerEntry(keyItemsCategories, itemsCategories), StringEntry(keyItemsTypesPerCat, itemsTypesPerCat), IntegerEntry(keyItemsEffectsAmount, itemsEffectsAmount), StringEntry(keyitemsEffectsMaxRanges, itemsEffectsMaxRange)]
222222 }
223223
224224
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let separator = "_"
55
66 let govApp = addressFromStringValue("3MyxfwvbueUBynYHfQsutNXZNqNozGiMnsG")
77
88 let charsApp = addressFromStringValue("3NA3LRSigk6knLZ16uTzcdLNow2EQZtXTaJ")
99
1010 let landsApp = addressFromStringValue("3MxiJLrY6Qa5bSYxxSFHSG5bVV2n59x1MGn")
1111
1212 let battlesApp = addressFromStringValue("3MuH9NgpoGaSQufEQLPRikXNS9PXhkhcLzp")
1313
1414 let keyEcosystemAddresses = "ecosystem_addresses"
1515
1616 let keyTokenId = "token_id"
1717
1818 let keyTokenEmissionRate = "token_emission_rate"
1919
2020 let keyTokenGenerated = "token_generated"
2121
2222 let keyTokenGeneratedLastUpdate = "token_generated_last_update"
2323
2424 let keyCharsBodyAmount = "chars_body_amount"
2525
2626 let keyCharsEyesAmount = "chars_eyes_amount"
2727
2828 let keyCharsMouthAmount = "chars_mouth_amount"
2929
3030 let keyCharsStatsTiersRanges = "chars_stats_tiers_ranges"
3131
3232 let keyCharsNaturalElemBonusRanges = "chars_natural_elem_bonus_ranges"
3333
3434 let keyCharsNaturalBattleBonusRanges = "chars_natural_battle_bonus_ranges"
3535
3636 let keyCharsNaturalGeneratingBonusRanges = "chars_natural_generating_bonus_ranges"
3737
3838 let keyTotalLands = "total_lands"
3939
4040 let keyBattleRestPeriod = "battle_rest_period"
4141
4242 let keyBattleWinChanceHardcap = "battle_win_chance_hardcap"
4343
4444 let keyBattleWinChanceIncrPerBlock = "battle_win_chance_incr_per_block"
4545
4646 let keyBattleLootRarityRanges = "battle_loot_rarity_ranges"
4747
4848 let keyItemsCategories = "items_categories"
4949
5050 let keyItemsTypesPerCat = "items_types_per_cat"
5151
5252 let keyItemsEffectsAmount = "items_effects_amount"
5353
5454 let keyitemsEffectsMaxRanges = "items_effects_max_range"
5555
5656 let keyCharsCount = "chars_count"
5757
5858 let keyOwner = "owner"
5959
6060 let keyAppearance = "appearance"
6161
6262 let keyNaturalPyroBonus = "natural_pyro_bonus"
6363
6464 let keyNaturalAquaBonus = "natural_aqua_bonus"
6565
6666 let keyNaturalTerraBonus = "natural_terra_bonus"
6767
6868 let keyNaturalAeroBonus = "natural_aero_bonus"
6969
7070 let keyNaturalBattleBonus = "natural_battle_bonus"
7171
7272 let keyNaturalGeneratingBonus = "natural_generating_bonus"
7373
7474 let keyCharCurrentLand = "char_current_land"
7575
7676 let keyLandPyroPower = "land_pyro_power"
7777
7878 let keyLandAquaPower = "land_aqua_power"
7979
8080 let keyLandTerraPower = "land_terra_power"
8181
8282 let keyLandAeroPower = "land_aero_power"
8383
8484 let keyCharTotalIncome = "char_total_income"
8585
8686 let keyAddressTotalIncome = "address_total_income"
8787
8888 let keyCharPyroPower = "char_pyro_power"
8989
9090 let keyCharAquaPower = "char_aqua_power"
9191
9292 let keyCharTerraPower = "char_terra_power"
9393
9494 let keyCharAeroPower = "char_aero_power"
9595
9696 let keyCharInitialPyroShares = "char_initial_pyro_shares"
9797
9898 let keyCharInitialAquaShares = "char_initial_aqua_shares"
9999
100100 let keyCharInitialTerraShares = "char_initial_terra_shares"
101101
102102 let keyCharInitialAeroShares = "char_initial_aero_shares"
103103
104104 let keyCharInitialLandPyroGrantedTokens = "char_initial_land_pyro_granted_tokens"
105105
106106 let keyCharInitialLandAquaGrantedTokens = "char_initial_land_aqua_granted_tokens"
107107
108108 let keyCharInitialLandTerraGrantedTokens = "char_initial_land_terra_granted_tokens"
109109
110110 let keyCharInitialLandAeroGrantedTokens = "char_initial_land_aero_granted_tokens"
111111
112112 let keyLandLastTokenDistributionUpdate = "land_mast_token_distribution_update"
113113
114114 let keyLandPyroTotalGrantedTokens = "land_pyro_total_granted_tokens"
115115
116116 let keyLandAquaTotalGrantedTokens = "land_aqua_total_granted_tokens"
117117
118118 let keyLandTerraTotalGrantedTokens = "land_terra_total_granted_tokens"
119119
120120 let keyLandAeroTotalGrantedTokens = "land_aero_total_granted_tokens"
121121
122122 let keyLastBattleHeight = "last_battle_height"
123123
124124 let keyItemsCount = "items_count"
125125
126126 let keyItemOwner = "item_owner"
127127
128128 let keyItemCategory = "item_category"
129129
130130 let keyItemType = "item_type"
131131
132132 let keyItemEffects = "item_effects"
133133
134134 let keyItemIsEquippedBy = "item_is_equipped_by"
135135
136136 let keyCharWeapon = "char_weapon"
137137
138138 let keyCharArmor = "char_armor"
139139
140140 let keyCharJewel = "char_jewel"
141141
142142 let keyItemEffectsValuesPerTypes = "item_effects_values_per_types"
143143
144144 func invokeChecks (callerAddr) = if ((isDataStorageUntouched(govApp) != false))
145145 then throw("Governing app not ready")
146146 else {
147147 let ecosystemAddresses = getStringValue(govApp, keyEcosystemAddresses)
148148 if ((contains(ecosystemAddresses, toString(callerAddr)) != false))
149149 then throw("Access denied")
150150 else true
151151 }
152152
153153
154154 func ecosystemCheck (caller) = if ((contains(getStringValue(this, keyEcosystemAddresses), toBase58String(caller.bytes)) != true))
155155 then throw("Access denied ")
156156 else true
157157
158158
159159 func with (a,b) = makeString([toString(b), a], separator)
160160
161161
162162 func withStr (a,b) = makeString([b, a], separator)
163163
164164
165165 func randInt (min,max,txId,nonce) = {
166166 let hash = value(sha256_16Kb(((value(value(blockInfoByHeight(height)).vrf) + txId) + toBytes(nonce))))
167167 value(((value(toInt(hash)) % ((max - min) + 1)) + min))
168168 }
169169
170170
171171 let DEV_MODE = true
172172
173173 let tokenName = "Coucou"
174174
175175 let tokenDesc = "bla bla"
176176
177177 let tokenInitialEmissionRate = 100000000
178178
179179 let landsInitialAmount = 6
180180
181181 let appearanceInitialBodyAmount = 5
182182
183183 let appearanceInitialEyesAmount = 5
184184
185185 let appearanceInitialMouthAmount = 5
186186
187-let rangesInitialStatsTiers = "4500_7500_9000_9750_9990_10000"
187+let rangesInitialStatsTiers = "500_7500_9000_9750_9990_10000"
188188
189189 let rangesInitialNaturalElem = "400_1000_1400_1600_1750_2000"
190190
191191 let rangesInitialNaturalGenerating = "200_300_375_425_450_500"
192192
193-let rangesInitialNaturalBattle = "10000_10000_10000_10000_10000_10000"
193+let rangesInitialNaturalBattle = "9000_9100_9200_9300_9400_9500"
194194
195195 let battleRestPeriod = 0
196196
197197 let battleWinChanceHardcap = 800000
198198
199199 let battleWinChanceIncrPerBlock = 100
200200
201201 let battleLootRarityRange = "8000_9500_9990_10000"
202202
203203 let itemsCategories = 3
204204
205205 let itemsTypesPerCat = "0_6_4_3"
206206
207207 let itemsEffectsAmount = 32
208208
209209 let itemsEffectsMaxRange = makeString(["0", "2000", "2000", "2000", "2000", "2000", "2000", "2000", "2000", "2000", "2000", "2000", "2000", "2000", "2000", "2000", "2000", "500", "500", "500", "500", "100", "100", "100", "100", "100", "100", "100", "100", "100", "100", "100", "100", "100", "100", "100", "100", "25", "25"], separator)
210210
211211 @Callable(i)
212212 func init () = if ((i.caller != this))
213213 then throw("Acces denied")
214214 else if (if (!(isDataStorageUntouched(this)))
215215 then !(DEV_MODE)
216216 else false)
217217 then throw("Init done already")
218218 else {
219219 let tokenIssue = Issue(tokenName, tokenDesc, 1, 8, true)
220220 let tokenId = calculateAssetId(tokenIssue)
221-[tokenIssue, BinaryEntry(keyTokenId, tokenId), IntegerEntry(keyTokenEmissionRate, tokenInitialEmissionRate), IntegerEntry(keyTokenGenerated, 0), IntegerEntry(keyTokenGeneratedLastUpdate, height), StringEntry(keyEcosystemAddresses, toString(this)), IntegerEntry(keyTotalLands, landsInitialAmount), IntegerEntry(keyCharsBodyAmount, appearanceInitialBodyAmount), IntegerEntry(keyCharsEyesAmount, appearanceInitialEyesAmount), IntegerEntry(keyCharsMouthAmount, appearanceInitialMouthAmount), StringEntry(keyCharsStatsTiersRanges, rangesInitialStatsTiers), StringEntry(keyCharsNaturalElemBonusRanges, rangesInitialNaturalElem), StringEntry(keyCharsNaturalGeneratingBonusRanges, rangesInitialNaturalGenerating), StringEntry(keyCharsNaturalBattleBonusRanges, rangesInitialNaturalBattle), IntegerEntry(keyBattleRestPeriod, battleRestPeriod), IntegerEntry(keyBattleWinChanceHardcap, battleWinChanceHardcap), IntegerEntry(keyBattleWinChanceIncrPerBlock, battleWinChanceIncrPerBlock), StringEntry(keyBattleLootRarityRanges, battleLootRarityRange), IntegerEntry(keyItemsCategories, itemsCategories), StringEntry(keyItemsTypesPerCat, itemsTypesPerCat), IntegerEntry(keyItemsEffectsAmount, itemsEffectsAmount), StringEntry(keyitemsEffectsMaxRanges, itemsEffectsMaxRange)]
221+[tokenIssue, BinaryEntry(keyTokenId, tokenId), IntegerEntry(keyTokenEmissionRate, tokenInitialEmissionRate), IntegerEntry(keyTokenGenerated, 0), IntegerEntry(keyTokenGeneratedLastUpdate, height), StringEntry(keyEcosystemAddresses, makeString([toString(this), toString(charsApp), toString(landsApp), toString(battlesApp)], separator)), IntegerEntry(keyTotalLands, landsInitialAmount), IntegerEntry(keyCharsBodyAmount, appearanceInitialBodyAmount), IntegerEntry(keyCharsEyesAmount, appearanceInitialEyesAmount), IntegerEntry(keyCharsMouthAmount, appearanceInitialMouthAmount), StringEntry(keyCharsStatsTiersRanges, rangesInitialStatsTiers), StringEntry(keyCharsNaturalElemBonusRanges, rangesInitialNaturalElem), StringEntry(keyCharsNaturalGeneratingBonusRanges, rangesInitialNaturalGenerating), StringEntry(keyCharsNaturalBattleBonusRanges, rangesInitialNaturalBattle), IntegerEntry(keyBattleRestPeriod, battleRestPeriod), IntegerEntry(keyBattleWinChanceHardcap, battleWinChanceHardcap), IntegerEntry(keyBattleWinChanceIncrPerBlock, battleWinChanceIncrPerBlock), StringEntry(keyBattleLootRarityRanges, battleLootRarityRange), IntegerEntry(keyItemsCategories, itemsCategories), StringEntry(keyItemsTypesPerCat, itemsTypesPerCat), IntegerEntry(keyItemsEffectsAmount, itemsEffectsAmount), StringEntry(keyitemsEffectsMaxRanges, itemsEffectsMaxRange)]
222222 }
223223
224224
225225
226226 @Callable(i)
227227 func manageEcosystemAddresses (add,addr) = if ((i.caller != this))
228228 then throw("Acces denied")
229229 else {
230230 let mAddr = match addressFromString(addr) {
231231 case isAddr: Address =>
232232 addr
233233 case _ =>
234234 throw("Not an address")
235235 }
236236 let currentEcoAddr = getStringValue(this, keyEcosystemAddresses)
237237 let addrInList = contains(currentEcoAddr, mAddr)
238238 if (if ((add == true))
239239 then (addrInList == true)
240240 else false)
241241 then throw("Address already in the list")
242242 else if (if ((add == false))
243243 then (addrInList == false)
244244 else false)
245245 then throw("Address not in the list already")
246246 else {
247247 let newEcoAddr = if ((add == true))
248248 then ((currentEcoAddr + separator) + mAddr)
249249 else {
250250 let ecoAddrList = split(currentEcoAddr, separator)
251251 let addrIndex = valueOrErrorMessage(indexOf(ecoAddrList, mAddr), "Unknown address")
252252 makeString(removeByIndex(ecoAddrList, addrIndex), separator)
253253 }
254254 [StringEntry(keyEcosystemAddresses, newEcoAddr)]
255255 }
256256 }
257257
258258
259259
260260 @Callable(i)
261261 func getGeneratedSupplies () = if (!(ecosystemCheck(i.caller)))
262262 then throw()
263263 else {
264264 let currentGeneratedSupplies = getIntegerValue(this, keyTokenGenerated)
265265 let heightDiff = (height - getIntegerValue(this, keyTokenGeneratedLastUpdate))
266266 let newGeneratedSupplies = (currentGeneratedSupplies + (heightDiff * getIntegerValue(this, keyTokenEmissionRate)))
267267 if ((currentGeneratedSupplies > newGeneratedSupplies))
268268 then throw("newGeneratedSupplies < currentGeneratedSupplies")
269269 else if ((0 > heightDiff))
270270 then throw("heightDiff < 0")
271271 else $Tuple2([IntegerEntry(keyTokenGenerated, newGeneratedSupplies), IntegerEntry(keyTokenGeneratedLastUpdate, height)], newGeneratedSupplies)
272272 }
273273
274274
275275
276276 @Callable(i)
277277 func sendTokenstoApp (amount) = if (!(ecosystemCheck(i.caller)))
278278 then throw()
279279 else {
280280 let tokenId = getBinaryValue(this, keyTokenId)
281281 let tokenReissue = Reissue(tokenId, amount, true)
282282 $Tuple2([tokenReissue, ScriptTransfer(i.caller, amount, tokenId)], amount)
283283 }
284284
285285
286286 @Verifier(tx)
287287 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
288288

github/deemru/w8io/169f3d6 
65.76 ms