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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ck5hdHVyYWxFbGVtQm9udXMAAAAAAAAAAAMFAAAAA25pbAEAAAASY2FsY0NoYXJFbGVtU2hhcmVzAAAAAgAAABBjaGFyTmF0dXJhbEJvbnVzAAAADWxhbmRFbGVtUG93ZXIJAARMAAAAAgkAAGsAAAADBQAAAA1zaGFyZURlY2ltYWxzCQABkQAAAAIFAAAAEGNoYXJOYXR1cmFsQm9udXMAAAAAAAAAAAAJAAGRAAAAAgUAAAANbGFuZEVsZW1Qb3dlcgAAAAAAAAAAAAkABEwAAAACCQAAawAAAAMFAAAADXNoYXJlRGVjaW1hbHMJAAGRAAAAAgUAAAAQY2hhck5hdHVyYWxCb251cwAAAAAAAAAAAQkAAZEAAAACBQAAAA1sYW5kRWxlbVBvd2VyAAAAAAAAAAABCQAETAAAAAIJAABrAAAAAwUAAAANc2hhcmVEZWNpbWFscwkAAZEAAAACBQAAABBjaGFyTmF0dXJhbEJvbnVzAAAAAAAAAAACCQABkQAAAAIFAAAADWxhbmRFbGVtUG93ZXIAAAAAAAAAAAIJAARMAAAAAgkAAGsAAAADBQAAAA1zaGFyZURlY2ltYWxzCQABkQAAAAIFAAAAEGNoYXJOYXR1cmFsQm9udXMAAAAAAAAAAAMJAAGRAAAAAgUAAAANbGFuZEVsZW1Qb3dlcgAAAAAAAAAAAwUAAAADbmlsAQAAAA5jYWxjQ2hhckluY29tZQAAAAQAAAAGY2hhcklkAAAAEG9sZExhbmRFbGVtUG93ZXIAAAAUY2hhck5hdHVyYWxFbGVtQm9udXMAAAAYY3VycmVudEdlbmVyYXRlZFN1cHBsaWVzBAAAABxvbGRMYW5kQ2hhckN1cnJlbnRFbGVtU2hhcmVzCQEAAAASY2FsY0NoYXJFbGVtU2hhcmVzAAAAAgUAAAAQb2xkTGFuZEVsZW1Qb3dlcgUAAAAUY2hhck5hdHVyYWxFbGVtQm9udXMEAAAAHG9sZExhbmRDaGFyQXZlcmFnZUVsZW1TaGFyZXMJAARMAAAAAgkAAGkAAAACCQAAZAAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAQAAAAR3aXRoAAAAAgUAAAAXa2V5Q2hhckluaXRpYWxQeXJvU2hhcmUFAAAABmNoYXJJZAkAAZEAAAAC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AAMJAAAAAAAAAgUAAAALY3VycmVudExhbmQFAAAABmxhbmRJZAkAAAIAAAABAgAAABlDaGFyIGFscmVhZHkgb24gdGhhdCBsYW5kBAAAABRjaGFyTmF0dXJhbEVsZW1Cb251cwkBAAAAF2dldENoYXJOYXR1cmFsRWxlbUJvbnVzAAAAAQUAAAAGY2hhcklkBAAAABBvbGRMYW5kRWxlbVBvd2VyCQEAAAAQZ2V0TGFuZEVsZW1Qb3dlcgAAAAEFAAAAC2N1cnJlbnRMYW5kBAAAAB5jdXJyZW50R2VuZXJhdGVkU3VwcGxpZXNSZXN1bHQJAAP8AAAABAUAAAAGZ292QXBwAgAAABRnZXRHZW5lcmF0ZWRTdXBwbGllcwUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAAHmN1cnJlbnRHZW5lcmF0ZWRTdXBwbGllc1Jlc3VsdAUAAAAeY3VycmVudEdlbmVyYXRlZFN1cHBsaWVzUmVzdWx0BAAAABhjdXJyZW50R2VuZXJhdGVkU3VwcGxpZXMEAAAAByRtYXRjaDAFAAAAHmN1cnJlbnRHZW5lcmF0ZWRTdXBwbGllc1Jlc3VsdAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAVpc0ludAUAAAAHJG1hdGNoMAUAAAAFaXNJbnQJAAACAAAAAQIAAAARQmFkIGludm9rZSByZXN1bHQEAAAADmpvaW5pbmdBY3Rpb25zAwkBAAAAAiE9AAAAAgUAAAAGbGFuZElkAAAAAAAAAAAABAAAABNuZXdMYW5kTmV3RWxlbVBvd2VyCQEAAAAUY2FsY05ld0xhbmRFbGVtUG93ZXIAAAACBQAAAAZsYW5kSWQFAAAAFGNoYXJOYXR1cmFsRWxlbUJvbnVzBAAAABVuZXdMYW5kQ2hhckVsZW1TaGFyZXMJAQAAABJjYWxjQ2hhckVsZW1TaGFyZXMAAAACBQAAABRjaGFyTmF0dXJhbEVsZW1Cb251cwUAAAATbmV3TGFuZE5ld0VsZW1Qb3dlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABBrZXlMYW5kUHlyb1Bvd2VyBQAAAAZsYW5kSWQJAAGRAAAAAgUAAAATbmV3TGFuZE5ld0VsZW1Qb3dlcgAAAAAAAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABBrZXlMYW5kQXF1YVBvd2VyBQAAAAZsYW5kSWQJAAGRAAAAAgUAAAATbmV3TGFuZE5ld0VsZW1Qb3dlcgAAAAAAAAAAAQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABFrZXlMYW5kVGVycmFQb3dlcgUAAAAGbGFuZElkCQABkQAAAAIFAAAAE25ld0xhbmROZXdFbGVtUG93ZXIAAAAAAAAAAAIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAQa2V5TGFuZEFlcm9Qb3dlcgUAAAAGbGFuZElkCQABkQAAAAIFAAAAE25ld0xhbmROZXdFbGVtUG93ZXIAAAAAAAAAAAMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAfa2V5Q2hhckluaXRpYWxHZW5lcmF0ZWRTdXBwbGllcwUAAAAGY2hhcklkBQAAABhjdXJyZW50R2VuZXJhdGVkU3VwcGxpZXMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAXa2V5Q2hhckluaXRpYWxQeXJvU2hhcmUFAAAABmNoYXJJZAkAAZEAAAACBQAAABVuZXdMYW5kQ2hhckVsZW1TaGFyZXMAAAAAAAAAAAAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAXa2V5Q2hhckluaXRpYWxBcXVhU2hhcmUFAAAABmNoYXJJZAkAAZEAAAACBQAAABVuZXdMYW5kQ2hhckVsZW1TaGFyZXMAAAAAAAAAAAEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAYa2V5Q2hhckluaXRpYWxUZXJyYVNoYXJlBQAAAAZjaGFySWQJAAGRAAAAAgUAAAAVbmV3TGFuZENoYXJFbGVtU2hhcmVzAAAAAAAAAAACCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAF2tleUNoYXJJbml0aWFsQWVyb1NoYXJlBQAAAAZjaGFySWQJAAGRAAAAAgUAAAAVbmV3TGFuZENoYXJFbGVtU2hhcmVzAAAAAAAAAAADBQAAAANuaWwJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAABHdpdGgAAAACBQAAAB9rZXlDaGFySW5pdGlhbEdlbmVyYXRlZFN1cHBsaWVzBQAAAAZjaGFySWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAABHdpdGgAAAACBQAAABdrZXlDaGFySW5pdGlhbFB5cm9TaGFyZQUAAAAGY2hhcklkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAR3aXRoAAAAAgUAAAAXa2V5Q2hhckluaXRpYWxBcXVhU2hhcmUFAAAABmNoYXJJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAEd2l0aAAAAAIFAAAAGGtleUNoYXJJbml0aWFsVGVycmFTaGFyZQUAAAAGY2hhcklkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAR3aXRoAAAAAgUAAAAXa2V5Q2hhckluaXRpYWxBZXJvU2hhcmUFAAAABmNoYXJJZAUAAAADbmlsBAAAAA5leGl0aW5nQWN0aW9ucwMJAQAAAAIhPQAAAAIFAAAAC2N1cnJlbnRMYW5kAAAAAAAAAAAABAAAAA9zZW5kVG9rZW5zVG9BcHAJAAP8AAAABAUAAAAGZ292QXBwAgAAAA9zZW5kVG9rZW5zVG9BcHAJAARMAAAAAgkBAAAADmNhbGNDaGFySW5jb21lAAAABAUAAAAGY2hhcklkBQAAABBvbGRMYW5kRWxlbVBvd2VyBQAAABRjaGFyTmF0dXJhbEVsZW1Cb251cwUAAAAYY3VycmVudEdlbmVyYXRlZFN1cHBsaWVzCQAETAAAAAIICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMFAAAAA25pbAUAAAADbmlsAwkAAAAAAAACBQAAAA9zZW5kVG9rZW5zVG9BcHAFAAAAD3NlbmRUb2tlbnNUb0FwcAQAAAAPY2hhclRva2VuSW5jb21lBAAAAAckbWF0Y2gwBQAAAA9zZW5kVG9rZW5zVG9BcHADCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAAFaXNJbnQFAAAAByRtYXRjaDAFAAAABWlzSW50CQAAAgAAAAECAAAADEludm9rZSBpc3N1ZQQAAAASbmV3Q2hhclRvdGFsSW5jb21lCQAAZAAAAAIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkBAAAABHdpdGgAAAACBQAAABJrZXlDaGFyVG90YWxJbmNvbWUFAAAABmNoYXJJZAAAAAAAAAAAAAUAAAAPY2hhclRva2VuSW5jb21lBAAAABVuZXdBZGRyZXNzVG90YWxJbmNvbWUJAABkAAAAAgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQEAAAAEd2l0aAAAAAIFAAAAFWtleUFkZHJlc3NUb3RhbEluY29tZQUAAAAKY2FsbGVyQWRkcgAAAAAAAAAAAAUAAAAPY2hhclRva2VuSW5jb21lBAAAABNvbGRMYW5kTmV3RWxlbVBvd2VyCQEAAAAUY2FsY09sZExhbmRFbGVtUG93ZXIAAAACBQAAABBvbGRMYW5kRWxlbVBvd2VyBQAAABRjaGFyTmF0dXJhbEVsZW1Cb251cwkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAAD2NoYXJUb2tlbkluY29tZQkBAAAAEUBleHRyTmF0aXZlKDEwNTIpAAAAAgUAAAAGZ292QXBwBQAAAAprZXlUb2tlbklkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAEmtleUNoYXJUb3RhbEluY29tZQUAAAAGY2hhcklkBQAAABJuZXdDaGFyVG90YWxJbmNvbWUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAVa2V5QWRkcmVzc1RvdGFsSW5jb21lBQAAAApjYWxsZXJBZGRyBQAAABJuZXdDaGFyVG90YWxJbmNvbWUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAQa2V5TGFuZFB5cm9Qb3dlcgUAAAALY3VycmVudExhbmQJAAGRAAAAAgUAAAATb2xkTGFuZE5ld0VsZW1Qb3dlcgAAAAAAAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABBrZXlMYW5kQXF1YVBvd2VyBQAAAAtjdXJyZW50TGFuZAkAAZEAAAACBQAAABNvbGRMYW5kTmV3RWxlbVBvd2VyAAAAAAAAAAABCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAEWtleUxhbmRUZXJyYVBvd2VyBQAAAAtjdXJyZW50TGFuZAkAAZEAAAACBQAAABNvbGRMYW5kTmV3RWxlbVBvd2VyAAAAAAAAAAACCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAEGtleUxhbmRBZXJvUG93ZXIFAAAAC2N1cnJlbnRMYW5kCQABkQAAAAIFAAAAE29sZExhbmROZXdFbGVtUG93ZXIAAAAAAAAAAAMFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4FAAAAA25pbAkABE4AAAACCQAETgAAAAIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAASa2V5Q2hhckN1cnJlbnRMYW5kBQAAAAZjaGFySWQFAAAABmxhbmRJZAUAAAADbmlsBQAAAA5qb2luaW5nQWN0aW9ucwUAAAAOZXhpdGluZ0FjdGlvbnMJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXmmYHLt", "height": 2056949, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3LapG6R7tHyCvhzxeDJreDFqL3uefc2BH2XJNEQK39pa Next: C1bVv8dpSsPMXq821V5nWc7wYBEvFyFWnVwjYbpqP44L Diff:
Old | New | Differences | |
---|---|---|---|
32 | 32 | let govApp = addressFromStringValue("3MyxfwvbueUBynYHfQsutNXZNqNozGiMnsG") | |
33 | 33 | ||
34 | 34 | let keyEcosystemAddresses = "ecosystem_addresses" | |
35 | + | ||
36 | + | let keyTokenId = "token_id" | |
35 | 37 | ||
36 | 38 | let keyTotalLands = "total_lands" | |
37 | 39 | ||
134 | 136 | else [DeleteEntry(with(keyCharInitialGeneratedSupplies, charId)), DeleteEntry(with(keyCharInitialPyroShare, charId)), DeleteEntry(with(keyCharInitialAquaShare, charId)), DeleteEntry(with(keyCharInitialTerraShare, charId)), DeleteEntry(with(keyCharInitialAeroShare, charId))] | |
135 | 137 | let exitingActions = if ((currentLand != 0)) | |
136 | 138 | then { | |
137 | - | let | |
138 | - | if (( | |
139 | + | let sendTokensToApp = invoke(govApp, "sendTokensToApp", [calcCharIncome(charId, oldLandElemPower, charNaturalElemBonus, currentGeneratedSupplies), i.caller.bytes], nil) | |
140 | + | if ((sendTokensToApp == sendTokensToApp)) | |
139 | 141 | then { | |
140 | - | let charTokenIncome = match | |
142 | + | let charTokenIncome = match sendTokensToApp { | |
141 | 143 | case isInt: Int => | |
142 | 144 | isInt | |
143 | 145 | case _ => | |
146 | 148 | let newCharTotalIncome = (valueOrElse(getInteger(this, with(keyCharTotalIncome, charId)), 0) + charTokenIncome) | |
147 | 149 | let newAddressTotalIncome = (valueOrElse(getInteger(this, with(keyAddressTotalIncome, callerAddr)), 0) + charTokenIncome) | |
148 | 150 | 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])] | |
150 | 152 | } | |
151 | 153 | else throw("Strict value is not equal to itself.") | |
152 | 154 | } |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let separator = "_" | |
5 | 5 | ||
6 | 6 | let shareDecimals = 1000000000000000000 | |
7 | 7 | ||
8 | 8 | let keyCharCurrentLand = "char_current_land" | |
9 | 9 | ||
10 | 10 | let keyCharInitialGeneratedSupplies = "char_initial_generated_supplies" | |
11 | 11 | ||
12 | 12 | let keyLandPyroPower = "land_pyro_power" | |
13 | 13 | ||
14 | 14 | let keyLandAquaPower = "land_aqua_power" | |
15 | 15 | ||
16 | 16 | let keyLandTerraPower = "land_terra_power" | |
17 | 17 | ||
18 | 18 | let keyLandAeroPower = "land_aero_power" | |
19 | 19 | ||
20 | 20 | let keyCharInitialPyroShare = "char_initial_pyro_share" | |
21 | 21 | ||
22 | 22 | let keyCharInitialAquaShare = "char_initial_aqua_share" | |
23 | 23 | ||
24 | 24 | let keyCharInitialTerraShare = "char_initial_terra_share" | |
25 | 25 | ||
26 | 26 | let keyCharInitialAeroShare = "char_initial_aero_share" | |
27 | 27 | ||
28 | 28 | let keyCharTotalIncome = "char_total_income" | |
29 | 29 | ||
30 | 30 | let keyAddressTotalIncome = "address_total_income" | |
31 | 31 | ||
32 | 32 | let govApp = addressFromStringValue("3MyxfwvbueUBynYHfQsutNXZNqNozGiMnsG") | |
33 | 33 | ||
34 | 34 | let keyEcosystemAddresses = "ecosystem_addresses" | |
35 | + | ||
36 | + | let keyTokenId = "token_id" | |
35 | 37 | ||
36 | 38 | let keyTotalLands = "total_lands" | |
37 | 39 | ||
38 | 40 | let keyTokenEmissionRate = "token_emission_rate" | |
39 | 41 | ||
40 | 42 | let charsApp = addressFromStringValue("3NA3LRSigk6knLZ16uTzcdLNow2EQZtXTaJ") | |
41 | 43 | ||
42 | 44 | let keyOwner = "owner" | |
43 | 45 | ||
44 | 46 | let keyNaturalPyroBonus = "natural_pyro_bonus" | |
45 | 47 | ||
46 | 48 | let keyNaturalAquaBonus = "natural_aqua_bonus" | |
47 | 49 | ||
48 | 50 | let keyNaturalTerraBonus = "natural_terra_bonus" | |
49 | 51 | ||
50 | 52 | let keyNaturalAeroBonus = "natural_aero_bonus" | |
51 | 53 | ||
52 | 54 | func invokeChecks (callerAddr) = if ((isDataStorageUntouched(govApp) != false)) | |
53 | 55 | then throw("Governing app not ready") | |
54 | 56 | else { | |
55 | 57 | let ecosystemAddresses = getStringValue(govApp, keyEcosystemAddresses) | |
56 | 58 | if ((contains(ecosystemAddresses, toString(callerAddr)) != false)) | |
57 | 59 | then throw("Access denied") | |
58 | 60 | else true | |
59 | 61 | } | |
60 | 62 | ||
61 | 63 | ||
62 | 64 | func with (a,b) = { | |
63 | 65 | let c = match b { | |
64 | 66 | case isInt: Int => | |
65 | 67 | toString(isInt) | |
66 | 68 | case isStr: String => | |
67 | 69 | isStr | |
68 | 70 | case _ => | |
69 | 71 | throw("Matching issue in with function") | |
70 | 72 | } | |
71 | 73 | ((c + separator) + a) | |
72 | 74 | } | |
73 | 75 | ||
74 | 76 | ||
75 | 77 | func getCharNaturalElemBonus (charId) = [getIntegerValue(charsApp, with(keyNaturalPyroBonus, charId)), getIntegerValue(charsApp, with(keyNaturalAquaBonus, charId)), getIntegerValue(charsApp, with(keyNaturalTerraBonus, charId)), getIntegerValue(charsApp, with(keyNaturalAeroBonus, charId))] | |
76 | 78 | ||
77 | 79 | ||
78 | 80 | 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)] | |
79 | 81 | ||
80 | 82 | ||
81 | 83 | func calcNewLandElemPower (landId,charNaturalElemBonus) = { | |
82 | 84 | let newLandElemPower = getLandElemPower(landId) | |
83 | 85 | [(newLandElemPower[0] + charNaturalElemBonus[0]), (newLandElemPower[1] + charNaturalElemBonus[1]), (newLandElemPower[2] + charNaturalElemBonus[2]), (newLandElemPower[3] + charNaturalElemBonus[3])] | |
84 | 86 | } | |
85 | 87 | ||
86 | 88 | ||
87 | 89 | func calcOldLandElemPower (oldLandElemPower,charNaturalElemBonus) = [(oldLandElemPower[0] - charNaturalElemBonus[0]), (oldLandElemPower[1] - charNaturalElemBonus[1]), (oldLandElemPower[2] - charNaturalElemBonus[2]), (oldLandElemPower[3] - charNaturalElemBonus[3])] | |
88 | 90 | ||
89 | 91 | ||
90 | 92 | 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])] | |
91 | 93 | ||
92 | 94 | ||
93 | 95 | func calcCharIncome (charId,oldLandElemPower,charNaturalElemBonus,currentGeneratedSupplies) = { | |
94 | 96 | let oldLandCharCurrentElemShares = calcCharElemShares(oldLandElemPower, charNaturalElemBonus) | |
95 | 97 | 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)] | |
96 | 98 | let charEligibleSupplies = (((currentGeneratedSupplies - getIntegerValue(this, with(keyCharInitialGeneratedSupplies, charId))) / getIntegerValue(govApp, keyTotalLands)) / 4) | |
97 | 99 | (((fraction(charEligibleSupplies, oldLandCharAverageElemShares[0], shareDecimals) + fraction(charEligibleSupplies, oldLandCharAverageElemShares[1], shareDecimals)) + fraction(charEligibleSupplies, oldLandCharAverageElemShares[2], shareDecimals)) + fraction(charEligibleSupplies, oldLandCharAverageElemShares[3], shareDecimals)) | |
98 | 100 | } | |
99 | 101 | ||
100 | 102 | ||
101 | 103 | @Callable(i) | |
102 | 104 | func charMovingLand (charId,landId) = if ((invokeChecks(i.caller) != true)) | |
103 | 105 | then throw() | |
104 | 106 | else { | |
105 | 107 | let callerAddr = toBase58String(i.caller.bytes) | |
106 | 108 | if ((getStringValue(charsApp, with(keyOwner, charId)) != callerAddr)) | |
107 | 109 | then throw("Caller doesn't own this char") | |
108 | 110 | else if (if ((0 > landId)) | |
109 | 111 | then true | |
110 | 112 | else (landId > getIntegerValue(govApp, keyTotalLands))) | |
111 | 113 | then throw("Not a land") | |
112 | 114 | else { | |
113 | 115 | let currentLand = valueOrElse(getInteger(this, with(keyCharCurrentLand, charId)), 0) | |
114 | 116 | if ((currentLand == landId)) | |
115 | 117 | then throw("Char already on that land") | |
116 | 118 | else { | |
117 | 119 | let charNaturalElemBonus = getCharNaturalElemBonus(charId) | |
118 | 120 | let oldLandElemPower = getLandElemPower(currentLand) | |
119 | 121 | let currentGeneratedSuppliesResult = invoke(govApp, "getGeneratedSupplies", nil, nil) | |
120 | 122 | if ((currentGeneratedSuppliesResult == currentGeneratedSuppliesResult)) | |
121 | 123 | then { | |
122 | 124 | let currentGeneratedSupplies = match currentGeneratedSuppliesResult { | |
123 | 125 | case isInt: Int => | |
124 | 126 | isInt | |
125 | 127 | case _ => | |
126 | 128 | throw("Bad invoke result") | |
127 | 129 | } | |
128 | 130 | let joiningActions = if ((landId != 0)) | |
129 | 131 | then { | |
130 | 132 | let newLandNewElemPower = calcNewLandElemPower(landId, charNaturalElemBonus) | |
131 | 133 | let newLandCharElemShares = calcCharElemShares(charNaturalElemBonus, newLandNewElemPower) | |
132 | 134 | [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])] | |
133 | 135 | } | |
134 | 136 | else [DeleteEntry(with(keyCharInitialGeneratedSupplies, charId)), DeleteEntry(with(keyCharInitialPyroShare, charId)), DeleteEntry(with(keyCharInitialAquaShare, charId)), DeleteEntry(with(keyCharInitialTerraShare, charId)), DeleteEntry(with(keyCharInitialAeroShare, charId))] | |
135 | 137 | let exitingActions = if ((currentLand != 0)) | |
136 | 138 | then { | |
137 | - | let | |
138 | - | if (( | |
139 | + | let sendTokensToApp = invoke(govApp, "sendTokensToApp", [calcCharIncome(charId, oldLandElemPower, charNaturalElemBonus, currentGeneratedSupplies), i.caller.bytes], nil) | |
140 | + | if ((sendTokensToApp == sendTokensToApp)) | |
139 | 141 | then { | |
140 | - | let charTokenIncome = match | |
142 | + | let charTokenIncome = match sendTokensToApp { | |
141 | 143 | case isInt: Int => | |
142 | 144 | isInt | |
143 | 145 | case _ => | |
144 | 146 | throw("Invoke issue") | |
145 | 147 | } | |
146 | 148 | let newCharTotalIncome = (valueOrElse(getInteger(this, with(keyCharTotalIncome, charId)), 0) + charTokenIncome) | |
147 | 149 | let newAddressTotalIncome = (valueOrElse(getInteger(this, with(keyAddressTotalIncome, callerAddr)), 0) + charTokenIncome) | |
148 | 150 | 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])] | |
150 | 152 | } | |
151 | 153 | else throw("Strict value is not equal to itself.") | |
152 | 154 | } | |
153 | 155 | else nil | |
154 | 156 | (([IntegerEntry(with(keyCharCurrentLand, charId), landId)] ++ joiningActions) ++ exitingActions) | |
155 | 157 | } | |
156 | 158 | else throw("Strict value is not equal to itself.") | |
157 | 159 | } | |
158 | 160 | } | |
159 | 161 | } | |
160 | 162 | ||
161 | 163 | ||
162 | 164 | @Verifier(tx) | |
163 | 165 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
164 | 166 |
github/deemru/w8io/169f3d6 51.08 ms ◑