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:AAIFAAAAAAAAAAQIAhIAAAAATAAAAAAJc2VwYXJhdG9yAgAAAAFfAAAAAAZnb3ZBcHAJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAECAAAAIzNNeXhmd3ZidWVVQnluWUhmUXN1dE5YWk5xTm96R2lNbnNHAAAAAAhjaGFyc0FwcAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQIAAAAjM05BM0xSU2lnazZrbkxaMTZ1VHpjZExOb3cyRVFadFhUYUoAAAAACGxhbmRzQXBwCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzTXhpSkxyWTZRYTViU1l4eFNGSFNHNWJWVjJuNTl4MU1HbgAAAAAKYmF0dGxlc0FwcAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQIAAAAjM011SDlOZ3BvR2FTUXVmRVFMUFJpa1hOUzlQWGhraGNMenAAAAAAFWtleUVjb3N5c3RlbUFkZHJlc3NlcwIAAAATZWNvc3lzdGVtX2FkZHJlc3NlcwAAAAAKa2V5VG9rZW5JZAIAAAAIdG9rZW5faWQAAAAAFGtleVRva2VuRW1pc3Npb25SYXRlAgAAABN0b2tlbl9lbWlzc2lvbl9yYXRlAAAAABFrZXlUb2tlbkdlbmVyYXRlZAIAAAAPdG9rZW5fZ2VuZXJhdGVkAAAAABtrZXlUb2tlbkdlbmVyYXRlZExhc3RVcGRhdGUCAAAAG3Rva2VuX2dlbmVyYXRlZF9sYXN0X3VwZGF0ZQAAAAASa2V5Q2hhcnNCb2R5QW1vdW50AgAAABFjaGFyc19ib2R5X2Ftb3VudAAAAAASa2V5Q2hhcnNFeWVzQW1vdW50AgAAABFjaGFyc19leWVzX2Ftb3VudAAAAAATa2V5Q2hhcnNNb3V0aEFtb3VudAIAAAASY2hhcnNfbW91dGhfYW1vdW50AAAAABhrZXlDaGFyc1N0YXRzVGllcnNSYW5nZXMCAAAAGGNoYXJzX3N0YXRzX3RpZXJzX3JhbmdlcwAAAAAea2V5Q2hhcnNOYXR1cmFsRWxlbUJvbnVzUmFuZ2VzAgAAAB9jaGFyc19uYXR1cmFsX2VsZW1fYm9udXNfcmFuZ2VzAAAAACBrZXlDaGFyc05hdHVyYWxCYXR0bGVCb251c1JhbmdlcwIAAAAhY2hhcnNfbmF0dXJhbF9iYXR0bGVfYm9udXNfcmFuZ2VzAAAAACRrZXlDaGFyc05hdHVyYWxHZW5lcmF0aW5nQm9udXNSYW5nZXMCAAAAJWNoYXJzX25hdHVyYWxfZ2VuZXJhdGluZ19ib251c19yYW5nZXMAAAAADWtleVRvdGFsTGFuZHMCAAAAC3RvdGFsX2xhbmRzAAAAABNrZXlCYXR0bGVSZXN0UGVyaW9kAgAAABJiYXR0bGVfcmVzdF9wZXJpb2QAAAAAGWtleUJhdHRsZVdpbkNoYW5jZUhhcmRjYXACAAAAGWJhdHRsZV93aW5fY2hhbmNlX2hhcmRjYXAAAAAAHmtleUJhdHRsZVdpbkNoYW5jZUluY3JQZXJCbG9jawIAAAAgYmF0dGxlX3dpbl9jaGFuY2VfaW5jcl9wZXJfYmxvY2sAAAAAGWtleUJhdHRsZUxvb3RSYXJpdHlSYW5nZXMCAAAAGWJhdHRsZV9sb290X3Jhcml0eV9yYW5nZXMAAAAAEmtleUl0ZW1zQ2F0ZWdvcmllcwIAAAAQaXRlbXNfY2F0ZWdvcmllcwAAAAATa2V5SXRlbXNUeXBlc1BlckNhdAIAAAATaXRlbXNfdHlwZXNfcGVyX2NhdAAAAAAVa2V5SXRlbXNFZmZlY3RzQW1vdW50AgAAABRpdGVtc19lZmZlY3RzX2Ftb3VudAAAAAAYa2V5aXRlbXNFZmZlY3RzTWF4UmFuZ2VzAgAAABdpdGVtc19lZmZlY3RzX21heF9yYW5nZQAAAAANa2V5Q2hhcnNDb3VudAIAAAALY2hhcnNfY291bnQAAAAACGtleU93bmVyAgAAAAVvd25lcgAAAAANa2V5QXBwZWFyYW5jZQIAAAAKYXBwZWFyYW5jZQAAAAATa2V5TmF0dXJhbFB5cm9Cb251cwIAAAASbmF0dXJhbF9weXJvX2JvbnVzAAAAABNrZXlOYXR1cmFsQXF1YUJvbnVzAgAAABJuYXR1cmFsX2FxdWFfYm9udXMAAAAAFGtleU5hdHVyYWxUZXJyYUJvbnVzAgAAABNuYXR1cmFsX3RlcnJhX2JvbnVzAAAAABNrZXlOYXR1cmFsQWVyb0JvbnVzAgAAABJuYXR1cmFsX2Flcm9fYm9udXMAAAAAFWtleU5hdHVyYWxCYXR0bGVCb251cwIAAAAUbmF0dXJhbF9iYXR0bGVfYm9udXMAAAAAGWtleU5hdHVyYWxHZW5lcmF0aW5nQm9udXMCAAAAGG5hdHVyYWxfZ2VuZXJhdGluZ19ib251cwAAAAASa2V5Q2hhckN1cnJlbnRMYW5kAgAAABFjaGFyX2N1cnJlbnRfbGFuZAAAAAAQa2V5TGFuZFB5cm9Qb3dlcgIAAAAPbGFuZF9weXJvX3Bvd2VyAAAAABBrZXlMYW5kQXF1YVBvd2VyAgAAAA9sYW5kX2FxdWFfcG93ZXIAAAAAEWtleUxhbmRUZXJyYVBvd2VyAgAAABBsYW5kX3RlcnJhX3Bvd2VyAAAAABBrZXlMYW5kQWVyb1Bvd2VyAgAAAA9sYW5kX2Flcm9fcG93ZXIAAAAAEmtleUNoYXJUb3RhbEluY29tZQIAAAARY2hhcl90b3RhbF9pbmNvbWUAAAAAFWtleUFkZHJlc3NUb3RhbEluY29tZQIAAAAUYWRkcmVzc190b3RhbF9pbmNvbWUAAAAAEGtleUNoYXJQeXJvUG93ZXICAAAAD2NoYXJfcHlyb19wb3dlcgAAAAAQa2V5Q2hhckFxdWFQb3dlcgIAAAAPY2hhcl9hcXVhX3Bvd2VyAAAAABFrZXlDaGFyVGVycmFQb3dlcgIAAAAQY2hhcl90ZXJyYV9wb3dlcgAAAAAQa2V5Q2hhckFlcm9Qb3dlcgIAAAAPY2hhcl9hZXJvX3Bvd2VyAAAAABhrZXlDaGFySW5pdGlhbFB5cm9TaGFyZXMCAAAAGGNoYXJfaW5pdGlhbF9weXJvX3NoYXJlcwAAAAAYa2V5Q2hhckluaXRpYWxBcXVhU2hhcmVzAgAAABhjaGFyX2luaXRpYWxfYXF1YV9zaGFyZXMAAAAAGWtleUNoYXJJbml0aWFsVGVycmFTaGFyZXMCAAAAGWNoYXJfaW5pdGlhbF90ZXJyYV9zaGFyZXMAAAAAGGtleUNoYXJJbml0aWFsQWVyb1NoYXJlcwIAAAAYY2hhcl9pbml0aWFsX2Flcm9fc2hhcmVzAAAAACNrZXlDaGFySW5pdGlhbExhbmRQeXJvR3JhbnRlZFRva2VucwIAAAAlY2hhcl9pbml0aWFsX2xhbmRfcHlyb19ncmFudGVkX3Rva2VucwAAAAAja2V5Q2hhckluaXRpYWxMYW5kQXF1YUdyYW50ZWRUb2tlbnMCAAAAJWNoYXJfaW5pdGlhbF9sYW5kX2FxdWFfZ3JhbnRlZF90b2tlbnMAAAAAJGtleUNoYXJJbml0aWFsTGFuZFRlcnJhR3JhbnRlZFRva2VucwIAAAAmY2hhcl9pbml0aWFsX2xhbmRfdGVycmFfZ3JhbnRlZF90b2tlbnMAAAAAI2tleUNoYXJJbml0aWFsTGFuZEFlcm9HcmFudGVkVG9rZW5zAgAAACVjaGFyX2luaXRpYWxfbGFuZF9hZXJvX2dyYW50ZWRfdG9rZW5zAAAAACJrZXlMYW5kTGFzdFRva2VuRGlzdHJpYnV0aW9uVXBkYXRlAgAAACNsYW5kX21hc3RfdG9rZW5fZGlzdHJpYnV0aW9uX3VwZGF0ZQAAAAAda2V5TGFuZFB5cm9Ub3RhbEdyYW50ZWRUb2tlbnMCAAAAHmxhbmRfcHlyb190b3RhbF9ncmFudGVkX3Rva2VucwAAAAAda2V5TGFuZEFxdWFUb3RhbEdyYW50ZWRUb2tlbnMCAAAAHmxhbmRfYXF1YV90b3RhbF9ncmFudGVkX3Rva2VucwAAAAAea2V5TGFuZFRlcnJhVG90YWxHcmFudGVkVG9rZW5zAgAAAB9sYW5kX3RlcnJhX3RvdGFsX2dyYW50ZWRfdG9rZW5zAAAAAB1rZXlMYW5kQWVyb1RvdGFsR3JhbnRlZFRva2VucwIAAAAebGFuZF9hZXJvX3RvdGFsX2dyYW50ZWRfdG9rZW5zAAAAABNrZXlMYXN0QmF0dGxlSGVpZ2h0AgAAABJsYXN0X2JhdHRsZV9oZWlnaHQAAAAADWtleUl0ZW1zQ291bnQCAAAAC2l0ZW1zX2NvdW50AAAAAAxrZXlJdGVtT3duZXICAAAACml0ZW1fb3duZXIAAAAAD2tleUl0ZW1DYXRlZ29yeQIAAAANaXRlbV9jYXRlZ29yeQAAAAALa2V5SXRlbVR5cGUCAAAACWl0ZW1fdHlwZQAAAAAOa2V5SXRlbUVmZmVjdHMCAAAADGl0ZW1fZWZmZWN0cwAAAAATa2V5SXRlbUlzRXF1aXBwZWRCeQIAAAATaXRlbV9pc19lcXVpcHBlZF9ieQAAAAANa2V5Q2hhcldlYXBvbgIAAAALY2hhcl93ZWFwb24AAAAADGtleUNoYXJBcm1vcgIAAAAKY2hhcl9hcm1vcgAAAAAMa2V5Q2hhckpld2VsAgAAAApjaGFyX2pld2VsAAAAABxrZXlJdGVtRWZmZWN0c1ZhbHVlc1BlclR5cGVzAgAAAB1pdGVtX2VmZmVjdHNfdmFsdWVzX3Blcl90eXBlcwEAAAAMaW52b2tlQ2hlY2tzAAAAAQAAAApjYWxsZXJBZGRyAwkBAAAAAiE9AAAAAgkABB4AAAABBQAAAAZnb3ZBcHAHCQAAAgAAAAECAAAAF0dvdmVybmluZyBhcHAgbm90IHJlYWR5BAAAABJlY29zeXN0ZW1BZGRyZXNzZXMJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABmdvdkFwcAUAAAAVa2V5RWNvc3lzdGVtQWRkcmVzc2VzAwkBAAAAAiE9AAAAAgkBAAAACGNvbnRhaW5zAAAAAgUAAAASZWNvc3lzdGVtQWRkcmVzc2VzCQAEJQAAAAEFAAAACmNhbGxlckFkZHIHCQAAAgAAAAECAAAADUFjY2VzcyBkZW5pZWQGAQAAAA5lY29zeXN0ZW1DaGVjawAAAAEAAAAGY2FsbGVyAwkBAAAAAiE9AAAAAgkBAAAACGNvbnRhaW5zAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwUAAAAVa2V5RWNvc3lzdGVtQWRkcmVzc2VzCQACWAAAAAEIBQAAAAZjYWxsZXIAAAAFYnl0ZXMGCQAAAgAAAAECAAAADkFjY2VzcyBkZW5pZWQgBgEAAAAEd2l0aAAAAAIAAAABYQAAAAFiCQAEuQAAAAIJAARMAAAAAgkAAaQAAAABBQAAAAFiCQAETAAAAAIFAAAAAWEFAAAAA25pbAUAAAAJc2VwYXJhdG9yAQAAAAd3aXRoU3RyAAAAAgAAAAFhAAAAAWIJAAS5AAAAAgkABEwAAAACBQAAAAFiCQAETAAAAAIFAAAAAWEFAAAAA25pbAUAAAAJc2VwYXJhdG9yAQAAAAdyYW5kSW50AAAABAAAAANtaW4AAAADbWF4AAAABHR4SWQAAAAFbm9uY2UEAAAABGhhc2gJAQAAAAV2YWx1ZQAAAAEJAAtUAAAAAQkAAMsAAAACCQAAywAAAAIJAQAAAAV2YWx1ZQAAAAEICQEAAAAFdmFsdWUAAAABCQAD7QAAAAEFAAAABmhlaWdodAAAAAN2cmYFAAAABHR4SWQJAAGaAAAAAQUAAAAFbm9uY2UJAQAAAAV2YWx1ZQAAAAEJAABkAAAAAgkAAGoAAAACCQEAAAAFdmFsdWUAAAABCQAEsQAAAAEFAAAABGhhc2gJAABkAAAAAgkAAGUAAAACBQAAAANtYXgFAAAAA21pbgAAAAAAAAAAAQUAAAADbWluAQAAABVnZW5SYW5kb21OYXR1cmFsQm9udXMAAAAEAAAAD3N0YXRzVGllclJhbmdlcwAAAAtib251c1JhbmdlcwAAAA1zdGFydGluZ05vbmNlAAAABHR4SWQEAAAAA3NUMQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAD3N0YXRzVGllclJhbmdlcwAAAAAAAAAAAAQAAAADc1QyCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAPc3RhdHNUaWVyUmFuZ2VzAAAAAAAAAAABBAAAAANzVDMJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAA9zdGF0c1RpZXJSYW5nZXMAAAAAAAAAAAIEAAAAA3NUNAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAD3N0YXRzVGllclJhbmdlcwAAAAAAAAAAAwQAAAADc1Q1CQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAPc3RhdHNUaWVyUmFuZ2VzAAAAAAAAAAAEBAAAAANzVDYJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAA9zdGF0c1RpZXJSYW5nZXMAAAAAAAAAAAUEAAAAA2JUMQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAC2JvbnVzUmFuZ2VzAAAAAAAAAAAABAAAAANiVDIJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAtib251c1JhbmdlcwAAAAAAAAAAAQQAAAADYlQzCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAALYm9udXNSYW5nZXMAAAAAAAAAAAIEAAAAA2JUNAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAC2JvbnVzUmFuZ2VzAAAAAAAAAAADBAAAAANiVDUJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAtib251c1JhbmdlcwAAAAAAAAAABAQAAAADYlQ2CQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAALYm9udXNSYW5nZXMAAAAAAAAAAAUEAAAACnRpZXJSZXN1bHQJAQAAAAdyYW5kSW50AAAABAAAAAAAAAAAAAAAAAAAAAAnEAUAAAAEdHhJZAUAAAANc3RhcnRpbmdOb25jZQMJAABnAAAAAgUAAAADc1QxBQAAAAp0aWVyUmVzdWx0CQEAAAAHcmFuZEludAAAAAQAAAAAAAAAAAAFAAAAA2JUMQUAAAAEdHhJZAkAAGQAAAACBQAAAA1zdGFydGluZ05vbmNlAAAAAAAAAAABAwkAAGcAAAACBQAAAANzVDIFAAAACnRpZXJSZXN1bHQJAQAAAAdyYW5kSW50AAAABAkAAGQAAAACBQAAAANiVDEAAAAAAAAAAAEFAAAAA2JUMgUAAAAEdHhJZAkAAGQAAAACBQAAAA1zdGFydGluZ05vbmNlAAAAAAAAAAACAwkAAGcAAAACBQAAAANzVDMFAAAACnRpZXJSZXN1bHQJAQAAAAdyYW5kSW50AAAABAkAAGQAAAACBQAAAANiVDIAAAAAAAAAAAEFAAAAA2JUMwUAAAAEdHhJZAkAAGQAAAACBQAAAA1zdGFydGluZ05vbmNlAAAAAAAAAAADAwkAAGcAAAACBQAAAANzVDQFAAAACnRpZXJSZXN1bHQJAQAAAAdyYW5kSW50AAAABAkAAGQAAAACBQAAAANiVDMAAAAAAAAAAAEFAAAAA2JUNAUAAAAEdHhJZAkAAGQAAAACBQAAAA1zdGFydGluZ05vbmNlAAAAAAAAAAAEAwkAAGcAAAACBQAAAANzVDUFAAAACnRpZXJSZXN1bHQJAQAAAAdyYW5kSW50AAAABAkAAGQAAAACBQAAAANiVDQAAAAAAAAAAAEFAAAAA2JUNQUAAAAEdHhJZAkAAGQAAAACBQAAAA1zdGFydGluZ05vbmNlAAAAAAAAAAAFCQEAAAAHcmFuZEludAAAAAQJAABkAAAAAgUAAAADYlQ1AAAAAAAAAAABBQAAAANiVDYFAAAABHR4SWQJAABkAAAAAgUAAAANc3RhcnRpbmdOb25jZQAAAAAAAAAABgAAAAEAAAABaQEAAAAKY3JlYXRlQ2hhcgAAAAADCQEAAAACIT0AAAACCQEAAAAMaW52b2tlQ2hlY2tzAAAAAQgFAAAAAWkAAAAGY2FsbGVyBgkBAAAABXRocm93AAAAAAQAAAAEdHhJZAgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAQAAAAKY2FsbGVyQWRkcgkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAZjaGFySWQJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAANa2V5Q2hhcnNDb3VudAAAAAAAAAAAAQQAAAAMYm9kaWVzQW1vdW50CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAZnb3ZBcHAFAAAAEmtleUNoYXJzQm9keUFtb3VudAQAAAAKZXllc0Ftb3VudAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAGZ292QXBwBQAAABJrZXlDaGFyc0V5ZXNBbW91bnQEAAAADG1vdXRoc0Ftb3VudAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAGZ292QXBwBQAAABNrZXlDaGFyc01vdXRoQW1vdW50BAAAABBzdGF0c1RpZXJzUmFuZ2VzCQAEtQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABmdvdkFwcAUAAAAYa2V5Q2hhcnNTdGF0c1RpZXJzUmFuZ2VzBQAAAAlzZXBhcmF0b3IEAAAAEm5hdEVsZW1Cb251c1JhbmdlcwkABLUAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAZnb3ZBcHAFAAAAHmtleUNoYXJzTmF0dXJhbEVsZW1Cb251c1JhbmdlcwUAAAAJc2VwYXJhdG9yBAAAABRuYXRCYXR0bGVCb251c1JhbmdlcwkABLUAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAZnb3ZBcHAFAAAAIGtleUNoYXJzTmF0dXJhbEJhdHRsZUJvbnVzUmFuZ2VzBQAAAAlzZXBhcmF0b3IEAAAAGG5hdEdlbmVyYXRpbmdCb251c1JhbmdlcwkABLUAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAZnb3ZBcHAFAAAAJGtleUNoYXJzTmF0dXJhbEdlbmVyYXRpbmdCb251c1JhbmdlcwUAAAAJc2VwYXJhdG9yBAAAAAphcHBlYXJhbmNlCQAEuQAAAAIJAARMAAAAAgkAAaQAAAABCQEAAAAHcmFuZEludAAAAAQAAAAAAAAAAAEFAAAADGJvZGllc0Ftb3VudAUAAAAEdHhJZAAAAAAAAAAAAAkABEwAAAACCQABpAAAAAEJAQAAAAdyYW5kSW50AAAABAAAAAAAAAAAAQUAAAAKZXllc0Ftb3VudAUAAAAEdHhJZAAAAAAAAAAAAQkABEwAAAACCQABpAAAAAEJAQAAAAdyYW5kSW50AAAABAAAAAAAAAAAAQUAAAAMbW91dGhzQW1vdW50BQAAAAR0eElkAAAAAAAAAAACBQAAAANuaWwFAAAACXNlcGFyYXRvcgQAAAAMbmF0UHlyb0JvbnVzCQEAAAAVZ2VuUmFuZG9tTmF0dXJhbEJvbnVzAAAABAUAAAAQc3RhdHNUaWVyc1JhbmdlcwUAAAASbmF0RWxlbUJvbnVzUmFuZ2VzAAAAAAAAAAADBQAAAAR0eElkBAAAAAxuYXRBcXVhQm9udXMJAQAAABVnZW5SYW5kb21OYXR1cmFsQm9udXMAAAAEBQAAABBzdGF0c1RpZXJzUmFuZ2VzBQAAABJuYXRFbGVtQm9udXNSYW5nZXMAAAAAAAAAAAoFAAAABHR4SWQEAAAADW5hdFRlcnJhQm9udXMJAQAAABVnZW5SYW5kb21OYXR1cmFsQm9udXMAAAAEBQAAABBzdGF0c1RpZXJzUmFuZ2VzBQAAABJuYXRFbGVtQm9udXNSYW5nZXMAAAAAAAAAABEFAAAABHR4SWQEAAAADG5hdEFlcm9Cb251cwkBAAAAFWdlblJhbmRvbU5hdHVyYWxCb251cwAAAAQFAAAAEHN0YXRzVGllcnNSYW5nZXMFAAAAEm5hdEVsZW1Cb251c1JhbmdlcwAAAAAAAAAAGAUAAAAEdHhJZAQAAAASbmF0R2VuZXJhdGluZ0JvbnVzCQEAAAAVZ2VuUmFuZG9tTmF0dXJhbEJvbnVzAAAABAUAAAAQc3RhdHNUaWVyc1JhbmdlcwUAAAAYbmF0R2VuZXJhdGluZ0JvbnVzUmFuZ2VzAAAAAAAAAAAfBQAAAAR0eElkBAAAAA5uYXRCYXR0bGVCb251cwkBAAAAFWdlblJhbmRvbU5hdHVyYWxCb251cwAAAAQFAAAAEHN0YXRzVGllcnNSYW5nZXMFAAAAFG5hdEJhdHRsZUJvbnVzUmFuZ2VzAAAAAAAAAAAmBQAAAAR0eElkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAIa2V5T3duZXIFAAAABmNoYXJJZAUAAAAKY2FsbGVyQWRkcgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAADWtleUFwcGVhcmFuY2UFAAAABmNoYXJJZAUAAAAKYXBwZWFyYW5jZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABNrZXlOYXR1cmFsUHlyb0JvbnVzBQAAAAZjaGFySWQFAAAADG5hdFB5cm9Cb251cwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABNrZXlOYXR1cmFsQXF1YUJvbnVzBQAAAAZjaGFySWQFAAAADG5hdEFxdWFCb251cwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABRrZXlOYXR1cmFsVGVycmFCb251cwUAAAAGY2hhcklkBQAAAA1uYXRUZXJyYUJvbnVzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAE2tleU5hdHVyYWxBZXJvQm9udXMFAAAABmNoYXJJZAUAAAAMbmF0QWVyb0JvbnVzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAFWtleU5hdHVyYWxCYXR0bGVCb251cwUAAAAGY2hhcklkBQAAAA5uYXRCYXR0bGVCb251cwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABlrZXlOYXR1cmFsR2VuZXJhdGluZ0JvbnVzBQAAAAZjaGFySWQFAAAAEm5hdEdlbmVyYXRpbmdCb251cwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAANa2V5Q2hhcnNDb3VudAkAAGQAAAACBQAAAAZjaGFySWQAAAAAAAAAAAEFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V53U0+zg==", "height": 2064434, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EH6F1nYWZQHZZXjnwRsM9abBC79iw7zqgFtdv48bLezg Next: F8T3oZf5rg8yhCFrpxmCddnhUKogcYZ5Njw2ywvTszpw Diff:
OldNewDifferences
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let separator = "_"
5+
6+let govApp = addressFromStringValue("3MyxfwvbueUBynYHfQsutNXZNqNozGiMnsG")
7+
8+let charsApp = addressFromStringValue("3NA3LRSigk6knLZ16uTzcdLNow2EQZtXTaJ")
9+
10+let landsApp = addressFromStringValue("3MxiJLrY6Qa5bSYxxSFHSG5bVV2n59x1MGn")
11+
12+let battlesApp = addressFromStringValue("3MuH9NgpoGaSQufEQLPRikXNS9PXhkhcLzp")
13+
14+let keyEcosystemAddresses = "ecosystem_addresses"
15+
16+let keyTokenId = "token_id"
17+
18+let keyTokenEmissionRate = "token_emission_rate"
19+
20+let keyTokenGenerated = "token_generated"
21+
22+let keyTokenGeneratedLastUpdate = "token_generated_last_update"
23+
24+let keyCharsBodyAmount = "chars_body_amount"
25+
26+let keyCharsEyesAmount = "chars_eyes_amount"
27+
28+let keyCharsMouthAmount = "chars_mouth_amount"
29+
30+let keyCharsStatsTiersRanges = "chars_stats_tiers_ranges"
31+
32+let keyCharsNaturalElemBonusRanges = "chars_natural_elem_bonus_ranges"
33+
34+let keyCharsNaturalBattleBonusRanges = "chars_natural_battle_bonus_ranges"
35+
36+let keyCharsNaturalGeneratingBonusRanges = "chars_natural_generating_bonus_ranges"
37+
38+let keyTotalLands = "total_lands"
39+
40+let keyBattleRestPeriod = "battle_rest_period"
41+
42+let keyBattleWinChanceHardcap = "battle_win_chance_hardcap"
43+
44+let keyBattleWinChanceIncrPerBlock = "battle_win_chance_incr_per_block"
45+
46+let keyBattleLootRarityRanges = "battle_loot_rarity_ranges"
47+
48+let keyItemsCategories = "items_categories"
49+
50+let keyItemsTypesPerCat = "items_types_per_cat"
51+
52+let keyItemsEffectsAmount = "items_effects_amount"
53+
54+let keyitemsEffectsMaxRanges = "items_effects_max_range"
555
656 let keyCharsCount = "chars_count"
757
2171
2272 let keyNaturalGeneratingBonus = "natural_generating_bonus"
2373
24-let govApp = addressFromStringValue("3MyxfwvbueUBynYHfQsutNXZNqNozGiMnsG")
74+let keyCharCurrentLand = "char_current_land"
2575
26-let keyEcosystemAddresses = "ecosystem_addresses"
76+let keyLandPyroPower = "land_pyro_power"
2777
28-let keyCharsBodyAmount = "chars_body_amount"
78+let keyLandAquaPower = "land_aqua_power"
2979
30-let keyCharsEyesAmount = "chars_eyes_amount"
80+let keyLandTerraPower = "land_terra_power"
3181
32-let keyCharsMouthAmount = "chars_mouth_amount"
82+let keyLandAeroPower = "land_aero_power"
3383
34-let keyCharsStatsTiersRanges = "chars_stats_tiers_ranges"
84+let keyCharTotalIncome = "char_total_income"
3585
36-let keyCharsNaturalElemBonusRanges = "chars_natural_elem_bonus_ranges"
86+let keyAddressTotalIncome = "address_total_income"
3787
38-let keyCharsNaturalBattleBonusRanges = "chars_natural_battle_bonus_ranges"
88+let keyCharPyroPower = "char_pyro_power"
3989
40-let keyCharsNaturalGeneratingBonusRanges = "chars_natural_generating_bonus_ranges"
90+let keyCharAquaPower = "char_aqua_power"
91+
92+let keyCharTerraPower = "char_terra_power"
93+
94+let keyCharAeroPower = "char_aero_power"
95+
96+let keyCharInitialPyroShares = "char_initial_pyro_shares"
97+
98+let keyCharInitialAquaShares = "char_initial_aqua_shares"
99+
100+let keyCharInitialTerraShares = "char_initial_terra_shares"
101+
102+let keyCharInitialAeroShares = "char_initial_aero_shares"
103+
104+let keyCharInitialLandPyroGrantedTokens = "char_initial_land_pyro_granted_tokens"
105+
106+let keyCharInitialLandAquaGrantedTokens = "char_initial_land_aqua_granted_tokens"
107+
108+let keyCharInitialLandTerraGrantedTokens = "char_initial_land_terra_granted_tokens"
109+
110+let keyCharInitialLandAeroGrantedTokens = "char_initial_land_aero_granted_tokens"
111+
112+let keyLandLastTokenDistributionUpdate = "land_mast_token_distribution_update"
113+
114+let keyLandPyroTotalGrantedTokens = "land_pyro_total_granted_tokens"
115+
116+let keyLandAquaTotalGrantedTokens = "land_aqua_total_granted_tokens"
117+
118+let keyLandTerraTotalGrantedTokens = "land_terra_total_granted_tokens"
119+
120+let keyLandAeroTotalGrantedTokens = "land_aero_total_granted_tokens"
121+
122+let keyLastBattleHeight = "last_battle_height"
123+
124+let keyItemsCount = "items_count"
125+
126+let keyItemOwner = "item_owner"
127+
128+let keyItemCategory = "item_category"
129+
130+let keyItemType = "item_type"
131+
132+let keyItemEffects = "item_effects"
133+
134+let keyItemIsEquippedBy = "item_is_equipped_by"
135+
136+let keyCharWeapon = "char_weapon"
137+
138+let keyCharArmor = "char_armor"
139+
140+let keyCharJewel = "char_jewel"
141+
142+let keyItemEffectsValuesPerTypes = "item_effects_values_per_types"
41143
42144 func invokeChecks (callerAddr) = if ((isDataStorageUntouched(govApp) != false))
43145 then throw("Governing app not ready")
49151 }
50152
51153
52-func with (a,b) = {
53- let c = match b {
54- case isInt: Int =>
55- toString(isInt)
56- case isStr: String =>
57- isStr
58- case _ =>
59- throw("Matching issue in with function")
60- }
61- ((c + separator) + a)
62- }
154+func ecosystemCheck (caller) = if ((contains(getStringValue(this, keyEcosystemAddresses), toBase58String(caller.bytes)) != true))
155+ then throw("Access denied ")
156+ else true
157+
158+
159+func with (a,b) = makeString([toString(b), a], separator)
160+
161+
162+func withStr (a,b) = makeString([b, a], separator)
63163
64164
65165 func randInt (min,max,txId,nonce) = {
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let separator = "_"
5+
6+let govApp = addressFromStringValue("3MyxfwvbueUBynYHfQsutNXZNqNozGiMnsG")
7+
8+let charsApp = addressFromStringValue("3NA3LRSigk6knLZ16uTzcdLNow2EQZtXTaJ")
9+
10+let landsApp = addressFromStringValue("3MxiJLrY6Qa5bSYxxSFHSG5bVV2n59x1MGn")
11+
12+let battlesApp = addressFromStringValue("3MuH9NgpoGaSQufEQLPRikXNS9PXhkhcLzp")
13+
14+let keyEcosystemAddresses = "ecosystem_addresses"
15+
16+let keyTokenId = "token_id"
17+
18+let keyTokenEmissionRate = "token_emission_rate"
19+
20+let keyTokenGenerated = "token_generated"
21+
22+let keyTokenGeneratedLastUpdate = "token_generated_last_update"
23+
24+let keyCharsBodyAmount = "chars_body_amount"
25+
26+let keyCharsEyesAmount = "chars_eyes_amount"
27+
28+let keyCharsMouthAmount = "chars_mouth_amount"
29+
30+let keyCharsStatsTiersRanges = "chars_stats_tiers_ranges"
31+
32+let keyCharsNaturalElemBonusRanges = "chars_natural_elem_bonus_ranges"
33+
34+let keyCharsNaturalBattleBonusRanges = "chars_natural_battle_bonus_ranges"
35+
36+let keyCharsNaturalGeneratingBonusRanges = "chars_natural_generating_bonus_ranges"
37+
38+let keyTotalLands = "total_lands"
39+
40+let keyBattleRestPeriod = "battle_rest_period"
41+
42+let keyBattleWinChanceHardcap = "battle_win_chance_hardcap"
43+
44+let keyBattleWinChanceIncrPerBlock = "battle_win_chance_incr_per_block"
45+
46+let keyBattleLootRarityRanges = "battle_loot_rarity_ranges"
47+
48+let keyItemsCategories = "items_categories"
49+
50+let keyItemsTypesPerCat = "items_types_per_cat"
51+
52+let keyItemsEffectsAmount = "items_effects_amount"
53+
54+let keyitemsEffectsMaxRanges = "items_effects_max_range"
555
656 let keyCharsCount = "chars_count"
757
858 let keyOwner = "owner"
959
1060 let keyAppearance = "appearance"
1161
1262 let keyNaturalPyroBonus = "natural_pyro_bonus"
1363
1464 let keyNaturalAquaBonus = "natural_aqua_bonus"
1565
1666 let keyNaturalTerraBonus = "natural_terra_bonus"
1767
1868 let keyNaturalAeroBonus = "natural_aero_bonus"
1969
2070 let keyNaturalBattleBonus = "natural_battle_bonus"
2171
2272 let keyNaturalGeneratingBonus = "natural_generating_bonus"
2373
24-let govApp = addressFromStringValue("3MyxfwvbueUBynYHfQsutNXZNqNozGiMnsG")
74+let keyCharCurrentLand = "char_current_land"
2575
26-let keyEcosystemAddresses = "ecosystem_addresses"
76+let keyLandPyroPower = "land_pyro_power"
2777
28-let keyCharsBodyAmount = "chars_body_amount"
78+let keyLandAquaPower = "land_aqua_power"
2979
30-let keyCharsEyesAmount = "chars_eyes_amount"
80+let keyLandTerraPower = "land_terra_power"
3181
32-let keyCharsMouthAmount = "chars_mouth_amount"
82+let keyLandAeroPower = "land_aero_power"
3383
34-let keyCharsStatsTiersRanges = "chars_stats_tiers_ranges"
84+let keyCharTotalIncome = "char_total_income"
3585
36-let keyCharsNaturalElemBonusRanges = "chars_natural_elem_bonus_ranges"
86+let keyAddressTotalIncome = "address_total_income"
3787
38-let keyCharsNaturalBattleBonusRanges = "chars_natural_battle_bonus_ranges"
88+let keyCharPyroPower = "char_pyro_power"
3989
40-let keyCharsNaturalGeneratingBonusRanges = "chars_natural_generating_bonus_ranges"
90+let keyCharAquaPower = "char_aqua_power"
91+
92+let keyCharTerraPower = "char_terra_power"
93+
94+let keyCharAeroPower = "char_aero_power"
95+
96+let keyCharInitialPyroShares = "char_initial_pyro_shares"
97+
98+let keyCharInitialAquaShares = "char_initial_aqua_shares"
99+
100+let keyCharInitialTerraShares = "char_initial_terra_shares"
101+
102+let keyCharInitialAeroShares = "char_initial_aero_shares"
103+
104+let keyCharInitialLandPyroGrantedTokens = "char_initial_land_pyro_granted_tokens"
105+
106+let keyCharInitialLandAquaGrantedTokens = "char_initial_land_aqua_granted_tokens"
107+
108+let keyCharInitialLandTerraGrantedTokens = "char_initial_land_terra_granted_tokens"
109+
110+let keyCharInitialLandAeroGrantedTokens = "char_initial_land_aero_granted_tokens"
111+
112+let keyLandLastTokenDistributionUpdate = "land_mast_token_distribution_update"
113+
114+let keyLandPyroTotalGrantedTokens = "land_pyro_total_granted_tokens"
115+
116+let keyLandAquaTotalGrantedTokens = "land_aqua_total_granted_tokens"
117+
118+let keyLandTerraTotalGrantedTokens = "land_terra_total_granted_tokens"
119+
120+let keyLandAeroTotalGrantedTokens = "land_aero_total_granted_tokens"
121+
122+let keyLastBattleHeight = "last_battle_height"
123+
124+let keyItemsCount = "items_count"
125+
126+let keyItemOwner = "item_owner"
127+
128+let keyItemCategory = "item_category"
129+
130+let keyItemType = "item_type"
131+
132+let keyItemEffects = "item_effects"
133+
134+let keyItemIsEquippedBy = "item_is_equipped_by"
135+
136+let keyCharWeapon = "char_weapon"
137+
138+let keyCharArmor = "char_armor"
139+
140+let keyCharJewel = "char_jewel"
141+
142+let keyItemEffectsValuesPerTypes = "item_effects_values_per_types"
41143
42144 func invokeChecks (callerAddr) = if ((isDataStorageUntouched(govApp) != false))
43145 then throw("Governing app not ready")
44146 else {
45147 let ecosystemAddresses = getStringValue(govApp, keyEcosystemAddresses)
46148 if ((contains(ecosystemAddresses, toString(callerAddr)) != false))
47149 then throw("Access denied")
48150 else true
49151 }
50152
51153
52-func with (a,b) = {
53- let c = match b {
54- case isInt: Int =>
55- toString(isInt)
56- case isStr: String =>
57- isStr
58- case _ =>
59- throw("Matching issue in with function")
60- }
61- ((c + separator) + a)
62- }
154+func ecosystemCheck (caller) = if ((contains(getStringValue(this, keyEcosystemAddresses), toBase58String(caller.bytes)) != true))
155+ then throw("Access denied ")
156+ else true
157+
158+
159+func with (a,b) = makeString([toString(b), a], separator)
160+
161+
162+func withStr (a,b) = makeString([b, a], separator)
63163
64164
65165 func randInt (min,max,txId,nonce) = {
66166 let hash = value(sha256_16Kb(((value(value(blockInfoByHeight(height)).vrf) + txId) + toBytes(nonce))))
67167 value(((value(toInt(hash)) % ((max - min) + 1)) + min))
68168 }
69169
70170
71171 func genRandomNaturalBonus (statsTierRanges,bonusRanges,startingNonce,txId) = {
72172 let sT1 = parseIntValue(statsTierRanges[0])
73173 let sT2 = parseIntValue(statsTierRanges[1])
74174 let sT3 = parseIntValue(statsTierRanges[2])
75175 let sT4 = parseIntValue(statsTierRanges[3])
76176 let sT5 = parseIntValue(statsTierRanges[4])
77177 let sT6 = parseIntValue(statsTierRanges[5])
78178 let bT1 = parseIntValue(bonusRanges[0])
79179 let bT2 = parseIntValue(bonusRanges[1])
80180 let bT3 = parseIntValue(bonusRanges[2])
81181 let bT4 = parseIntValue(bonusRanges[3])
82182 let bT5 = parseIntValue(bonusRanges[4])
83183 let bT6 = parseIntValue(bonusRanges[5])
84184 let tierResult = randInt(0, 10000, txId, startingNonce)
85185 if ((sT1 >= tierResult))
86186 then randInt(0, bT1, txId, (startingNonce + 1))
87187 else if ((sT2 >= tierResult))
88188 then randInt((bT1 + 1), bT2, txId, (startingNonce + 2))
89189 else if ((sT3 >= tierResult))
90190 then randInt((bT2 + 1), bT3, txId, (startingNonce + 3))
91191 else if ((sT4 >= tierResult))
92192 then randInt((bT3 + 1), bT4, txId, (startingNonce + 4))
93193 else if ((sT5 >= tierResult))
94194 then randInt((bT4 + 1), bT5, txId, (startingNonce + 5))
95195 else randInt((bT5 + 1), bT6, txId, (startingNonce + 6))
96196 }
97197
98198
99199 @Callable(i)
100200 func createChar () = if ((invokeChecks(i.caller) != true))
101201 then throw()
102202 else {
103203 let txId = i.transactionId
104204 let callerAddr = toBase58String(i.caller.bytes)
105205 let charId = valueOrElse(getInteger(this, keyCharsCount), 1)
106206 let bodiesAmount = getIntegerValue(govApp, keyCharsBodyAmount)
107207 let eyesAmount = getIntegerValue(govApp, keyCharsEyesAmount)
108208 let mouthsAmount = getIntegerValue(govApp, keyCharsMouthAmount)
109209 let statsTiersRanges = split(getStringValue(govApp, keyCharsStatsTiersRanges), separator)
110210 let natElemBonusRanges = split(getStringValue(govApp, keyCharsNaturalElemBonusRanges), separator)
111211 let natBattleBonusRanges = split(getStringValue(govApp, keyCharsNaturalBattleBonusRanges), separator)
112212 let natGeneratingBonusRanges = split(getStringValue(govApp, keyCharsNaturalGeneratingBonusRanges), separator)
113213 let appearance = makeString([toString(randInt(1, bodiesAmount, txId, 0)), toString(randInt(1, eyesAmount, txId, 1)), toString(randInt(1, mouthsAmount, txId, 2))], separator)
114214 let natPyroBonus = genRandomNaturalBonus(statsTiersRanges, natElemBonusRanges, 3, txId)
115215 let natAquaBonus = genRandomNaturalBonus(statsTiersRanges, natElemBonusRanges, 10, txId)
116216 let natTerraBonus = genRandomNaturalBonus(statsTiersRanges, natElemBonusRanges, 17, txId)
117217 let natAeroBonus = genRandomNaturalBonus(statsTiersRanges, natElemBonusRanges, 24, txId)
118218 let natGeneratingBonus = genRandomNaturalBonus(statsTiersRanges, natGeneratingBonusRanges, 31, txId)
119219 let natBattleBonus = genRandomNaturalBonus(statsTiersRanges, natBattleBonusRanges, 38, txId)
120220 [StringEntry(with(keyOwner, charId), callerAddr), StringEntry(with(keyAppearance, charId), appearance), IntegerEntry(with(keyNaturalPyroBonus, charId), natPyroBonus), IntegerEntry(with(keyNaturalAquaBonus, charId), natAquaBonus), IntegerEntry(with(keyNaturalTerraBonus, charId), natTerraBonus), IntegerEntry(with(keyNaturalAeroBonus, charId), natAeroBonus), IntegerEntry(with(keyNaturalBattleBonus, charId), natBattleBonus), IntegerEntry(with(keyNaturalGeneratingBonus, charId), natGeneratingBonus), IntegerEntry(keyCharsCount, (charId + 1))]
121221 }
122222
123223
124224 @Verifier(tx)
125225 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
126226

github/deemru/w8io/169f3d6 
39.02 ms