tx · 8raB13H7iiRDBpMvHeV8tAVEkmDDufoCPsqJ4CJrMuXC

3MxiJLrY6Qa5bSYxxSFHSG5bVV2n59x1MGn:  -0.03100000 Waves

2022.05.23 17:55 [2064473] smart account 3MxiJLrY6Qa5bSYxxSFHSG5bVV2n59x1MGn > SELF 0.00000000 Waves

{ "type": 13, "id": "8raB13H7iiRDBpMvHeV8tAVEkmDDufoCPsqJ4CJrMuXC", "fee": 3100000, "feeAssetId": null, "timestamp": 1653317754754, "version": 2, "chainId": 84, "sender": "3MxiJLrY6Qa5bSYxxSFHSG5bVV2n59x1MGn", "senderPublicKey": "9M1hAsbWkVP73NKHvZezCkamwZfSdkejc3b8sejqT98D", "proofs": [ "ws9HDY8c1Qo58e3ApMQjne1GA5CwG9PoJDm5zdowY14pBfV1BJQtTGzSAd85xziuXoPqf1WWKBpmU6wEBSurerp" ], "script": "base64:AAIFAAAAAAAAAAsIAhIHCgUBAQEBAQAAAFQAAAAACXNlcGFyYXRvcgIAAAABXwAAAAAGZ292QXBwCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzTXl4Znd2YnVlVUJ5bllIZlFzdXROWFpOcU5vekdpTW5zRwAAAAAIY2hhcnNBcHAJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAECAAAAIzNOQTNMUlNpZ2s2a25MWjE2dVR6Y2RMTm93MkVRWnRYVGFKAAAAAAhsYW5kc0FwcAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQIAAAAjM014aUpMclk2UWE1YlNZeHhTRkhTRzViVlYybjU5eDFNR24AAAAACmJhdHRsZXNBcHAJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAECAAAAIzNNdUg5Tmdwb0dhU1F1ZkVRTFBSaWtYTlM5UFhoa2hjTHpwAAAAABVrZXlFY29zeXN0ZW1BZGRyZXNzZXMCAAAAE2Vjb3N5c3RlbV9hZGRyZXNzZXMAAAAACmtleVRva2VuSWQCAAAACHRva2VuX2lkAAAAABRrZXlUb2tlbkVtaXNzaW9uUmF0ZQIAAAATdG9rZW5fZW1pc3Npb25fcmF0ZQAAAAARa2V5VG9rZW5HZW5lcmF0ZWQCAAAAD3Rva2VuX2dlbmVyYXRlZAAAAAAba2V5VG9rZW5HZW5lcmF0ZWRMYXN0VXBkYXRlAgAAABt0b2tlbl9nZW5lcmF0ZWRfbGFzdF91cGRhdGUAAAAAEmtleUNoYXJzQm9keUFtb3VudAIAAAARY2hhcnNfYm9keV9hbW91bnQAAAAAEmtleUNoYXJzRXllc0Ftb3VudAIAAAARY2hhcnNfZXllc19hbW91bnQAAAAAE2tleUNoYXJzTW91dGhBbW91bnQCAAAAEmNoYXJzX21vdXRoX2Ftb3VudAAAAAAYa2V5Q2hhcnNTdGF0c1RpZXJzUmFuZ2VzAgAAABhjaGFyc19zdGF0c190aWVyc19yYW5nZXMAAAAAHmtleUNoYXJzTmF0dXJhbEVsZW1Cb251c1JhbmdlcwIAAAAfY2hhcnNfbmF0dXJhbF9lbGVtX2JvbnVzX3JhbmdlcwAAAAAga2V5Q2hhcnNOYXR1cmFsQmF0dGxlQm9udXNSYW5nZXMCAAAAIWNoYXJzX25hdHVyYWxfYmF0dGxlX2JvbnVzX3JhbmdlcwAAAAAka2V5Q2hhcnNOYXR1cmFsR2VuZXJhdGluZ0JvbnVzUmFuZ2VzAgAAACVjaGFyc19uYXR1cmFsX2dlbmVyYXRpbmdfYm9udXNfcmFuZ2VzAAAAAA1rZXlUb3RhbExhbmRzAgAAAAt0b3RhbF9sYW5kcwAAAAATa2V5QmF0dGxlUmVzdFBlcmlvZAIAAAASYmF0dGxlX3Jlc3RfcGVyaW9kAAAAABlrZXlCYXR0bGVXaW5DaGFuY2VIYXJkY2FwAgAAABliYXR0bGVfd2luX2NoYW5jZV9oYXJkY2FwAAAAAB5rZXlCYXR0bGVXaW5DaGFuY2VJbmNyUGVyQmxvY2sCAAAAIGJhdHRsZV93aW5fY2hhbmNlX2luY3JfcGVyX2Jsb2NrAAAAABlrZXlCYXR0bGVMb290UmFyaXR5UmFuZ2VzAgAAABliYXR0bGVfbG9vdF9yYXJpdHlfcmFuZ2VzAAAAABJrZXlJdGVtc0NhdGVnb3JpZXMCAAAAEGl0ZW1zX2NhdGVnb3JpZXMAAAAAE2tleUl0ZW1zVHlwZXNQZXJDYXQCAAAAE2l0ZW1zX3R5cGVzX3Blcl9jYXQAAAAAFWtleUl0ZW1zRWZmZWN0c0Ftb3VudAIAAAAUaXRlbXNfZWZmZWN0c19hbW91bnQAAAAAGGtleWl0ZW1zRWZmZWN0c01heFJhbmdlcwIAAAAXaXRlbXNfZWZmZWN0c19tYXhfcmFuZ2UAAAAADWtleUNoYXJzQ291bnQCAAAAC2NoYXJzX2NvdW50AAAAAAhrZXlPd25lcgIAAAAFb3duZXIAAAAADWtleUFwcGVhcmFuY2UCAAAACmFwcGVhcmFuY2UAAAAAE2tleU5hdHVyYWxQeXJvQm9udXMCAAAAEm5hdHVyYWxfcHlyb19ib251cwAAAAATa2V5TmF0dXJhbEFxdWFCb251cwIAAAASbmF0dXJhbF9hcXVhX2JvbnVzAAAAABRrZXlOYXR1cmFsVGVycmFCb251cwIAAAATbmF0dXJhbF90ZXJyYV9ib251cwAAAAATa2V5TmF0dXJhbEFlcm9Cb251cwIAAAASbmF0dXJhbF9hZXJvX2JvbnVzAAAAABVrZXlOYXR1cmFsQmF0dGxlQm9udXMCAAAAFG5hdHVyYWxfYmF0dGxlX2JvbnVzAAAAABlrZXlOYXR1cmFsR2VuZXJhdGluZ0JvbnVzAgAAABhuYXR1cmFsX2dlbmVyYXRpbmdfYm9udXMAAAAAEmtleUNoYXJDdXJyZW50TGFuZAIAAAARY2hhcl9jdXJyZW50X2xhbmQAAAAAEGtleUxhbmRQeXJvUG93ZXICAAAAD2xhbmRfcHlyb19wb3dlcgAAAAAQa2V5TGFuZEFxdWFQb3dlcgIAAAAPbGFuZF9hcXVhX3Bvd2VyAAAAABFrZXlMYW5kVGVycmFQb3dlcgIAAAAQbGFuZF90ZXJyYV9wb3dlcgAAAAAQa2V5TGFuZEFlcm9Qb3dlcgIAAAAPbGFuZF9hZXJvX3Bvd2VyAAAAABJrZXlDaGFyVG90YWxJbmNvbWUCAAAAEWNoYXJfdG90YWxfaW5jb21lAAAAABVrZXlBZGRyZXNzVG90YWxJbmNvbWUCAAAAFGFkZHJlc3NfdG90YWxfaW5jb21lAAAAABBrZXlDaGFyUHlyb1Bvd2VyAgAAAA9jaGFyX3B5cm9fcG93ZXIAAAAAEGtleUNoYXJBcXVhUG93ZXICAAAAD2NoYXJfYXF1YV9wb3dlcgAAAAARa2V5Q2hhclRlcnJhUG93ZXICAAAAEGNoYXJfdGVycmFfcG93ZXIAAAAAEGtleUNoYXJBZXJvUG93ZXICAAAAD2NoYXJfYWVyb19wb3dlcgAAAAAYa2V5Q2hhckluaXRpYWxQeXJvU2hhcmVzAgAAABhjaGFyX2luaXRpYWxfcHlyb19zaGFyZXMAAAAAGGtleUNoYXJJbml0aWFsQXF1YVNoYXJlcwIAAAAYY2hhcl9pbml0aWFsX2FxdWFfc2hhcmVzAAAAABlrZXlDaGFySW5pdGlhbFRlcnJhU2hhcmVzAgAAABljaGFyX2luaXRpYWxfdGVycmFfc2hhcmVzAAAAABhrZXlDaGFySW5pdGlhbEFlcm9TaGFyZXMCAAAAGGNoYXJfaW5pdGlhbF9hZXJvX3NoYXJlcwAAAAAja2V5Q2hhckluaXRpYWxMYW5kUHlyb0dyYW50ZWRUb2tlbnMCAAAAJWNoYXJfaW5pdGlhbF9sYW5kX3B5cm9fZ3JhbnRlZF90b2tlbnMAAAAAI2tleUNoYXJJbml0aWFsTGFuZEFxdWFHcmFudGVkVG9rZW5zAgAAACVjaGFyX2luaXRpYWxfbGFuZF9hcXVhX2dyYW50ZWRfdG9rZW5zAAAAACRrZXlDaGFySW5pdGlhbExhbmRUZXJyYUdyYW50ZWRUb2tlbnMCAAAAJmNoYXJfaW5pdGlhbF9sYW5kX3RlcnJhX2dyYW50ZWRfdG9rZW5zAAAAACNrZXlDaGFySW5pdGlhbExhbmRBZXJvR3JhbnRlZFRva2VucwIAAAAlY2hhcl9pbml0aWFsX2xhbmRfYWVyb19ncmFudGVkX3Rva2VucwAAAAAia2V5TGFuZExhc3RUb2tlbkRpc3RyaWJ1dGlvblVwZGF0ZQIAAAAjbGFuZF9tYXN0X3Rva2VuX2Rpc3RyaWJ1dGlvbl91cGRhdGUAAAAAHWtleUxhbmRQeXJvVG90YWxHcmFudGVkVG9rZW5zAgAAAB5sYW5kX3B5cm9fdG90YWxfZ3JhbnRlZF90b2tlbnMAAAAAHWtleUxhbmRBcXVhVG90YWxHcmFudGVkVG9rZW5zAgAAAB5sYW5kX2FxdWFfdG90YWxfZ3JhbnRlZF90b2tlbnMAAAAAHmtleUxhbmRUZXJyYVRvdGFsR3JhbnRlZFRva2VucwIAAAAfbGFuZF90ZXJyYV90b3RhbF9ncmFudGVkX3Rva2VucwAAAAAda2V5TGFuZEFlcm9Ub3RhbEdyYW50ZWRUb2tlbnMCAAAAHmxhbmRfYWVyb190b3RhbF9ncmFudGVkX3Rva2VucwAAAAATa2V5TGFzdEJhdHRsZUhlaWdodAIAAAASbGFzdF9iYXR0bGVfaGVpZ2h0AAAAAA1rZXlJdGVtc0NvdW50AgAAAAtpdGVtc19jb3VudAAAAAAMa2V5SXRlbU93bmVyAgAAAAppdGVtX293bmVyAAAAAA9rZXlJdGVtQ2F0ZWdvcnkCAAAADWl0ZW1fY2F0ZWdvcnkAAAAAC2tleUl0ZW1UeXBlAgAAAAlpdGVtX3R5cGUAAAAADmtleUl0ZW1FZmZlY3RzAgAAAAxpdGVtX2VmZmVjdHMAAAAAE2tleUl0ZW1Jc0VxdWlwcGVkQnkCAAAAE2l0ZW1faXNfZXF1aXBwZWRfYnkAAAAADWtleUNoYXJXZWFwb24CAAAAC2NoYXJfd2VhcG9uAAAAAAxrZXlDaGFyQXJtb3ICAAAA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YWxQb3dlcgUAAAARbGFuZEdyYW50ZWRUb2tlbnMAAAAAAAAAJxAEAAAAFXRlcnJhTmV3R3JhbnRlZFRva2VucwkAAGsAAAADCQAAawAAAAMAAAAAAAAAJxAJAAGRAAAAAgUAAAANbGFuZEVsZW1Qb3dlcgAAAAAAAAAAAgUAAAAKdG90YWxQb3dlcgUAAAARbGFuZEdyYW50ZWRUb2tlbnMAAAAAAAAAJxAEAAAAFGFlcm9OZXdHcmFudGVkVG9rZW5zCQAAawAAAAMJAABrAAAAAwAAAAAAAAAnEAkAAZEAAAACBQAAAA1sYW5kRWxlbVBvd2VyAAAAAAAAAAADBQAAAAp0b3RhbFBvd2VyBQAAABFsYW5kR3JhbnRlZFRva2VucwAAAAAAAAAnEAkABEwAAAACCQAAZAAAAAIFAAAAEHB5cm9DdXJyZW50VG90YWwFAAAAFHB5cm9OZXdHcmFudGVkVG9rZW5zCQAETAAAAAIJAABkAAAAAgUAAAAQYXF1YUN1cnJlbnRUb3RhbAUAAAAUYXF1YU5ld0dyYW50ZWRUb2tlbnMJAARMAAAAAgkAAGQAAAACBQAAABF0ZXJyYUN1cnJlbnRUb3RhbAUAAAAVdGVycmFOZXdHcmFudGVkVG9rZW5zCQAETAAAAAIJAABkAAAAAgUAAAAQYWVyb0N1cnJlbnRUb3RhbAUAAAAUYWVyb05ld0dyYW50ZWRUb2tlbnMFAAAAA25pbAkABEwAAAACBQAAABBweXJvQ3VycmVudFRvdGFsCQAETAAAAAIFAAAAEGFxdWFDdXJyZW50VG90YWwJAARMAAAAAgUAAAARdGVycmFDdXJyZW50VG90YWwJAARMAAAAAgUAAAAQYWVyb0N1cnJlbnRUb3RhbAUAAAADbmlsAAAAAQAAAAFpAQAAAA5jaGFyTW92aW5nTGFuZAAAAAUAAAAGY2hhcklkAAAACW5ld0xhbmRJZAAAAAh3ZWFwb25JZAAAAAdhcm1vcklkAAAAB2pld2VsSWQDCQEAAAABIQAAAAEJAQAAAAxpbnZva2VDaGVja3MAAAABCAUAAAABaQAAAAZjYWxsZXIJAQAAAAV0aHJvdwAAAAAEAAAACmNhbGxlckFkZHIJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwMJAQAAAAIhPQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAACGNoYXJzQXBwCQEAAAAEd2l0aAAAAAIFAAAACGtleU93bmVyBQAAAAZjaGFySWQFAAAACmNhbGxlckFkZHIJAAACAAAAAQIAAAAcQ2FsbGVyIGRvZXNuJ3Qgb3duIHRoaXMgY2hhcgMDCQAAZgAAAAIAAAAAAAAAAAAFAAAACW5ld0xhbmRJZAYJAABmAAAAAgUAAAAJbmV3TGFuZElkCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAZnb3ZBcHAFAAAADWtleVRvdGFsTGFuZHMJAAACAAAAAQIAAAAKTm90IGEgbGFuZAQAAAANY3VycmVudExhbmRJZAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQEAAAAEd2l0aAAAAAIFAAAAEmtleUNoYXJDdXJyZW50TGFuZAUAAAAGY2hhcklkAAAAAAAAAAAAAwkAAAAAAAACBQAAAA1jdXJyZW50TGFuZElkBQAAAAluZXdMYW5kSWQJAAACAAAAAQIAAAAZQ2hhciBhbHJlYWR5IG9uIHRoYXQgbGFuZAQAAAAUY3VycmVudExhbmRFbGVtUG93ZXIJAQAAABBnZXRMYW5kRWxlbVBvd2VyAAAAAQUAAAANY3VycmVudExhbmRJZAQAAAARZWxlbUdyYW50ZWRUb2tlbnMJAQAAABljYWxjTGFuZEVsZW1HcmFudGVkVG9rZW5zAAAAAgUAAAANY3VycmVudExhbmRJZAUAAAAUY3VycmVudExhbmRFbGVtUG93ZXIEAAAAGWxlYXZpbmdDdXJyZW50TGFuZEFjdGlvbnMDCQEAAAACIT0AAAACBQAAAA1jdXJyZW50TGFuZElkAAAAAAAAAAAABAAAABdjdXJyZW50RXF1aXBtZW50RWZmZWN0cwkBAAAAE2dldEVxdWlwbWVudEVmZmVjdHMAAAABCQAETAAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAACmJhdHRsZXNBcHAJAQAAAAR3aXRoAAAAAgUAAAANa2V5Q2hhcldlYXBvbgUAAAAGY2hhcklkCQAETAAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAACmJhdHRsZXNBcHAJAQAAAAR3aXRoAAAAAgUAAAAMa2V5Q2hhckFybW9yBQAAAAZjaGFySWQJAARMAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAKYmF0dGxlc0FwcAkBAAAABHdpdGgAAAACBQAAAAxrZXlDaGFySmV3ZWwFAAAABmNoYXJJZAUAAAADbmlsBAAAABRjdXJyZW50Q2hhckVsZW1Qb3dlcgkBAAAAEGdldENoYXJFbGVtUG93ZXIAAAABBQAAAAZjaGFySWQEAAAAD3NlbmRUb2tlbnNUb0FwcAkAA/wAAAAEBQAAAAZnb3ZBcHACAAAAD3NlbmRUb2tlbnN0b0FwcAkABEwAAAACCQEAAAAOY2FsY0NoYXJJbmNvbWUAAAAEBQAAAAZjaGFySWQFAAAAFGN1cnJlbnRMYW5kRWxlbVBvd2VyBQAAABRjdXJyZW50Q2hhckVsZW1Qb3dlcgUAAAARZWxlbUdyYW50ZWRUb2tlbnMFAAAAA25pbAUAAAADbmlsAwkAAAAAAAACBQAAAA9zZW5kVG9rZW5zVG9BcHAFAAAAD3NlbmRUb2tlbnNUb0FwcAQAAAAPY2hhclRva2VuSW5jb21lBAAAAAckbWF0Y2gwBQAAAA9zZW5kVG9rZW5zVG9BcHADCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAAFaXNJbnQFAAAAByRtYXRjaDAFAAAABWlzSW50CQAAAgAAAAECAAAADEludm9rZSBpc3N1ZQQAAAASbmV3Q2hhclRvdGFsSW5jb21lCQAAZAAAAAIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkBAAAABHdpdGgAAAACBQAAABJrZXlDaGFyVG90YWxJbmNvbWUFAAAABmNoYXJJZAAAAAAAAAAAAAUAAAAPY2hhclRva2VuSW5jb21lBAAAABVuZXdBZGRyZXNzVG90YWxJbmNvbWUJAABkAAAAAgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQEAAAAHd2l0aFN0cgAAAAIFAAAAFWtleUFkZHJlc3NUb3RhbEluY29tZQUAAAAKY2FsbGVyQWRkcgAAAAAAAAAAAAUAAAAPY2hhclRva2VuSW5jb21lBAAAABlsYW5kRWxlbVBvd2VyQWZ0ZXJMZWF2aW5nCQEAAAARY2FsY0xhbmRFbGVtUG93ZXIAAAAEBQAAAA1jdXJyZW50TGFuZElkBwUAAAAUY3VycmVudENoYXJFbGVtUG93ZXIFAAAAF2N1cnJlbnRFcXVpcG1lbnRFZmZlY3RzCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAPY2hhclRva2VuSW5jb21lCQEAAAARQGV4dHJOYXRpdmUoMTA1MikAAAACBQAAAAZnb3ZBcHAFAAAACmtleVRva2VuSWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAASa2V5Q2hhclRvdGFsSW5jb21lBQAAAAZjaGFySWQFAAAAEm5ld0NoYXJUb3RhbEluY29tZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAB3dpdGhTdHIAAAACBQAAABVrZXlBZGRyZXNzVG90YWxJbmNvbWUFAAAACmNhbGxlckFkZHIFAAAAEm5ld0NoYXJUb3RhbEluY29tZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABBrZXlMYW5kUHlyb1Bvd2VyBQAAAA1jdXJyZW50TGFuZElkCQABkQAAAAIFAAAAGWxhbmRFbGVtUG93ZXJBZnRlckxlYXZpbmcAAAAAAAAAAAAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAQa2V5TGFuZEFxdWFQb3dlcgUAAAANY3VycmVudExhbmRJZAkAAZEAAAACBQAAABlsYW5kRWxlbVBvd2VyQWZ0ZXJMZWF2aW5nAAAAAAAAAAABCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAEWtleUxhbmRUZXJyYVBvd2VyBQAAAA1jdXJyZW50TGFuZElkCQABkQAAAAIFAAAAGWxhbmRFbGVtUG93ZXJBZnRlckxlYXZpbmcAAAAAAAAAAAIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAQa2V5TGFuZEFlcm9Qb3dlcgUAAAANY3VycmVudExhbmRJZAkAAZEAAAACBQAAABlsYW5kRWxlbVBvd2VyQWZ0ZXJMZWF2aW5nAAAAAAAAAAADBQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBQAAAANuaWwEAAAAFWpvaW5pbmdOZXdMYW5kQWN0aW9ucwMJAQAAAAIhPQAAAAIFAAAACW5ld0xhbmRJZAAAAAAAAAAAAAQAAAAUY2hhclJlc3RQZXJpb2RVcGRhdGUJAAP8AAAABAUAAAAKYmF0dGxlc0FwcAIAAAAWdXBkYXRlTGFzdEJhdHRsZUhlaWdodAkABEwAAAACBQAAAAZjaGFySWQFAAAAA25pbAUAAAADbmlsAwkAAAAAAAACBQAAABRjaGFyUmVzdFBlcmlvZFVwZGF0ZQUAAAAUY2hhclJlc3RQZXJpb2RVcGRhdGUEAAAADmNoYXJSZXN0UGVyaW9kBAAAAAckbWF0Y2gwBQAAABRjaGFyUmVzdFBlcmlvZFVwZGF0ZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAVpc0ludAUAAAAHJG1hdGNoMAUAAAAFaXNJbnQJAAACAAAAAQIAAAAbY2hhclJlc3RQZXJpb2RVcGRhdGUgZmFpbGVkBAAAABNzZXRFcXVpcG1lbnRSZXF1ZXN0CQAD/AAAAAQFAAAACmJhdHRsZXNBcHACAAAADHNldEVxdWlwbWVudAkABEwAAAACBQAAAApjYWxsZXJBZGRyCQAETAAAAAIFAAAABmNoYXJJZAkABEwAAAACBQAAAAh3ZWFwb25JZAkABEwAAAACBQAAAAdhcm1vcklkCQAETAAAAAIFAAAAB2pld2VsSWQFAAAAA25pbAUAAAADbmlsAwkAAAAAAAACBQAAABNzZXRFcXVpcG1lbnRSZXF1ZXN0BQAAABNzZXRFcXVpcG1lbnRSZXF1ZXN0BAAAABNuZXdFcXVpcG1lbnRFZmZlY3RzBAAAAAckbWF0Y2gwBQAAABNzZXRFcXVpcG1lbnRSZXF1ZXN0AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAABWlzU3RyBQAAAAckbWF0Y2gwBAAAAAppc1N0clNwbGl0CQAEtQAAAAIFAAAABWlzU3RyBQAAAAlzZXBhcmF0b3IJAQAAABNnZXRFcXVpcG1lbnRFZmZlY3RzAAAAAQkABEwAAAACCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAKaXNTdHJTcGxpdAAAAAAAAAAAAAkABEwAAAACCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAKaXNTdHJTcGxpdAAAAAAAAAAAAQkABEwAAAACCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAKaXNTdHJTcGxpdAAAAAAAAAAAAgUAAAADbmlsCQAAAgAAAAECAAAAD1dyb25nIGVxdWlwbWVudAQAAAAZY2hhckVsZW1Qb3dlckFmdGVySm9pbmluZwkBAAAAEWNhbGNDaGFyRWxlbVBvd2VyAAAAAgUAAAAGY2hhcklkBQAAABNuZXdFcXVpcG1lbnRFZmZlY3RzBAAAABlsYW5kRWxlbVBvd2VyQWZ0ZXJKb2luaW5nCQEAAAARY2FsY0xhbmRFbGVtUG93ZXIAAAAEBQAAAAluZXdMYW5kSWQGBQAAABljaGFyRWxlbVBvd2VyQWZ0ZXJKb2luaW5nBQAAABNuZXdFcXVpcG1lbnRFZmZlY3RzBAAAAA5jaGFyRWxlbVNoYXJlcwkBAAAAEmNhbGNDaGFyRWxlbVNoYXJlcwAAAAIFAAAAGWNoYXJFbGVtUG93ZXJBZnRlckpvaW5pbmcFAAAAGWxhbmRFbGVtUG93ZXJBZnRlckpvaW5pbmcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAQa2V5TGFuZFB5cm9Qb3dlcgUAAAAJbmV3TGFuZElkCQABkQAAAAIFAAAAGWxhbmRFbGVtUG93ZXJBZnRlckpvaW5pbmcAAAAAAAAAAAAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAQa2V5TGFuZEFxdWFQb3dlcgUAAAAJbmV3TGFuZElkCQABkQAAAAIFAAAAGWxhbmRFbGVtUG93ZXJBZnRlckpvaW5pbmcAAAAAAAAAAAEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAARa2V5TGFuZFRlcnJhUG93ZXIFAAAACW5ld0xhbmRJZAkAAZEAAAACBQAAABlsYW5kRWxlbVBvd2VyQWZ0ZXJKb2luaW5nAAAAAAAAAAACCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAEGtleUxhbmRBZXJvUG93ZXIFAAAACW5ld0xhbmRJZAkAAZEAAAACBQAAABlsYW5kRWxlbVBvd2VyQWZ0ZXJKb2luaW5nAAAAAAAAAAADCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAGGtleUNoYXJJbml0aWFsUHlyb1NoYXJlcwUAAAAGY2hhcklkCQABkQAAAAIFAAAADmNoYXJFbGVtU2hhcmVzAAAAAAAAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAGGtleUNoYXJJbml0aWFsQXF1YVNoYXJlcwUAAAAGY2hhcklkCQABkQAAAAIFAAAADmNoYXJFbGVtU2hhcmVzAAAAAAAAAAABCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAGWtleUNoYXJJbml0aWFsVGVycmFTaGFyZXMFAAAABmNoYXJJZAkAAZEAAAACBQAAAA5jaGFyRWxlbVNoYXJlcwAAAAAAAAAAAgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABhrZXlDaGFySW5pdGlhbEFlcm9TaGFyZXMFAAAABmNoYXJJZAkAAZEAAAACBQAAAA5jaGFyRWxlbVNoYXJlcwAAAAAAAAAAAwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAACNrZXlDaGFySW5pdGlhbExhbmRQeXJvR3JhbnRlZFRva2VucwUAAAAGY2hhcklkCQABkQAAAAIFAAAAEWVsZW1HcmFudGVkVG9rZW5zAAAAAAAAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAI2tleUNoYXJJbml0aWFsTGFuZEFxdWFHcmFudGVkVG9rZW5zBQAAAAZjaGFySWQJAAGRAAAAAgUAAAARZWxlbUdyYW50ZWRUb2tlbnMAAAAAAAAAAAEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAka2V5Q2hhckluaXRpYWxMYW5kVGVycmFHcmFudGVkVG9rZW5zBQAAAAZjaGFySWQJAAGRAAAAAgUAAAARZWxlbUdyYW50ZWRUb2tlbnMAAAAAAAAAAAIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAja2V5Q2hhckluaXRpYWxMYW5kQWVyb0dyYW50ZWRUb2tlbnMFAAAABmNoYXJJZAkAAZEAAAACBQAAABFlbGVtR3JhbnRlZFRva2VucwAAAAAAAAAAAwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABBrZXlDaGFyUHlyb1Bvd2VyBQAAAAZjaGFySWQJAAGRAAAAAgUAAAAZY2hhckVsZW1Qb3dlckFmdGVySm9pbmluZwAAAAAAAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABBrZXlDaGFyQXF1YVBvd2VyBQAAAAZjaGFySWQJAAGRAAAAAgUAAAAZY2hhckVsZW1Qb3dlckFmdGVySm9pbmluZwAAAAAAAAAAAQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABFrZXlDaGFyVGVycmFQb3dlcgUAAAAGY2hhcklkCQABkQAAAAIFAAAAGWNoYXJFbGVtUG93ZXJBZnRlckpvaW5pbmcAAAAAAAAAAAIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAQa2V5Q2hhckFlcm9Qb3dlcgUAAAAGY2hhcklkCQABkQAAAAIFAAAAGWNoYXJFbGVtUG93ZXJBZnRlckpvaW5pbmcAAAAAAAAAAAMFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBAAAABZyZW1vdmVFcXVpcG1lbnRSZXF1ZXN0CQAD/AAAAAQFAAAACmJhdHRsZXNBcHACAAAAD3JlbW92ZUVxdWlwbWVudAkABEwAAAACBQAAAApjYWxsZXJBZGRyCQAETAAAAAIFAAAABmNoYXJJZAUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAAFnJlbW92ZUVxdWlwbWVudFJlcXVlc3QFAAAAFnJlbW92ZUVxdWlwbWVudFJlcXVlc3QEAAAAEHJlbW92ZWRFcXVpcG1lbnQEAAAAByRtYXRjaDAFAAAAFnJlbW92ZUVxdWlwbWVudFJlcXVlc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAAFaXNTdHIFAAAAByRtYXRjaDAFAAAABWlzU3RyCQAAAgAAAAECAAAAGElzc3VlIHJlbW92aW5nIGVxdWlwbWVudAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAEd2l0aAAAAAIFAAAAGGtleUNoYXJJbml0aWFsUHlyb1NoYXJlcwUAAAAGY2hhcklkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAR3aXRoAAAAAgUAAAAYa2V5Q2hhckluaXRpYWxBcXVhU2hhcmVzBQAAAAZjaGFySWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAABHdpdGgAAAACBQAAABlrZXlDaGFySW5pdGlhbFRlcnJhU2hhcmVzBQAAAAZjaGFySWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAABHdpdGgAAAACBQAAABhrZXlDaGFySW5pdGlhbEFlcm9TaGFyZXMFAAAABmNoYXJJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAEd2l0aAAAAAIFAAAAI2tleUNoYXJJbml0aWFsTGFuZFB5cm9HcmFudGVkVG9rZW5zBQAAAAZjaGFySWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAABHdpdGgAAAACBQAAACNrZXlDaGFySW5pdGlhbExhbmRBcXVhR3JhbnRlZFRva2VucwUAAAAGY2hhcklkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAR3aXRoAAAAAgUAAAAka2V5Q2hhckluaXRpYWxMYW5kVGVycmFHcmFudGVkVG9rZW5zBQAAAAZjaGFySWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAABHdpdGgAAAACBQAAACNrZXlDaGFySW5pdGlhbExhbmRBZXJvR3JhbnRlZFRva2VucwUAAAAGY2hhcklkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAR3aXRoAAAAAgUAAAAQa2V5Q2hhclB5cm9Qb3dlcgUAAAAGY2hhcklkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAR3aXRoAAAAAgUAAAAQa2V5Q2hhckFxdWFQb3dlcgUAAAAGY2hhcklkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAR3aXRoAAAAAgUAAAARa2V5Q2hhclRlcnJhUG93ZXIFAAAABmNoYXJJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAEd2l0aAAAAAIFAAAAEGtleUNoYXJBZXJvUG93ZXIFAAAABmNoYXJJZAUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkABE4AAAACCQAETgAAAAIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAASa2V5Q2hhckN1cnJlbnRMYW5kBQAAAAZjaGFySWQFAAAACW5ld0xhbmRJZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAACJrZXlMYW5kTGFzdFRva2VuRGlzdHJpYnV0aW9uVXBkYXRlBQAAAA1jdXJyZW50TGFuZElkBQAAAAZoZWlnaHQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAda2V5TGFuZFB5cm9Ub3RhbEdyYW50ZWRUb2tlbnMFAAAADWN1cnJlbnRMYW5kSWQJAAGRAAAAAgUAAAARZWxlbUdyYW50ZWRUb2tlbnMAAAAAAAAAAAAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAda2V5TGFuZEFxdWFUb3RhbEdyYW50ZWRUb2tlbnMFAAAADWN1cnJlbnRMYW5kSWQJAAGRAAAAAgUAAAARZWxlbUdyYW50ZWRUb2tlbnMAAAAAAAAAAAEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAea2V5TGFuZFRlcnJhVG90YWxHcmFudGVkVG9rZW5zBQAAAA1jdXJyZW50TGFuZElkCQABkQAAAAIFAAAAEWVsZW1HcmFudGVkVG9rZW5zAAAAAAAAAAACCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAHWtleUxhbmRBZXJvVG90YWxHcmFudGVkVG9rZW5zBQAAAA1jdXJyZW50TGFuZElkCQABkQAAAAIFAAAAEWVsZW1HcmFudGVkVG9rZW5zAAAAAAAAAAADBQAAAANuaWwFAAAAFWpvaW5pbmdOZXdMYW5kQWN0aW9ucwUAAAAZbGVhdmluZ0N1cnJlbnRMYW5kQWN0aW9ucwAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V56CVIJw==", "height": 2064473, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Gw4tHsR5m5y3eyCb5SDjPTizFmi1VNoGJdJUzrLfgqSa Next: none Diff:
OldNewDifferences
151151 }
152152
153153
154-func ecosystemCheck (caller) = if ((contains(getStringValue(this, keyEcosystemAddresses), toBase58String(caller.bytes)) != true))
154+func ecosystemCheck (caller) = if ((contains(getStringValue(govApp, keyEcosystemAddresses), toBase58String(caller.bytes)) != true))
155155 then throw("Access denied ")
156156 else true
157157
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
154-func ecosystemCheck (caller) = if ((contains(getStringValue(this, keyEcosystemAddresses), toBase58String(caller.bytes)) != true))
154+func ecosystemCheck (caller) = if ((contains(getStringValue(govApp, 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 shareDecimals = 1000000000000000000
172172
173173 func calcCharElemPower (charId,equipmentEffects) = {
174174 let naturalElemBonus = [getIntegerValue(charsApp, with(keyNaturalPyroBonus, charId)), getIntegerValue(charsApp, with(keyNaturalAquaBonus, charId)), getIntegerValue(charsApp, with(keyNaturalTerraBonus, charId)), getIntegerValue(charsApp, with(keyNaturalAeroBonus, charId))]
175175 let powerFromEffects = [(((((equipmentEffects[0][9] + equipmentEffects[1][9]) + equipmentEffects[2][9]) - equipmentEffects[0][13]) - equipmentEffects[1][13]) - equipmentEffects[2][13]), (((((equipmentEffects[0][10] + equipmentEffects[1][10]) + equipmentEffects[2][10]) - equipmentEffects[0][14]) - equipmentEffects[1][14]) - equipmentEffects[2][14]), (((((equipmentEffects[0][11] + equipmentEffects[1][11]) + equipmentEffects[2][11]) - equipmentEffects[0][15]) - equipmentEffects[1][15]) - equipmentEffects[2][15]), (((((equipmentEffects[0][12] + equipmentEffects[1][12]) + equipmentEffects[2][12]) - equipmentEffects[0][16]) - equipmentEffects[1][16]) - equipmentEffects[2][16])]
176176 [(powerFromEffects[0] + fraction(powerFromEffects[0], naturalElemBonus[0], 10000)), (powerFromEffects[1] + fraction(powerFromEffects[1], naturalElemBonus[1], 10000)), (powerFromEffects[2] + fraction(powerFromEffects[2], naturalElemBonus[2], 10000)), (powerFromEffects[3] + fraction(powerFromEffects[3], naturalElemBonus[3], 10000))]
177177 }
178178
179179
180180 func calcCharElemShares (charElemPower,landElemPower) = [fraction(shareDecimals, charElemPower[0], landElemPower[0]), fraction(shareDecimals, charElemPower[1], landElemPower[1]), fraction(shareDecimals, charElemPower[2], landElemPower[2]), fraction(shareDecimals, charElemPower[3], landElemPower[3])]
181181
182182
183183 func getCharElemPower (charId) = [getIntegerValue(this, with(keyCharPyroPower, charId)), getIntegerValue(this, with(keyCharAquaPower, charId)), getIntegerValue(this, with(keyCharTerraPower, charId)), getIntegerValue(this, with(keyCharAeroPower, charId))]
184184
185185
186186 func getLandElemPower (landId) = [valueOrElse(getInteger(this, with(keyLandPyroPower, landId)), 1), valueOrElse(getInteger(this, with(keyLandAquaPower, landId)), 1), valueOrElse(getInteger(this, with(keyLandTerraPower, landId)), 1), valueOrElse(getInteger(this, with(keyLandAeroPower, landId)), 1)]
187187
188188
189189 func calcLandElemPower (landId,charIsJoiningOrLeaving,charElemPower,equipmentEffects) = {
190190 let currentElemPowers = getLandElemPower(landId)
191191 let powerFromEffects = [(((((equipmentEffects[0][1] + equipmentEffects[1][1]) + equipmentEffects[2][1]) - equipmentEffects[0][5]) - equipmentEffects[1][5]) - equipmentEffects[2][5]), (((((equipmentEffects[0][2] + equipmentEffects[1][2]) + equipmentEffects[2][2]) - equipmentEffects[0][6]) - equipmentEffects[1][6]) - equipmentEffects[2][6]), (((((equipmentEffects[0][3] + equipmentEffects[1][3]) + equipmentEffects[2][3]) - equipmentEffects[0][7]) - equipmentEffects[1][7]) - equipmentEffects[2][7]), (((((equipmentEffects[0][4] + equipmentEffects[1][4]) + equipmentEffects[2][4]) - equipmentEffects[0][8]) - equipmentEffects[1][8]) - equipmentEffects[2][8])]
192192 if (charIsJoiningOrLeaving)
193193 then [((currentElemPowers[0] + charElemPower[0]) + powerFromEffects[0]), ((currentElemPowers[1] + charElemPower[1]) + powerFromEffects[1]), ((currentElemPowers[2] + charElemPower[2]) + powerFromEffects[2]), ((currentElemPowers[3] + charElemPower[3]) + powerFromEffects[3])]
194194 else [((currentElemPowers[0] - charElemPower[0]) - powerFromEffects[0]), ((currentElemPowers[1] - charElemPower[1]) - powerFromEffects[1]), ((currentElemPowers[2] - charElemPower[2]) - powerFromEffects[2]), ((currentElemPowers[3] - charElemPower[3]) - powerFromEffects[3])]
195195 }
196196
197197
198198 func calcCharIncome (charId,landElemPower,charElemPower,elemGrantedTokens) = {
199199 let currentCharElemShares = calcCharElemShares(charElemPower, landElemPower)
200200 let averageElemShares = [((getIntegerValue(this, with(keyCharInitialPyroShares, charId)) + currentCharElemShares[0]) / 2), ((getIntegerValue(this, with(keyCharInitialAquaShares, charId)) + currentCharElemShares[1]) / 2), ((getIntegerValue(this, with(keyCharInitialTerraShares, charId)) + currentCharElemShares[2]) / 2), ((getIntegerValue(this, with(keyCharInitialAeroShares, charId)) + currentCharElemShares[3]) / 2)]
201201 let eligibleGrantedTokens = [(elemGrantedTokens[0] - getIntegerValue(this, with(keyCharInitialLandPyroGrantedTokens, charId))), (elemGrantedTokens[1] - getIntegerValue(this, with(keyCharInitialLandAquaGrantedTokens, charId))), (elemGrantedTokens[2] - getIntegerValue(this, with(keyCharInitialLandTerraGrantedTokens, charId))), (elemGrantedTokens[3] - getIntegerValue(this, with(keyCharInitialLandAeroGrantedTokens, charId)))]
202202 (((fraction(eligibleGrantedTokens[0], averageElemShares[0], shareDecimals) + fraction(eligibleGrantedTokens[1], averageElemShares[1], shareDecimals)) + fraction(eligibleGrantedTokens[2], averageElemShares[2], shareDecimals)) + fraction(eligibleGrantedTokens[3], averageElemShares[3], shareDecimals))
203203 }
204204
205205
206206 func getEquipmentEffects (equipment) = {
207207 func getItemEffects (itemId) = if ((itemId != 0))
208208 then {
209209 let itemEffects = split(getStringValue(battlesApp, with(keyItemEffectsValuesPerTypes, itemId)), separator)
210210 [parseIntValue(itemEffects[0]), parseIntValue(itemEffects[1]), parseIntValue(itemEffects[2]), parseIntValue(itemEffects[3]), parseIntValue(itemEffects[4]), parseIntValue(itemEffects[5]), parseIntValue(itemEffects[6]), parseIntValue(itemEffects[7]), parseIntValue(itemEffects[8]), parseIntValue(itemEffects[9]), parseIntValue(itemEffects[10]), parseIntValue(itemEffects[11]), parseIntValue(itemEffects[12]), parseIntValue(itemEffects[13]), parseIntValue(itemEffects[14]), parseIntValue(itemEffects[15]), parseIntValue(itemEffects[16]), parseIntValue(itemEffects[17]), parseIntValue(itemEffects[18]), parseIntValue(itemEffects[19]), parseIntValue(itemEffects[20]), parseIntValue(itemEffects[21]), parseIntValue(itemEffects[22]), parseIntValue(itemEffects[23]), parseIntValue(itemEffects[24]), parseIntValue(itemEffects[25]), parseIntValue(itemEffects[26]), parseIntValue(itemEffects[27]), parseIntValue(itemEffects[28]), parseIntValue(itemEffects[29]), parseIntValue(itemEffects[30]), parseIntValue(itemEffects[31]), parseIntValue(itemEffects[32])]
211211 }
212212 else [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
213213
214214 [getItemEffects(equipment[0]), getItemEffects(equipment[1]), getItemEffects(equipment[2])]
215215 }
216216
217217
218218 func calcLandElemGrantedTokens (landId,landElemPower) = {
219219 let landTokenEmissionPerBlock = fraction(10000, getIntegerValue(govApp, keyTokenEmissionRate), getIntegerValue(govApp, keyTotalLands))
220220 let lastUpdateHeight = valueOrElse(getInteger(this, with(keyLandLastTokenDistributionUpdate, landId)), height)
221221 let landGrantedTokens = ((height - lastUpdateHeight) * landTokenEmissionPerBlock)
222222 let pyroCurrentTotal = valueOrElse(getInteger(this, with(keyLandPyroTotalGrantedTokens, landId)), 0)
223223 let aquaCurrentTotal = valueOrElse(getInteger(this, with(keyLandAquaTotalGrantedTokens, landId)), 0)
224224 let terraCurrentTotal = valueOrElse(getInteger(this, with(keyLandTerraTotalGrantedTokens, landId)), 0)
225225 let aeroCurrentTotal = valueOrElse(getInteger(this, with(keyLandAeroTotalGrantedTokens, landId)), 0)
226226 if ((landGrantedTokens != 0))
227227 then {
228228 let totalPower = (((landElemPower[0] + landElemPower[1]) + landElemPower[2]) + landElemPower[3])
229229 let pyroNewGrantedTokens = fraction(fraction(10000, landElemPower[0], totalPower), landGrantedTokens, 10000)
230230 let aquaNewGrantedTokens = fraction(fraction(10000, landElemPower[1], totalPower), landGrantedTokens, 10000)
231231 let terraNewGrantedTokens = fraction(fraction(10000, landElemPower[2], totalPower), landGrantedTokens, 10000)
232232 let aeroNewGrantedTokens = fraction(fraction(10000, landElemPower[3], totalPower), landGrantedTokens, 10000)
233233 [(pyroCurrentTotal + pyroNewGrantedTokens), (aquaCurrentTotal + aquaNewGrantedTokens), (terraCurrentTotal + terraNewGrantedTokens), (aeroCurrentTotal + aeroNewGrantedTokens)]
234234 }
235235 else [pyroCurrentTotal, aquaCurrentTotal, terraCurrentTotal, aeroCurrentTotal]
236236 }
237237
238238
239239 @Callable(i)
240240 func charMovingLand (charId,newLandId,weaponId,armorId,jewelId) = if (!(invokeChecks(i.caller)))
241241 then throw()
242242 else {
243243 let callerAddr = toBase58String(i.caller.bytes)
244244 if ((getStringValue(charsApp, with(keyOwner, charId)) != callerAddr))
245245 then throw("Caller doesn't own this char")
246246 else if (if ((0 > newLandId))
247247 then true
248248 else (newLandId > getIntegerValue(govApp, keyTotalLands)))
249249 then throw("Not a land")
250250 else {
251251 let currentLandId = valueOrElse(getInteger(this, with(keyCharCurrentLand, charId)), 0)
252252 if ((currentLandId == newLandId))
253253 then throw("Char already on that land")
254254 else {
255255 let currentLandElemPower = getLandElemPower(currentLandId)
256256 let elemGrantedTokens = calcLandElemGrantedTokens(currentLandId, currentLandElemPower)
257257 let leavingCurrentLandActions = if ((currentLandId != 0))
258258 then {
259259 let currentEquipmentEffects = getEquipmentEffects([getIntegerValue(battlesApp, with(keyCharWeapon, charId)), getIntegerValue(battlesApp, with(keyCharArmor, charId)), getIntegerValue(battlesApp, with(keyCharJewel, charId))])
260260 let currentCharElemPower = getCharElemPower(charId)
261261 let sendTokensToApp = invoke(govApp, "sendTokenstoApp", [calcCharIncome(charId, currentLandElemPower, currentCharElemPower, elemGrantedTokens)], nil)
262262 if ((sendTokensToApp == sendTokensToApp))
263263 then {
264264 let charTokenIncome = match sendTokensToApp {
265265 case isInt: Int =>
266266 isInt
267267 case _ =>
268268 throw("Invoke issue")
269269 }
270270 let newCharTotalIncome = (valueOrElse(getInteger(this, with(keyCharTotalIncome, charId)), 0) + charTokenIncome)
271271 let newAddressTotalIncome = (valueOrElse(getInteger(this, withStr(keyAddressTotalIncome, callerAddr)), 0) + charTokenIncome)
272272 let landElemPowerAfterLeaving = calcLandElemPower(currentLandId, false, currentCharElemPower, currentEquipmentEffects)
273273 [ScriptTransfer(i.caller, charTokenIncome, getBinaryValue(govApp, keyTokenId)), IntegerEntry(with(keyCharTotalIncome, charId), newCharTotalIncome), IntegerEntry(withStr(keyAddressTotalIncome, callerAddr), newCharTotalIncome), IntegerEntry(with(keyLandPyroPower, currentLandId), landElemPowerAfterLeaving[0]), IntegerEntry(with(keyLandAquaPower, currentLandId), landElemPowerAfterLeaving[1]), IntegerEntry(with(keyLandTerraPower, currentLandId), landElemPowerAfterLeaving[2]), IntegerEntry(with(keyLandAeroPower, currentLandId), landElemPowerAfterLeaving[3])]
274274 }
275275 else throw("Strict value is not equal to itself.")
276276 }
277277 else nil
278278 let joiningNewLandActions = if ((newLandId != 0))
279279 then {
280280 let charRestPeriodUpdate = invoke(battlesApp, "updateLastBattleHeight", [charId], nil)
281281 if ((charRestPeriodUpdate == charRestPeriodUpdate))
282282 then {
283283 let charRestPeriod = match charRestPeriodUpdate {
284284 case isInt: Int =>
285285 isInt
286286 case _ =>
287287 throw("charRestPeriodUpdate failed")
288288 }
289289 let setEquipmentRequest = invoke(battlesApp, "setEquipment", [callerAddr, charId, weaponId, armorId, jewelId], nil)
290290 if ((setEquipmentRequest == setEquipmentRequest))
291291 then {
292292 let newEquipmentEffects = match setEquipmentRequest {
293293 case isStr: String =>
294294 let isStrSplit = split(isStr, separator)
295295 getEquipmentEffects([parseIntValue(isStrSplit[0]), parseIntValue(isStrSplit[1]), parseIntValue(isStrSplit[2])])
296296 case _ =>
297297 throw("Wrong equipment")
298298 }
299299 let charElemPowerAfterJoining = calcCharElemPower(charId, newEquipmentEffects)
300300 let landElemPowerAfterJoining = calcLandElemPower(newLandId, true, charElemPowerAfterJoining, newEquipmentEffects)
301301 let charElemShares = calcCharElemShares(charElemPowerAfterJoining, landElemPowerAfterJoining)
302302 [IntegerEntry(with(keyLandPyroPower, newLandId), landElemPowerAfterJoining[0]), IntegerEntry(with(keyLandAquaPower, newLandId), landElemPowerAfterJoining[1]), IntegerEntry(with(keyLandTerraPower, newLandId), landElemPowerAfterJoining[2]), IntegerEntry(with(keyLandAeroPower, newLandId), landElemPowerAfterJoining[3]), IntegerEntry(with(keyCharInitialPyroShares, charId), charElemShares[0]), IntegerEntry(with(keyCharInitialAquaShares, charId), charElemShares[1]), IntegerEntry(with(keyCharInitialTerraShares, charId), charElemShares[2]), IntegerEntry(with(keyCharInitialAeroShares, charId), charElemShares[3]), IntegerEntry(with(keyCharInitialLandPyroGrantedTokens, charId), elemGrantedTokens[0]), IntegerEntry(with(keyCharInitialLandAquaGrantedTokens, charId), elemGrantedTokens[1]), IntegerEntry(with(keyCharInitialLandTerraGrantedTokens, charId), elemGrantedTokens[2]), IntegerEntry(with(keyCharInitialLandAeroGrantedTokens, charId), elemGrantedTokens[3]), IntegerEntry(with(keyCharPyroPower, charId), charElemPowerAfterJoining[0]), IntegerEntry(with(keyCharAquaPower, charId), charElemPowerAfterJoining[1]), IntegerEntry(with(keyCharTerraPower, charId), charElemPowerAfterJoining[2]), IntegerEntry(with(keyCharAeroPower, charId), charElemPowerAfterJoining[3])]
303303 }
304304 else throw("Strict value is not equal to itself.")
305305 }
306306 else throw("Strict value is not equal to itself.")
307307 }
308308 else {
309309 let removeEquipmentRequest = invoke(battlesApp, "removeEquipment", [callerAddr, charId], nil)
310310 if ((removeEquipmentRequest == removeEquipmentRequest))
311311 then {
312312 let removedEquipment = match removeEquipmentRequest {
313313 case isStr: String =>
314314 isStr
315315 case _ =>
316316 throw("Issue removing equipment")
317317 }
318318 [DeleteEntry(with(keyCharInitialPyroShares, charId)), DeleteEntry(with(keyCharInitialAquaShares, charId)), DeleteEntry(with(keyCharInitialTerraShares, charId)), DeleteEntry(with(keyCharInitialAeroShares, charId)), DeleteEntry(with(keyCharInitialLandPyroGrantedTokens, charId)), DeleteEntry(with(keyCharInitialLandAquaGrantedTokens, charId)), DeleteEntry(with(keyCharInitialLandTerraGrantedTokens, charId)), DeleteEntry(with(keyCharInitialLandAeroGrantedTokens, charId)), DeleteEntry(with(keyCharPyroPower, charId)), DeleteEntry(with(keyCharAquaPower, charId)), DeleteEntry(with(keyCharTerraPower, charId)), DeleteEntry(with(keyCharAeroPower, charId))]
319319 }
320320 else throw("Strict value is not equal to itself.")
321321 }
322322 (([IntegerEntry(with(keyCharCurrentLand, charId), newLandId), IntegerEntry(with(keyLandLastTokenDistributionUpdate, currentLandId), height), IntegerEntry(with(keyLandPyroTotalGrantedTokens, currentLandId), elemGrantedTokens[0]), IntegerEntry(with(keyLandAquaTotalGrantedTokens, currentLandId), elemGrantedTokens[1]), IntegerEntry(with(keyLandTerraTotalGrantedTokens, currentLandId), elemGrantedTokens[2]), IntegerEntry(with(keyLandAeroTotalGrantedTokens, currentLandId), elemGrantedTokens[3])] ++ joiningNewLandActions) ++ leavingCurrentLandActions)
323323 }
324324 }
325325 }
326326
327327
328328 @Verifier(tx)
329329 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
330330

github/deemru/w8io/169f3d6 
67.51 ms