tx · HZbJruGLQVyqmptfspxsKMnM7YqWwNAsYUfQkEgubWa3

3MxiJLrY6Qa5bSYxxSFHSG5bVV2n59x1MGn:  -0.01400000 Waves

2022.05.18 13:01 [2056949] smart account 3MxiJLrY6Qa5bSYxxSFHSG5bVV2n59x1MGn > SELF 0.00000000 Waves

{ "type": 13, "id": "HZbJruGLQVyqmptfspxsKMnM7YqWwNAsYUfQkEgubWa3", "fee": 1400000, "feeAssetId": null, "timestamp": 1652868173523, "version": 2, "chainId": 84, "sender": "3MxiJLrY6Qa5bSYxxSFHSG5bVV2n59x1MGn", "senderPublicKey": "9M1hAsbWkVP73NKHvZezCkamwZfSdkejc3b8sejqT98D", "proofs": [ "4LogyvueYXhivkBMzHWFNVp25eMvU6jz9qMTqQWU7NU1QyrXBhgaCxzBnofMbBavMDC6TPuLvgvdzrJSamSzoqBW" ], "script": "base64:AAIFAAAAAAAAAAgIAhIECgIBAQAAACEAAAAACXNlcGFyYXRvcgIAAAABXwAAAAANc2hhcmVEZWNpbWFscwAN4Lazp2QAAAAAAAASa2V5Q2hhckN1cnJlbnRMYW5kAgAAABFjaGFyX2N1cnJlbnRfbGFuZAAAAAAfa2V5Q2hhckluaXRpYWxHZW5lcmF0ZWRTdXBwbGllcwIAAAAfY2hhcl9pbml0aWFsX2dlbmVyYXRlZF9zdXBwbGllcwAAAAAQa2V5TGFuZFB5cm9Qb3dlcgIAAAAPbGFuZF9weXJvX3Bvd2VyAAAAABBrZXlMYW5kQXF1YVBvd2VyAgAAAA9sYW5kX2FxdWFfcG93ZXIAAAAAEWtleUxhbmRUZXJyYVBvd2VyAgAAABBsYW5kX3RlcnJhX3Bvd2VyAAAAABBrZXlMYW5kQWVyb1Bvd2VyAgAAAA9sYW5kX2Flcm9fcG93ZXIAAAAAF2tleUNoYXJJbml0aWFsUHlyb1NoYXJlAgAAABdjaGFyX2luaXRpYWxfcHlyb19zaGFyZQAAAAAXa2V5Q2hhckluaXRpYWxBcXVhU2hhcmUCAAAAF2NoYXJfaW5pdGlhbF9hcXVhX3NoYXJlAAAAABhrZXlDaGFySW5pdGlhbFRlcnJhU2hhcmUCAAAAGGNoYXJfaW5pdGlhbF90ZXJyYV9zaGFyZQAAAAAXa2V5Q2hhckluaXRpYWxBZXJvU2hhcmUCAAAAF2NoYXJfaW5pdGlhbF9hZXJvX3NoYXJlAAAAABJrZXlDaGFyVG90YWxJbmNvbWUCAAAAEWNoYXJfdG90YWxfaW5jb21lAAAAABVrZXlBZGRyZXNzVG90YWxJbmNvbWUCAAAAFGFkZHJlc3NfdG90YWxfaW5jb21lAAAAAAZnb3ZBcHAJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAECAAAAIzNNeXhmd3ZidWVVQnluWUhmUXN1dE5YWk5xTm96R2lNbnNHAAAAABVrZXlFY29zeXN0ZW1BZGRyZXNzZXMCAAAAE2Vjb3N5c3RlbV9hZGRyZXNzZXMAAAAACmtleVRva2VuSWQCAAAACHRva2VuX2lkAAAAAA1rZXlUb3RhbExhbmRzAgAAAAt0b3RhbF9sYW5kcwAAAAAUa2V5VG9rZW5FbWlzc2lvblJhdGUCAAAAE3Rva2VuX2VtaXNzaW9uX3JhdGUAAAAACGNoYXJzQXBwCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzTkEzTFJTaWdrNmtuTFoxNnVUemNkTE5vdzJFUVp0WFRhSgAAAAAIa2V5T3duZXICAAAABW93bmVyAAAAABNrZXlOYXR1cmFsUHlyb0JvbnVzAgAAABJuYXR1cmFsX3B5cm9fYm9udXMAAAAAE2tleU5hdHVyYWxBcXVhQm9udXMCAAAAEm5hdHVyYWxfYXF1YV9ib251cwAAAAAUa2V5TmF0dXJhbFRlcnJhQm9udXMCAAAAE25hdHVyYWxfdGVycmFfYm9udXMAAAAAE2tleU5hdHVyYWxBZXJvQm9udXMCAAAAEm5hdHVyYWxfYWVyb19ib251cwEAAAAMaW52b2tlQ2hlY2tzAAAAAQAAAApjYWxsZXJBZGRyAwkBAAAAAiE9AAAAAgkABB4AAAABBQAAAAZnb3ZBcHAHCQAAAgAAAAECAAAAF0dvdmVybmluZyBhcHAgbm90IHJlYWR5BAAAABJlY29zeXN0ZW1BZGRyZXNzZXMJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABmdvdkFwcAUAAAAVa2V5RWNvc3lzdGVtQWRkcmVzc2VzAwkBAAAAAiE9AAAAAgkBAAAACGNvbnRhaW5zAAAAAgUAAAASZWNvc3lzdGVtQWRkcmVzc2VzCQAEJQAAAAEFAAAACmNhbGxlckFkZHIHCQAAAgAAAAECAAAADUFjY2VzcyBkZW5pZWQGAQAAAAR3aXRoAAAAAgAAAAFhAAAAAWIEAAAAAWMEAAAAByRtYXRjaDAFAAAAAWIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAAFaXNJbnQFAAAAByRtYXRjaDAJAAGkAAAAAQUAAAAFaXNJbnQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAAFaXNTdHIFAAAAByRtYXRjaDAFAAAABWlzU3RyCQAAAgAAAAECAAAAH01hdGNoaW5nIGlzc3VlIGluIHdpdGggZnVuY3Rpb24JAAEsAAAAAgkAASwAAAACBQAAAAFjBQAAAAlzZXBhcmF0b3IFAAAAAWEBAAAAF2dldENoYXJOYXR1cmFsRWxlbUJvbnVzAAAA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ck5hdHVyYWxFbGVtQm9udXMAAAAAAAAAAAMFAAAAA25pbAEAAAASY2FsY0NoYXJFbGVtU2hhcmVzAAAAAgAAABBjaGFyTmF0dXJhbEJvbnVzAAAADWxhbmRFbGVtUG93ZXIJAARMAAAAAgkAAGsAAAADBQAAAA1zaGFyZURlY2ltYWxzCQABkQAAAAIFAAAAEGNoYXJOYXR1cmFsQm9udXMAAAAAAAAAAAAJAAGRAAAAAgUAAAANbGFuZEVsZW1Qb3dlcgAAAAAAAAAAAAkABEwAAAACCQAAawAAAAMFAAAADXNoYXJlRGVjaW1hbHMJAAGRAAAAAgUAAAAQY2hhck5hdHVyYWxCb251cwAAAAAAAAAAAQkAAZEAAAACBQAAAA1sYW5kRWxlbVBvd2VyAAAAAAAAAAABCQAETAAAAAIJAABrAAAAAwUAAAANc2hhcmVEZWNpbWFscwkAAZEAAAACBQAAABBjaGFyTmF0dXJhbEJvbnVzAAAAAAAAAAACCQABkQAAAAIFAAAADWxhbmRFbGVtUG93ZXIAAAAAAAAAAAIJAARMAAAAAgkAAGsAAAADBQAAAA1zaGFyZURlY2ltYWxzCQABkQAAAAIFAAAAEGNoYXJOYXR1cmFsQm9udXMAAAAAAAAAAAMJAAGRAAAAAgUAAAANbGFuZEVsZW1Qb3dlcgAAAAAAAAAAAwUAAAADbmlsAQAAAA5jYWxjQ2hhckluY29tZQAAAAQAAAAGY2hhcklkAAAAEG9sZExhbmRFbGVtUG93ZXIAAAAUY2hhck5hdHVyYWxFbGVtQm9udXMAAAAYY3VycmVudEdlbmVyYXRlZFN1cHBsaWVzBAAAABxvbGRMYW5kQ2hhckN1cnJlbnRFbGVtU2hhcmVzCQEAAAASY2FsY0NoYXJFbGVtU2hhcmVzAAAAAgUAAAAQb2xkTGFuZEVsZW1Qb3dlcgUAAAAUY2hhck5hdHVyYWxFbGVtQm9udXMEAAAAHG9sZExhbmRDaGFyQXZlcmFnZUVsZW1TaGFyZXMJAARMAAAAAgkAAGkAAAACCQAAZAAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAQAAAAR3aXRoAAAAAgUAAAAXa2V5Q2hhckluaXRpYWxQeXJvU2hhcmUFAAAABmNoYXJJZAkAAZEAAAACBQAAABxvbGRMYW5kQ2hhckN1cnJlbnRFbGVtU2hhcmVzAAAAAAAAAAAAAAAAAAAAAAACCQAETAAAAAIJAABpAAAAAgkAAGQAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQEAAAAEd2l0aAAAAAIFAAAAF2tleUNoYXJJbml0aWFsQXF1YVNoYXJlBQAAAAZjaGFySWQJAAGRAAAAAgUAAAAcb2xkTGFuZENoYXJDdXJyZW50RWxlbVNoYXJlcwAAAAAAAAAAAQAAAAAAAAAAAgkABEwAAAACCQAAaQAAAAIJAABkAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkBAAAABHdpdGgAAAACBQAAABhrZXlDaGFySW5pdGlhbFRlcnJhU2hhcmUFAAAABmNoYXJJZAkAAZEAAAACBQAAABxvbGRMYW5kQ2hhckN1cnJlbnRFbGVtU2hhcmVzAAAAAAAAAAACAAAAAAAAAAACCQAETAAAAAIJAABpAAAAAgkAAGQAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQEAAAAEd2l0aAAAAAIFAAAAF2tleUNoYXJJbml0aWFsQWVyb1NoYXJlBQAAAAZjaGFySWQJAAGRAAAAAgUAAAAcb2xkTGFuZENoYXJDdXJyZW50RWxlbVNoYXJlcwAAAAAAAAAAAwAAAAAAAAAAAgUAAAADbmlsBAAAABRjaGFyRWxpZ2libGVTdXBwbGllcwkAAGkAAAACCQAAaQAAAAIJAABlAAAAAgUAAAAYY3VycmVudEdlbmVyYXRlZFN1cHBsaWVzCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQEAAAAEd2l0aAAAAAIFAAAAH2tleUNoYXJJbml0aWFsR2VuZXJhdGVkU3VwcGxpZXMFAAAABmNoYXJJZAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAGZ292QXBwBQAAAA1rZXlUb3RhbExhbmRzAAAAAAAAAAAECQAAZAAAAAIJAABkAAAAAgkAAGQAAAACCQAAawAAAAMFAAAAFGNoYXJFbGlnaWJsZVN1cHBsaWVzCQABkQAAAAIFAAAAHG9sZExhbmRDaGFyQXZlcmFnZUVsZW1TaGFyZXMAAAAAAAAAAAAFAAAADXNoYXJlRGVjaW1hbHMJAABrAAAAAwUAAAAUY2hhckVsaWdpYmxlU3VwcGxpZXMJAAGRAAAAAgUAAAAcb2xkTGFuZENoYXJBdmVyYWdlRWxlbVNoYXJlcwAAAAAAAAAAAQUAAAANc2hhcmVEZWNpbWFscwkAAGsAAAADBQAAABRjaGFyRWxpZ2libGVTdXBwbGllcwkAAZEAAAACBQAAABxvbGRMYW5kQ2hhckF2ZXJhZ2VFbGVtU2hhcmVzAAAAAAAAAAACBQAAAA1zaGFyZURlY2ltYWxzCQAAawAAAAMFAAAAFGNoYXJFbGlnaWJsZVN1cHBsaWVzCQABkQAAAAIFAAAAHG9sZExhbmRDaGFyQXZlcmFnZUVsZW1TaGFyZXMAAAAAAAAAAAMFAAAADXNoYXJlRGVjaW1hbHMAAAABAAAAAWkBAAAADmNoYXJNb3ZpbmdMYW5kAAAAAgAAAAZjaGFySWQAAAAGbGFuZElkAwkBAAAAAiE9AAAAAgkBAAAADGludm9rZUNoZWNrcwAAAAEIBQAAAAFpAAAABmNhbGxlcgYJAQAAAAV0aHJvdwAAAAAEAAAACmNhbGxlckFkZHIJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwMJAQAAAAIhPQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAACGNoYXJzQXBwCQEAAAAEd2l0aAAAAAIFAAAACGtleU93bmVyBQAAAAZjaGFySWQFAAAACmNhbGxlckFkZHIJAAACAAAAAQIAAAAcQ2FsbGVyIGRvZXNuJ3Qgb3duIHRoaXMgY2hhcgMDCQAAZgAAAAIAAAAAAAAAAAAFAAAABmxhbmRJZAYJAABmAAAAAgUAAAAGbGFuZElkCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAZnb3ZBcHAFAAAADWtleVRvdGFsTGFuZHMJAAACAAAAAQIAAAAKTm90IGEgbGFuZAQAAAALY3VycmVudExhbmQJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkBAAAABHdpdGgAAAACBQAAABJrZXlDaGFyQ3VycmVudExhbmQFAAAABmNoYXJJZAAAAAAAAAAAAAMJAAAAAAAAAgUAAAALY3VycmVudExhbmQFAAAABmxhbmRJZAkAAAIAAAABAgAAABlDaGFyIGFscmVhZHkgb24gdGhhdCBsYW5kBAAAABRjaGFyTmF0dXJhbEVsZW1Cb251cwkBAAAAF2dldENoYXJOYXR1cmFsRWxlbUJvbnVzAAAAAQUAAAAGY2hhcklkBAAAABBvbGRMYW5kRWxlbVBvd2VyCQEAAAAQZ2V0TGFuZEVsZW1Qb3dlcgAAAAEFAAAAC2N1cnJlbnRMYW5kBAAAAB5jdXJyZW50R2VuZXJhdGVkU3VwcGxpZXNSZXN1bHQJAAP8AAAABAUAAAAGZ292QXBwAgAAABRnZXRHZW5lcmF0ZWRTdXBwbGllcwUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAAHmN1cnJlbnRHZW5lcmF0ZWRTdXBwbGllc1Jlc3VsdAUAAAAeY3VycmVudEdlbmVyYXRlZFN1cHBsaWVzUmVzdWx0BAAAABhjdXJyZW50R2VuZXJhdGVkU3VwcGxpZXMEAAAAByRtYXRjaDAFAAAAHmN1cnJlbnRHZW5lcmF0ZWRTdXBwbGllc1Jlc3VsdAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAVpc0ludAUAAAAHJG1hdGNoMAUAAAAFaXNJbnQJAAACAAAAAQIAAAARQmFkIGludm9rZSByZXN1bHQEAAAADmpvaW5pbmdBY3Rpb25zAwkBAAAAAiE9AAAAAgUAAAAGbGFuZElkAAAAAAAAAAAABAAAABNuZXdMYW5kTmV3RWxlbVBvd2VyCQEAAAAUY2FsY05ld0xhbmRFbGVtUG93ZXIAAAACBQAAAAZsYW5kSWQFAAAAFGNoYXJOYXR1cmFsRWxlbUJvbnVzBAAAABVuZXdMYW5kQ2hhckVsZW1TaGFyZXMJAQAAABJjYWxjQ2hhckVsZW1TaGFyZXMAAAACBQAAABRjaGFyTmF0dXJhbEVsZW1Cb251cwUAAAATbmV3TGFuZE5ld0VsZW1Qb3dlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABBrZXlMYW5kUHlyb1Bvd2VyBQAAAAZsYW5kSWQJAAGRAAAAAgUAAAATbmV3TGFuZE5ld0VsZW1Qb3dlcgAAAAAAAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABBrZXlMYW5kQXF1YVBvd2VyBQAAAAZsYW5kSWQJAAGRAAAAAgUAAAATbmV3TGFuZE5ld0VsZW1Qb3dlcgAAAAAAAAAAAQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABFrZXlMYW5kVGVycmFQb3dlcgUAAAAGbGFuZElkCQABkQAAAAIFAAAAE25ld0xhbmROZXdFbGVtUG93ZXIAAAAAAAAAAAIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAQa2V5TGFuZEFlcm9Qb3dlcgUAAAAGbGFuZElkCQABkQAAAAIFAAAAE25ld0xhbmROZXdFbGVtUG93ZXIAAAAAAAAAAAMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAfa2V5Q2hhckluaXRpYWxHZW5lcmF0ZWRTdXBwbGllcwUAAAAGY2hhcklkBQAAABhjdXJyZW50R2VuZXJhdGVkU3VwcGxpZXMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAXa2V5Q2hhckluaXRpYWxQeXJvU2hhcmUFAAAABmNoYXJJZAkAAZEAAAACBQAAABVuZXdMYW5kQ2hhckVsZW1TaGFyZXMAAAAAAAAAAAAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAXa2V5Q2hhckluaXRpYWxBcXVhU2hhcmUFAAAABmNoYXJJZAkAAZEAAAACBQAAABVuZXdMYW5kQ2hhckVsZW1TaGFyZXMAAAAAAAAAAAEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAYa2V5Q2hhckluaXRpYWxUZXJyYVNoYXJlBQAAAAZjaGFySWQJAAGRAAAAAgUAAAAVbmV3TGFuZENoYXJFbGVtU2hhcmVzAAAAAAAAAAACCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAF2tleUNoYXJJbml0aWFsQWVyb1NoYXJlBQAAAAZjaGFySWQJAAGRAAAAAgUAAAAVbmV3TGFuZENoYXJFbGVtU2hhcmVzAAAAAAAAAAADBQAAAANuaWwJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAABHdpdGgAAAACBQAAAB9rZXlDaGFySW5pdGlhbEdlbmVyYXRlZFN1cHBsaWVzBQAAAAZjaGFySWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAABHdpdGgAAAACBQAAABdrZXlDaGFySW5pdGlhbFB5cm9TaGFyZQUAAAAGY2hhcklkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAR3aXRoAAAAAgUAAAAXa2V5Q2hhckluaXRpYWxBcXVhU2hhcmUFAAAABmNoYXJJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAEd2l0aAAAAAIFAAAAGGtleUNoYXJJbml0aWFsVGVycmFTaGFyZQUAAAAGY2hhcklkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAR3aXRoAAAAAgUAAAAXa2V5Q2hhckluaXRpYWxBZXJvU2hhcmUFAAAABmNoYXJJZAUAAAADbmlsBAAAAA5leGl0aW5nQWN0aW9ucwMJAQAAAAIhPQAAAAIFAAAAC2N1cnJlbnRMYW5kAAAAAAAAAAAABAAAAA9zZW5kVG9rZW5zVG9BcHAJAAP8AAAABAUAAAAGZ292QXBwAgAAAA9zZW5kVG9rZW5zVG9BcHAJAARMAAAAAgkBAAAADmNhbGNDaGFySW5jb21lAAAABAUAAAAGY2hhcklkBQAAABBvbGRMYW5kRWxlbVBvd2VyBQAAABRjaGFyTmF0dXJhbEVsZW1Cb251cwUAAAAYY3VycmVudEdlbmVyYXRlZFN1cHBsaWVzCQAETAAAAAIICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMFAAAAA25pbAUAAAADbmlsAwkAAAAAAAACBQAAAA9zZW5kVG9rZW5zVG9BcHAFAAAAD3NlbmRUb2tlbnNUb0FwcAQAAAAPY2hhclRva2VuSW5jb21lBAAAAAckbWF0Y2gwBQAAAA9zZW5kVG9rZW5zVG9BcHADCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAAFaXNJbnQFAAAAByRtYXRjaDAFAAAABWlzSW50CQAAAgAAAAECAAAADEludm9rZSBpc3N1ZQQAAAASbmV3Q2hhclRvdGFsSW5jb21lCQAAZAAAAAIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkBAAAABHdpdGgAAAACBQAAABJrZXlDaGFyVG90YWxJbmNvbWUFAAAABmNoYXJJZAAAAAAAAAAAAAUAAAAPY2hhclRva2VuSW5jb21lBAAAABVuZXdBZGRyZXNzVG90YWxJbmNvbWUJAABkAAAAAgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQEAAAAEd2l0aAAAAAIFAAAAFWtleUFkZHJlc3NUb3RhbEluY29tZQUAAAAKY2FsbGVyQWRkcgAAAAAAAAAAAAUAAAAPY2hhclRva2VuSW5jb21lBAAAABNvbGRMYW5kTmV3RWxlbVBvd2VyCQEAAAAUY2FsY09sZExhbmRFbGVtUG93ZXIAAAACBQAAABBvbGRMYW5kRWxlbVBvd2VyBQAAABRjaGFyTmF0dXJhbEVsZW1Cb251cwkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAAD2NoYXJUb2tlbkluY29tZQkBAAAAEUBleHRyTmF0aXZlKDEwNTIpAAAAAgUAAAAGZ292QXBwBQAAAAprZXlUb2tlbklkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAEmtleUNoYXJUb3RhbEluY29tZQUAAAAGY2hhcklkBQAAABJuZXdDaGFyVG90YWxJbmNvbWUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAVa2V5QWRkcmVzc1RvdGFsSW5jb21lBQAAAApjYWxsZXJBZGRyBQAAABJuZXdDaGFyVG90YWxJbmNvbWUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAQa2V5TGFuZFB5cm9Qb3dlcgUAAAALY3VycmVudExhbmQJAAGRAAAAAgUAAAATb2xkTGFuZE5ld0VsZW1Qb3dlcgAAAAAAAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABBrZXlMYW5kQXF1YVBvd2VyBQAAAAtjdXJyZW50TGFuZAkAAZEAAAACBQAAABNvbGRMYW5kTmV3RWxlbVBvd2VyAAAAAAAAAAABCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAEWtleUxhbmRUZXJyYVBvd2VyBQAAAAtjdXJyZW50TGFuZAkAAZEAAAACBQAAABNvbGRMYW5kTmV3RWxlbVBvd2VyAAAAAAAAAAACCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAEGtleUxhbmRBZXJvUG93ZXIFAAAAC2N1cnJlbnRMYW5kCQABkQAAAAIFAAAAE29sZExhbmROZXdFbGVtUG93ZXIAAAAAAAAAAAMFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4FAAAAA25pbAkABE4AAAACCQAETgAAAAIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAASa2V5Q2hhckN1cnJlbnRMYW5kBQAAAAZjaGFySWQFAAAABmxhbmRJZAUAAAADbmlsBQAAAA5qb2luaW5nQWN0aW9ucwUAAAAOZXhpdGluZ0FjdGlvbnMJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXmmYHLt", "height": 2056949, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3LapG6R7tHyCvhzxeDJreDFqL3uefc2BH2XJNEQK39pa Next: C1bVv8dpSsPMXq821V5nWc7wYBEvFyFWnVwjYbpqP44L Diff:
OldNewDifferences
3232 let govApp = addressFromStringValue("3MyxfwvbueUBynYHfQsutNXZNqNozGiMnsG")
3333
3434 let keyEcosystemAddresses = "ecosystem_addresses"
35+
36+let keyTokenId = "token_id"
3537
3638 let keyTotalLands = "total_lands"
3739
134136 else [DeleteEntry(with(keyCharInitialGeneratedSupplies, charId)), DeleteEntry(with(keyCharInitialPyroShare, charId)), DeleteEntry(with(keyCharInitialAquaShare, charId)), DeleteEntry(with(keyCharInitialTerraShare, charId)), DeleteEntry(with(keyCharInitialAeroShare, charId))]
135137 let exitingActions = if ((currentLand != 0))
136138 then {
137- let sendTokensToAddress = invoke(govApp, "sendTokensToAddress", [calcCharIncome(charId, oldLandElemPower, charNaturalElemBonus, currentGeneratedSupplies), i.caller.bytes], nil)
138- if ((sendTokensToAddress == sendTokensToAddress))
139+ let sendTokensToApp = invoke(govApp, "sendTokensToApp", [calcCharIncome(charId, oldLandElemPower, charNaturalElemBonus, currentGeneratedSupplies), i.caller.bytes], nil)
140+ if ((sendTokensToApp == sendTokensToApp))
139141 then {
140- let charTokenIncome = match sendTokensToAddress {
142+ let charTokenIncome = match sendTokensToApp {
141143 case isInt: Int =>
142144 isInt
143145 case _ =>
146148 let newCharTotalIncome = (valueOrElse(getInteger(this, with(keyCharTotalIncome, charId)), 0) + charTokenIncome)
147149 let newAddressTotalIncome = (valueOrElse(getInteger(this, with(keyAddressTotalIncome, callerAddr)), 0) + charTokenIncome)
148150 let oldLandNewElemPower = calcOldLandElemPower(oldLandElemPower, charNaturalElemBonus)
149-[IntegerEntry(with(keyCharTotalIncome, charId), newCharTotalIncome), IntegerEntry(with(keyAddressTotalIncome, callerAddr), newCharTotalIncome), IntegerEntry(with(keyLandPyroPower, currentLand), oldLandNewElemPower[0]), IntegerEntry(with(keyLandAquaPower, currentLand), oldLandNewElemPower[1]), IntegerEntry(with(keyLandTerraPower, currentLand), oldLandNewElemPower[2]), IntegerEntry(with(keyLandAeroPower, currentLand), oldLandNewElemPower[3])]
151+[ScriptTransfer(i.caller, charTokenIncome, getBinaryValue(govApp, keyTokenId)), IntegerEntry(with(keyCharTotalIncome, charId), newCharTotalIncome), IntegerEntry(with(keyAddressTotalIncome, callerAddr), newCharTotalIncome), IntegerEntry(with(keyLandPyroPower, currentLand), oldLandNewElemPower[0]), IntegerEntry(with(keyLandAquaPower, currentLand), oldLandNewElemPower[1]), IntegerEntry(with(keyLandTerraPower, currentLand), oldLandNewElemPower[2]), IntegerEntry(with(keyLandAeroPower, currentLand), oldLandNewElemPower[3])]
150152 }
151153 else throw("Strict value is not equal to itself.")
152154 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let separator = "_"
55
66 let shareDecimals = 1000000000000000000
77
88 let keyCharCurrentLand = "char_current_land"
99
1010 let keyCharInitialGeneratedSupplies = "char_initial_generated_supplies"
1111
1212 let keyLandPyroPower = "land_pyro_power"
1313
1414 let keyLandAquaPower = "land_aqua_power"
1515
1616 let keyLandTerraPower = "land_terra_power"
1717
1818 let keyLandAeroPower = "land_aero_power"
1919
2020 let keyCharInitialPyroShare = "char_initial_pyro_share"
2121
2222 let keyCharInitialAquaShare = "char_initial_aqua_share"
2323
2424 let keyCharInitialTerraShare = "char_initial_terra_share"
2525
2626 let keyCharInitialAeroShare = "char_initial_aero_share"
2727
2828 let keyCharTotalIncome = "char_total_income"
2929
3030 let keyAddressTotalIncome = "address_total_income"
3131
3232 let govApp = addressFromStringValue("3MyxfwvbueUBynYHfQsutNXZNqNozGiMnsG")
3333
3434 let keyEcosystemAddresses = "ecosystem_addresses"
35+
36+let keyTokenId = "token_id"
3537
3638 let keyTotalLands = "total_lands"
3739
3840 let keyTokenEmissionRate = "token_emission_rate"
3941
4042 let charsApp = addressFromStringValue("3NA3LRSigk6knLZ16uTzcdLNow2EQZtXTaJ")
4143
4244 let keyOwner = "owner"
4345
4446 let keyNaturalPyroBonus = "natural_pyro_bonus"
4547
4648 let keyNaturalAquaBonus = "natural_aqua_bonus"
4749
4850 let keyNaturalTerraBonus = "natural_terra_bonus"
4951
5052 let keyNaturalAeroBonus = "natural_aero_bonus"
5153
5254 func invokeChecks (callerAddr) = if ((isDataStorageUntouched(govApp) != false))
5355 then throw("Governing app not ready")
5456 else {
5557 let ecosystemAddresses = getStringValue(govApp, keyEcosystemAddresses)
5658 if ((contains(ecosystemAddresses, toString(callerAddr)) != false))
5759 then throw("Access denied")
5860 else true
5961 }
6062
6163
6264 func with (a,b) = {
6365 let c = match b {
6466 case isInt: Int =>
6567 toString(isInt)
6668 case isStr: String =>
6769 isStr
6870 case _ =>
6971 throw("Matching issue in with function")
7072 }
7173 ((c + separator) + a)
7274 }
7375
7476
7577 func getCharNaturalElemBonus (charId) = [getIntegerValue(charsApp, with(keyNaturalPyroBonus, charId)), getIntegerValue(charsApp, with(keyNaturalAquaBonus, charId)), getIntegerValue(charsApp, with(keyNaturalTerraBonus, charId)), getIntegerValue(charsApp, with(keyNaturalAeroBonus, charId))]
7678
7779
7880 func getLandElemPower (landId) = [valueOrElse(getInteger(this, with(keyLandPyroPower, landId)), 0), valueOrElse(getInteger(this, with(keyLandAquaPower, landId)), 0), valueOrElse(getInteger(this, with(keyLandTerraPower, landId)), 0), valueOrElse(getInteger(this, with(keyLandAeroPower, landId)), 0)]
7981
8082
8183 func calcNewLandElemPower (landId,charNaturalElemBonus) = {
8284 let newLandElemPower = getLandElemPower(landId)
8385 [(newLandElemPower[0] + charNaturalElemBonus[0]), (newLandElemPower[1] + charNaturalElemBonus[1]), (newLandElemPower[2] + charNaturalElemBonus[2]), (newLandElemPower[3] + charNaturalElemBonus[3])]
8486 }
8587
8688
8789 func calcOldLandElemPower (oldLandElemPower,charNaturalElemBonus) = [(oldLandElemPower[0] - charNaturalElemBonus[0]), (oldLandElemPower[1] - charNaturalElemBonus[1]), (oldLandElemPower[2] - charNaturalElemBonus[2]), (oldLandElemPower[3] - charNaturalElemBonus[3])]
8890
8991
9092 func calcCharElemShares (charNaturalBonus,landElemPower) = [fraction(shareDecimals, charNaturalBonus[0], landElemPower[0]), fraction(shareDecimals, charNaturalBonus[1], landElemPower[1]), fraction(shareDecimals, charNaturalBonus[2], landElemPower[2]), fraction(shareDecimals, charNaturalBonus[3], landElemPower[3])]
9193
9294
9395 func calcCharIncome (charId,oldLandElemPower,charNaturalElemBonus,currentGeneratedSupplies) = {
9496 let oldLandCharCurrentElemShares = calcCharElemShares(oldLandElemPower, charNaturalElemBonus)
9597 let oldLandCharAverageElemShares = [((getIntegerValue(this, with(keyCharInitialPyroShare, charId)) + oldLandCharCurrentElemShares[0]) / 2), ((getIntegerValue(this, with(keyCharInitialAquaShare, charId)) + oldLandCharCurrentElemShares[1]) / 2), ((getIntegerValue(this, with(keyCharInitialTerraShare, charId)) + oldLandCharCurrentElemShares[2]) / 2), ((getIntegerValue(this, with(keyCharInitialAeroShare, charId)) + oldLandCharCurrentElemShares[3]) / 2)]
9698 let charEligibleSupplies = (((currentGeneratedSupplies - getIntegerValue(this, with(keyCharInitialGeneratedSupplies, charId))) / getIntegerValue(govApp, keyTotalLands)) / 4)
9799 (((fraction(charEligibleSupplies, oldLandCharAverageElemShares[0], shareDecimals) + fraction(charEligibleSupplies, oldLandCharAverageElemShares[1], shareDecimals)) + fraction(charEligibleSupplies, oldLandCharAverageElemShares[2], shareDecimals)) + fraction(charEligibleSupplies, oldLandCharAverageElemShares[3], shareDecimals))
98100 }
99101
100102
101103 @Callable(i)
102104 func charMovingLand (charId,landId) = if ((invokeChecks(i.caller) != true))
103105 then throw()
104106 else {
105107 let callerAddr = toBase58String(i.caller.bytes)
106108 if ((getStringValue(charsApp, with(keyOwner, charId)) != callerAddr))
107109 then throw("Caller doesn't own this char")
108110 else if (if ((0 > landId))
109111 then true
110112 else (landId > getIntegerValue(govApp, keyTotalLands)))
111113 then throw("Not a land")
112114 else {
113115 let currentLand = valueOrElse(getInteger(this, with(keyCharCurrentLand, charId)), 0)
114116 if ((currentLand == landId))
115117 then throw("Char already on that land")
116118 else {
117119 let charNaturalElemBonus = getCharNaturalElemBonus(charId)
118120 let oldLandElemPower = getLandElemPower(currentLand)
119121 let currentGeneratedSuppliesResult = invoke(govApp, "getGeneratedSupplies", nil, nil)
120122 if ((currentGeneratedSuppliesResult == currentGeneratedSuppliesResult))
121123 then {
122124 let currentGeneratedSupplies = match currentGeneratedSuppliesResult {
123125 case isInt: Int =>
124126 isInt
125127 case _ =>
126128 throw("Bad invoke result")
127129 }
128130 let joiningActions = if ((landId != 0))
129131 then {
130132 let newLandNewElemPower = calcNewLandElemPower(landId, charNaturalElemBonus)
131133 let newLandCharElemShares = calcCharElemShares(charNaturalElemBonus, newLandNewElemPower)
132134 [IntegerEntry(with(keyLandPyroPower, landId), newLandNewElemPower[0]), IntegerEntry(with(keyLandAquaPower, landId), newLandNewElemPower[1]), IntegerEntry(with(keyLandTerraPower, landId), newLandNewElemPower[2]), IntegerEntry(with(keyLandAeroPower, landId), newLandNewElemPower[3]), IntegerEntry(with(keyCharInitialGeneratedSupplies, charId), currentGeneratedSupplies), IntegerEntry(with(keyCharInitialPyroShare, charId), newLandCharElemShares[0]), IntegerEntry(with(keyCharInitialAquaShare, charId), newLandCharElemShares[1]), IntegerEntry(with(keyCharInitialTerraShare, charId), newLandCharElemShares[2]), IntegerEntry(with(keyCharInitialAeroShare, charId), newLandCharElemShares[3])]
133135 }
134136 else [DeleteEntry(with(keyCharInitialGeneratedSupplies, charId)), DeleteEntry(with(keyCharInitialPyroShare, charId)), DeleteEntry(with(keyCharInitialAquaShare, charId)), DeleteEntry(with(keyCharInitialTerraShare, charId)), DeleteEntry(with(keyCharInitialAeroShare, charId))]
135137 let exitingActions = if ((currentLand != 0))
136138 then {
137- let sendTokensToAddress = invoke(govApp, "sendTokensToAddress", [calcCharIncome(charId, oldLandElemPower, charNaturalElemBonus, currentGeneratedSupplies), i.caller.bytes], nil)
138- if ((sendTokensToAddress == sendTokensToAddress))
139+ let sendTokensToApp = invoke(govApp, "sendTokensToApp", [calcCharIncome(charId, oldLandElemPower, charNaturalElemBonus, currentGeneratedSupplies), i.caller.bytes], nil)
140+ if ((sendTokensToApp == sendTokensToApp))
139141 then {
140- let charTokenIncome = match sendTokensToAddress {
142+ let charTokenIncome = match sendTokensToApp {
141143 case isInt: Int =>
142144 isInt
143145 case _ =>
144146 throw("Invoke issue")
145147 }
146148 let newCharTotalIncome = (valueOrElse(getInteger(this, with(keyCharTotalIncome, charId)), 0) + charTokenIncome)
147149 let newAddressTotalIncome = (valueOrElse(getInteger(this, with(keyAddressTotalIncome, callerAddr)), 0) + charTokenIncome)
148150 let oldLandNewElemPower = calcOldLandElemPower(oldLandElemPower, charNaturalElemBonus)
149-[IntegerEntry(with(keyCharTotalIncome, charId), newCharTotalIncome), IntegerEntry(with(keyAddressTotalIncome, callerAddr), newCharTotalIncome), IntegerEntry(with(keyLandPyroPower, currentLand), oldLandNewElemPower[0]), IntegerEntry(with(keyLandAquaPower, currentLand), oldLandNewElemPower[1]), IntegerEntry(with(keyLandTerraPower, currentLand), oldLandNewElemPower[2]), IntegerEntry(with(keyLandAeroPower, currentLand), oldLandNewElemPower[3])]
151+[ScriptTransfer(i.caller, charTokenIncome, getBinaryValue(govApp, keyTokenId)), IntegerEntry(with(keyCharTotalIncome, charId), newCharTotalIncome), IntegerEntry(with(keyAddressTotalIncome, callerAddr), newCharTotalIncome), IntegerEntry(with(keyLandPyroPower, currentLand), oldLandNewElemPower[0]), IntegerEntry(with(keyLandAquaPower, currentLand), oldLandNewElemPower[1]), IntegerEntry(with(keyLandTerraPower, currentLand), oldLandNewElemPower[2]), IntegerEntry(with(keyLandAeroPower, currentLand), oldLandNewElemPower[3])]
150152 }
151153 else throw("Strict value is not equal to itself.")
152154 }
153155 else nil
154156 (([IntegerEntry(with(keyCharCurrentLand, charId), landId)] ++ joiningActions) ++ exitingActions)
155157 }
156158 else throw("Strict value is not equal to itself.")
157159 }
158160 }
159161 }
160162
161163
162164 @Verifier(tx)
163165 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
164166

github/deemru/w8io/873ac7e 
136.36 ms