tx · CGgeRC3QnRyn8ysgid7midF28nHqKuFqALBS4MAE1AA3

3MxiJLrY6Qa5bSYxxSFHSG5bVV2n59x1MGn:  -0.01400000 Waves

2022.05.18 13:04 [2056951] smart account 3MxiJLrY6Qa5bSYxxSFHSG5bVV2n59x1MGn > SELF 0.00000000 Waves

{ "type": 13, "id": "CGgeRC3QnRyn8ysgid7midF28nHqKuFqALBS4MAE1AA3", "fee": 1400000, "feeAssetId": null, "timestamp": 1652868313056, "version": 2, "chainId": 84, "sender": "3MxiJLrY6Qa5bSYxxSFHSG5bVV2n59x1MGn", "senderPublicKey": "9M1hAsbWkVP73NKHvZezCkamwZfSdkejc3b8sejqT98D", "proofs": [ "3WVvyC6VNimyXWzWkcs3vFZAwkpzk3wPrcZmoBvQSdK3q14xmCvojuG2FaufXeuXXCaAkvzF1Du5eg39Lwyjb6sQ" ], "script": "base64:AAIFAAAAAAAAAAgIAhIECgIBAQAAACEAAAAACXNlcGFyYXRvcgIAAAABXwAAAAANc2hhcmVEZWNpbWFscwAN4Lazp2QAAAAAAAASa2V5Q2hhckN1cnJlbnRMYW5kAgAAABFjaGFyX2N1cnJlbnRfbGFuZAAAAAAfa2V5Q2hhckluaXRpYWxHZW5lcmF0ZWRTdXBwbGllcwIAAAAfY2hhcl9pbml0aWFsX2dlbmVyYXRlZF9zdXBwbGllcwAAAAAQa2V5TGFuZFB5cm9Qb3dlcgIAAAAPbGFuZF9weXJvX3Bvd2VyAAAAABBrZXlMYW5kQXF1YVBvd2VyAgAAAA9sYW5kX2FxdWFfcG93ZXIAAAAAEWtleUxhbmRUZXJyYVBvd2VyAgAAABBsYW5kX3RlcnJhX3Bvd2VyAAAAABBrZXlMYW5kQWVyb1Bvd2VyAgAAAA9sYW5kX2Flcm9fcG93ZXIAAAAAF2tleUNoYXJJbml0aWFsUHlyb1NoYXJlAgAAABdjaGFyX2luaXRpYWxfcHlyb19zaGFyZQAAAAAXa2V5Q2hhckluaXRpYWxBcXVhU2hhcmUCAAAAF2NoYXJfaW5pdGlhbF9hcXVhX3NoYXJlAAAAABhrZXlDaGFySW5pdGlhbFRlcnJhU2hhcmUCAAAAGGNoYXJfaW5pdGlhbF90ZXJyYV9zaGFyZQAAAAAXa2V5Q2hhckluaXRpYWxBZXJvU2hhcmUCAAAAF2NoYXJfaW5pdGlhbF9hZXJvX3NoYXJlAAAAABJrZXlDaGFyVG90YWxJbmNvbWUCAAAAEWNoYXJfdG90YWxfaW5jb21lAAAAABVrZXlBZGRyZXNzVG90YWxJbmNvbWUCAAAAFGFkZHJlc3NfdG90YWxfaW5jb21lAAAAAAZnb3ZBcHAJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAECAAAAIzNNeXhmd3ZidWVVQnluWUhmUXN1dE5YWk5xTm96R2lNbnNHAAAAABVrZXlFY29zeXN0ZW1BZGRyZXNzZXMCAAAAE2Vjb3N5c3RlbV9hZGRyZXNzZXMAAAAACmtleVRva2VuSWQCAAAACHRva2VuX2lkAAAAAA1rZXlUb3RhbExhbmRzAgAAAAt0b3RhbF9sYW5kcwAAAAAUa2V5VG9rZW5FbWlzc2lvblJhdGUCAAAAE3Rva2VuX2VtaXNzaW9uX3JhdGUAAAAACGNoYXJzQXBwCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzTkEzTFJTaWdrNmtuTFoxNnVUemNkTE5vdzJFUVp0WFRhSgAAAAAIa2V5T3duZXICAAAABW93bmVyAAAAABNrZXlOYXR1cmFsUHlyb0JvbnVzAgAAABJuYXR1cmFsX3B5cm9fYm9udXMAAAAAE2tleU5hdHVyYWxBcXVhQm9udXMCAAAAEm5hdHVyYWxfYXF1YV9ib251cwAAAAAUa2V5TmF0dXJhbFRlcnJhQm9udXMCAAAAE25hdHVyYWxfdGVycmFfYm9udXMAAAAAE2tleU5hdHVyYWxBZXJvQm9udXMCAAAAEm5hdHVyYWxfYWVyb19ib251cwEAAAAMaW52b2tlQ2hlY2tzAAAAAQAAAApjYWxsZXJBZGRyAwkBAAAAAiE9AAAAAgkABB4AAAABBQAAAAZnb3ZBcHAHCQAAAgAAAAECAAAAF0dvdmVybmluZyBhcHAgbm90IHJlYWR5BAAAABJlY29zeXN0ZW1BZGRyZXNzZXMJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABmdvdkFwcAUAAAAVa2V5RWNvc3lzdGVtQWRkcmVzc2VzAwkBAAAAAiE9AAAAAgkBAAAACGNvbnRhaW5zAAAAAgUAAAASZWNvc3lzdGVtQWRkcmVzc2VzCQAEJQAAAAEFAAAACmNhbGxlckFkZHIHCQAAAgAAAAECAAAADUFjY2VzcyBkZW5pZWQGAQAAAAR3aXRoAAAAAgAAAAFhAAAAAWIEAAAAAWMEAAAAByRtYXRjaDAFAAAAAWIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAAFaXNJbnQFAAAAByRtYXRjaDAJAAGkAAAAAQUAAAAFaXNJbnQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAAFaXNTdHIFAAAAByRtYXRjaDAFAAAABWlzU3RyCQAAAgAAAAECAAAAH01hdGNoaW5nIGlzc3VlIGluIHdpdGggZnVuY3Rpb24JAAEsAAAAAgkAASwAAAACBQAAAAFjBQAAAAlzZXBhcmF0b3IFAAAAAWEBAAAAF2dldENoYXJOYXR1cmFsRWxlbUJvbnVzAAAA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ck5hdHVyYWxFbGVtQm9udXMAAAAAAAAAAAMFAAAAA25pbAEAAAASY2FsY0NoYXJFbGVtU2hhcmVzAAAAAgAAABBjaGFyTmF0dXJhbEJvbnVzAAAADWxhbmRFbGVtUG93ZXIJAARMAAAAAgkAAGsAAAADBQAAAA1zaGFyZURlY2ltYWxzCQABkQAAAAIFAAAAEGNoYXJOYXR1cmFsQm9udXMAAAAAAAAAAAAJAAGRAAAAAgUAAAANbGFuZEVsZW1Qb3dlcgAAAAAAAAAAAAkABEwAAAACCQAAawAAAAMFAAAADXNoYXJlRGVjaW1hbHMJAAGRAAAAAgUAAAAQY2hhck5hdHVyYWxCb251cwAAAAAAAAAAAQkAAZEAAAACBQAAAA1sYW5kRWxlbVBvd2VyAAAAAAAAAAABCQAETAAAAAIJAABrAAAAAwUAAAANc2hhcmVEZWNpbWFscwkAAZEAAAACBQAAABBjaGFyTmF0dXJhbEJvbnVzAAAAAAAAAAACCQABkQAAAAIFAAAADWxhbmRFbGVtUG93ZXIAAAAAAAAAAAIJAARMAAAAAgkAAGsAAAADBQAAAA1zaGFyZURlY2ltYWxzCQABkQAAAAIFAAAAEGNoYXJOYXR1cmFsQm9udXMAAAAAAAAAAAMJAAGRAAAAAgUAAAANbGFuZEVsZW1Qb3dlcgAAAAAAAAAAAwUAAAADbmlsAQAAAA5jYWxjQ2hhckluY29tZQAAAAQAAAAGY2hhcklkAAAAEG9sZExhbmRFbGVtUG93ZXIAAAAUY2hhck5hdHVyYWxFbGVtQm9udXMAAAAYY3VycmVudEdlbmVyYXRlZFN1cHBsaWVzBAAAABxvbGRMYW5kQ2hhckN1cnJlbnRFbGVtU2hhcmVzCQEAAAASY2FsY0NoYXJFbGVtU2hhcmVzAAAAAgUAAAAQb2xkTGFuZEVsZW1Qb3dlcgUAAAAUY2hhck5hdHVyYWxFbGVtQm9udXMEAAAAHG9sZExhbmRDaGFyQXZlcmFnZUVsZW1TaGFyZXMJAARMAAAAAgkAAGkAAAACCQAAZAAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAQAAAAR3aXRoAAAAAgUAAAAXa2V5Q2hhckluaXRpYWxQeXJvU2hhcmUFAAAABmNoYXJJZAkAAZEAAAAC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AAMJAAAAAAAAAgUAAAALY3VycmVudExhbmQFAAAABmxhbmRJZAkAAAIAAAABAgAAABlDaGFyIGFscmVhZHkgb24gdGhhdCBsYW5kBAAAABRjaGFyTmF0dXJhbEVsZW1Cb251cwkBAAAAF2dldENoYXJOYXR1cmFsRWxlbUJvbnVzAAAAAQUAAAAGY2hhcklkBAAAABBvbGRMYW5kRWxlbVBvd2VyCQEAAAAQZ2V0TGFuZEVsZW1Qb3dlcgAAAAEFAAAAC2N1cnJlbnRMYW5kBAAAAB5jdXJyZW50R2VuZXJhdGVkU3VwcGxpZXNSZXN1bHQJAAP8AAAABAUAAAAGZ292QXBwAgAAABRnZXRHZW5lcmF0ZWRTdXBwbGllcwUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAAHmN1cnJlbnRHZW5lcmF0ZWRTdXBwbGllc1Jlc3VsdAUAAAAeY3VycmVudEdlbmVyYXRlZFN1cHBsaWVzUmVzdWx0BAAAABhjdXJyZW50R2VuZXJhdGVkU3VwcGxpZXMEAAAAByRtYXRjaDAFAAAAHmN1cnJlbnRHZW5lcmF0ZWRTdXBwbGllc1Jlc3VsdAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAVpc0ludAUAAAAHJG1hdGNoMAUAAAAFaXNJbnQJAAACAAAAAQIAAAARQmFkIGludm9rZSByZXN1bHQEAAAADmpvaW5pbmdBY3Rpb25zAwkBAAAAAiE9AAAAAgUAAAAGbGFuZElkAAAAAAAAAAAABAAAABNuZXdMYW5kTmV3RWxlbVBvd2VyCQEAAAAUY2FsY05ld0xhbmRFbGVtUG93ZXIAAAACBQAAAAZsYW5kSWQFAAAAFGNoYXJOYXR1cmFsRWxlbUJvbnVzBAAAABVuZXdMYW5kQ2hhckVsZW1TaGFyZXMJAQAAABJjYWxjQ2hhckVsZW1TaGFyZXMAAAACBQAAABRjaGFyTmF0dXJhbEVsZW1Cb251cwUAAAATbmV3TGFuZE5ld0VsZW1Qb3dlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABBrZXlMYW5kUHlyb1Bvd2VyBQAAAAZsYW5kSWQJAAGRAAAAAgUAAAATbmV3TGFuZE5ld0VsZW1Qb3dlcgAAAAAAAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABBrZXlMYW5kQXF1YVBvd2VyBQAAAAZsYW5kSWQJAAGRAAAAAgUAAAATbmV3TGFuZE5ld0VsZW1Qb3dlcgAAAAAAAAAAAQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABFrZXlMYW5kVGVycmFQb3dlcgUAAAAGbGFuZElkCQABkQAAAAIFAAAAE25ld0xhbmROZXdFbGVtUG93ZXIAAAAAAAAAAAIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAQa2V5TGFuZEFlcm9Qb3dlcgUAAAAGbGFuZElkCQABkQAAAAIFAAAAE25ld0xhbmROZXdFbGVtUG93ZXIAAAAAAAAAAAMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAfa2V5Q2hhckluaXRpYWxHZW5lcmF0ZWRTdXBwbGllcwUAAAAGY2hhcklkBQAAABhjdXJyZW50R2VuZXJhdGVkU3VwcGxpZXMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAXa2V5Q2hhckluaXRpYWxQeXJvU2hhcmUFAAAABmNoYXJJZAkAAZEAAAACBQAAABVuZXdMYW5kQ2hhckVsZW1TaGFyZXMAAAAAAAAAAAAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAXa2V5Q2hhckluaXRpYWxBcXVhU2hhcmUFAAAABmNoYXJJZAkAAZEAAAACBQAAABVuZXdMYW5kQ2hhckVsZW1TaGFyZXMAAAAAAAAAAAEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAYa2V5Q2hhckluaXRpYWxUZXJyYVNoYXJlBQAAAAZjaGFySWQJAAGRAAAAAgUAAAAVbmV3TGFuZENoYXJFbGVtU2hhcmVzAAAAAAAAAAACCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAF2tleUNoYXJJbml0aWFsQWVyb1NoYXJlBQAAAAZjaGFySWQJAAGRAAAAAgUAAAAVbmV3TGFuZENoYXJFbGVtU2hhcmVzAAAAAAAAAAADBQAAAANuaWwJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAABHdpdGgAAAACBQAAAB9rZXlDaGFySW5pdGlhbEdlbmVyYXRlZFN1cHBsaWVzBQAAAAZjaGFySWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAABHdpdGgAAAACBQAAABdrZXlDaGFySW5pdGlhbFB5cm9TaGFyZQUAAAAGY2hhcklkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAR3aXRoAAAAAgUAAAAXa2V5Q2hhckluaXRpYWxBcXVhU2hhcmUFAAAABmNoYXJJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAEd2l0aAAAAAIFAAAAGGtleUNoYXJJbml0aWFsVGVycmFTaGFyZQUAAAAGY2hhcklkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAR3aXRoAAAAAgUAAAAXa2V5Q2hhckluaXRpYWxBZXJvU2hhcmUFAAAABmNoYXJJZAUAAAADbmlsBAAAAA5leGl0aW5nQWN0aW9ucwMJAQAAAAIhPQAAAAIFAAAAC2N1cnJlbnRMYW5kAAAAAAAAAAAABAAAAA9zZW5kVG9rZW5zVG9BcHAJAAP8AAAABAUAAAAGZ292QXBwAgAAAA9zZW5kVG9rZW5zdG9BcHAJAARMAAAAAgkBAAAADmNhbGNDaGFySW5jb21lAAAABAUAAAAGY2hhcklkBQAAABBvbGRMYW5kRWxlbVBvd2VyBQAAABRjaGFyTmF0dXJhbEVsZW1Cb251cwUAAAAYY3VycmVudEdlbmVyYXRlZFN1cHBsaWVzBQAAAANuaWwFAAAAA25pbAMJAAAAAAAAAgUAAAAPc2VuZFRva2Vuc1RvQXBwBQAAAA9zZW5kVG9rZW5zVG9BcHAEAAAAD2NoYXJUb2tlbkluY29tZQQAAAAHJG1hdGNoMAUAAAAPc2VuZFRva2Vuc1RvQXBwAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAABWlzSW50BQAAAAckbWF0Y2gwBQAAAAVpc0ludAkAAAIAAAABAgAAAAxJbnZva2UgaXNzdWUEAAAAEm5ld0NoYXJUb3RhbEluY29tZQkAAGQAAAACCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAQAAAAR3aXRoAAAAAgUAAAASa2V5Q2hhclRvdGFsSW5jb21lBQAAAAZjaGFySWQAAAAAAAAAAAAFAAAAD2NoYXJUb2tlbkluY29tZQQAAAAVbmV3QWRkcmVzc1RvdGFsSW5jb21lCQAAZAAAAAIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkBAAAABHdpdGgAAAACBQAAABVrZXlBZGRyZXNzVG90YWxJbmNvbWUFAAAACmNhbGxlckFkZHIAAAAAAAAAAAAFAAAAD2NoYXJUb2tlbkluY29tZQQAAAATb2xkTGFuZE5ld0VsZW1Qb3dlcgkBAAAAFGNhbGNPbGRMYW5kRWxlbVBvd2VyAAAAAgUAAAAQb2xkTGFuZEVsZW1Qb3dlcgUAAAAUY2hhck5hdHVyYWxFbGVtQm9udXMJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAA9jaGFyVG9rZW5JbmNvbWUJAQAAABFAZXh0ck5hdGl2ZSgxMDUyKQAAAAIFAAAABmdvdkFwcAUAAAAKa2V5VG9rZW5JZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABJrZXlDaGFyVG90YWxJbmNvbWUFAAAABmNoYXJJZAUAAAASbmV3Q2hhclRvdGFsSW5jb21lCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAFWtleUFkZHJlc3NUb3RhbEluY29tZQUAAAAKY2FsbGVyQWRkcgUAAAASbmV3Q2hhclRvdGFsSW5jb21lCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAEGtleUxhbmRQeXJvUG93ZXIFAAAAC2N1cnJlbnRMYW5kCQABkQAAAAIFAAAAE29sZExhbmROZXdFbGVtUG93ZXIAAAAAAAAAAAAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAQa2V5TGFuZEFxdWFQb3dlcgUAAAALY3VycmVudExhbmQJAAGRAAAAAgUAAAATb2xkTGFuZE5ld0VsZW1Qb3dlcgAAAAAAAAAAAQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABFrZXlMYW5kVGVycmFQb3dlcgUAAAALY3VycmVudExhbmQJAAGRAAAAAgUAAAATb2xkTGFuZE5ld0VsZW1Qb3dlcgAAAAAAAAAAAgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABBrZXlMYW5kQWVyb1Bvd2VyBQAAAAtjdXJyZW50TGFuZAkAAZEAAAACBQAAABNvbGRMYW5kTmV3RWxlbVBvd2VyAAAAAAAAAAADBQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBQAAAANuaWwJAAROAAAAAgkABE4AAAACCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAEmtleUNoYXJDdXJyZW50TGFuZAUAAAAGY2hhcklkBQAAAAZsYW5kSWQFAAAAA25pbAUAAAAOam9pbmluZ0FjdGlvbnMFAAAADmV4aXRpbmdBY3Rpb25zCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5fFnpvQ==", "height": 2056951, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: C1bVv8dpSsPMXq821V5nWc7wYBEvFyFWnVwjYbpqP44L Next: 3L62EhKLe8yFSHSsDroBWDUuSbXv9HWGYuwy3GvRDtED Diff:
OldNewDifferences
136136 else [DeleteEntry(with(keyCharInitialGeneratedSupplies, charId)), DeleteEntry(with(keyCharInitialPyroShare, charId)), DeleteEntry(with(keyCharInitialAquaShare, charId)), DeleteEntry(with(keyCharInitialTerraShare, charId)), DeleteEntry(with(keyCharInitialAeroShare, charId))]
137137 let exitingActions = if ((currentLand != 0))
138138 then {
139- let sendTokensToApp = invoke(govApp, "sendTokenstoApp", [calcCharIncome(charId, oldLandElemPower, charNaturalElemBonus, currentGeneratedSupplies), i.caller.bytes], nil)
139+ let sendTokensToApp = invoke(govApp, "sendTokenstoApp", [calcCharIncome(charId, oldLandElemPower, charNaturalElemBonus, currentGeneratedSupplies)], nil)
140140 if ((sendTokensToApp == sendTokensToApp))
141141 then {
142142 let charTokenIncome = match sendTokensToApp {
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"
3535
3636 let keyTokenId = "token_id"
3737
3838 let keyTotalLands = "total_lands"
3939
4040 let keyTokenEmissionRate = "token_emission_rate"
4141
4242 let charsApp = addressFromStringValue("3NA3LRSigk6knLZ16uTzcdLNow2EQZtXTaJ")
4343
4444 let keyOwner = "owner"
4545
4646 let keyNaturalPyroBonus = "natural_pyro_bonus"
4747
4848 let keyNaturalAquaBonus = "natural_aqua_bonus"
4949
5050 let keyNaturalTerraBonus = "natural_terra_bonus"
5151
5252 let keyNaturalAeroBonus = "natural_aero_bonus"
5353
5454 func invokeChecks (callerAddr) = if ((isDataStorageUntouched(govApp) != false))
5555 then throw("Governing app not ready")
5656 else {
5757 let ecosystemAddresses = getStringValue(govApp, keyEcosystemAddresses)
5858 if ((contains(ecosystemAddresses, toString(callerAddr)) != false))
5959 then throw("Access denied")
6060 else true
6161 }
6262
6363
6464 func with (a,b) = {
6565 let c = match b {
6666 case isInt: Int =>
6767 toString(isInt)
6868 case isStr: String =>
6969 isStr
7070 case _ =>
7171 throw("Matching issue in with function")
7272 }
7373 ((c + separator) + a)
7474 }
7575
7676
7777 func getCharNaturalElemBonus (charId) = [getIntegerValue(charsApp, with(keyNaturalPyroBonus, charId)), getIntegerValue(charsApp, with(keyNaturalAquaBonus, charId)), getIntegerValue(charsApp, with(keyNaturalTerraBonus, charId)), getIntegerValue(charsApp, with(keyNaturalAeroBonus, charId))]
7878
7979
8080 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)]
8181
8282
8383 func calcNewLandElemPower (landId,charNaturalElemBonus) = {
8484 let newLandElemPower = getLandElemPower(landId)
8585 [(newLandElemPower[0] + charNaturalElemBonus[0]), (newLandElemPower[1] + charNaturalElemBonus[1]), (newLandElemPower[2] + charNaturalElemBonus[2]), (newLandElemPower[3] + charNaturalElemBonus[3])]
8686 }
8787
8888
8989 func calcOldLandElemPower (oldLandElemPower,charNaturalElemBonus) = [(oldLandElemPower[0] - charNaturalElemBonus[0]), (oldLandElemPower[1] - charNaturalElemBonus[1]), (oldLandElemPower[2] - charNaturalElemBonus[2]), (oldLandElemPower[3] - charNaturalElemBonus[3])]
9090
9191
9292 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])]
9393
9494
9595 func calcCharIncome (charId,oldLandElemPower,charNaturalElemBonus,currentGeneratedSupplies) = {
9696 let oldLandCharCurrentElemShares = calcCharElemShares(oldLandElemPower, charNaturalElemBonus)
9797 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)]
9898 let charEligibleSupplies = (((currentGeneratedSupplies - getIntegerValue(this, with(keyCharInitialGeneratedSupplies, charId))) / getIntegerValue(govApp, keyTotalLands)) / 4)
9999 (((fraction(charEligibleSupplies, oldLandCharAverageElemShares[0], shareDecimals) + fraction(charEligibleSupplies, oldLandCharAverageElemShares[1], shareDecimals)) + fraction(charEligibleSupplies, oldLandCharAverageElemShares[2], shareDecimals)) + fraction(charEligibleSupplies, oldLandCharAverageElemShares[3], shareDecimals))
100100 }
101101
102102
103103 @Callable(i)
104104 func charMovingLand (charId,landId) = if ((invokeChecks(i.caller) != true))
105105 then throw()
106106 else {
107107 let callerAddr = toBase58String(i.caller.bytes)
108108 if ((getStringValue(charsApp, with(keyOwner, charId)) != callerAddr))
109109 then throw("Caller doesn't own this char")
110110 else if (if ((0 > landId))
111111 then true
112112 else (landId > getIntegerValue(govApp, keyTotalLands)))
113113 then throw("Not a land")
114114 else {
115115 let currentLand = valueOrElse(getInteger(this, with(keyCharCurrentLand, charId)), 0)
116116 if ((currentLand == landId))
117117 then throw("Char already on that land")
118118 else {
119119 let charNaturalElemBonus = getCharNaturalElemBonus(charId)
120120 let oldLandElemPower = getLandElemPower(currentLand)
121121 let currentGeneratedSuppliesResult = invoke(govApp, "getGeneratedSupplies", nil, nil)
122122 if ((currentGeneratedSuppliesResult == currentGeneratedSuppliesResult))
123123 then {
124124 let currentGeneratedSupplies = match currentGeneratedSuppliesResult {
125125 case isInt: Int =>
126126 isInt
127127 case _ =>
128128 throw("Bad invoke result")
129129 }
130130 let joiningActions = if ((landId != 0))
131131 then {
132132 let newLandNewElemPower = calcNewLandElemPower(landId, charNaturalElemBonus)
133133 let newLandCharElemShares = calcCharElemShares(charNaturalElemBonus, newLandNewElemPower)
134134 [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])]
135135 }
136136 else [DeleteEntry(with(keyCharInitialGeneratedSupplies, charId)), DeleteEntry(with(keyCharInitialPyroShare, charId)), DeleteEntry(with(keyCharInitialAquaShare, charId)), DeleteEntry(with(keyCharInitialTerraShare, charId)), DeleteEntry(with(keyCharInitialAeroShare, charId))]
137137 let exitingActions = if ((currentLand != 0))
138138 then {
139- let sendTokensToApp = invoke(govApp, "sendTokenstoApp", [calcCharIncome(charId, oldLandElemPower, charNaturalElemBonus, currentGeneratedSupplies), i.caller.bytes], nil)
139+ let sendTokensToApp = invoke(govApp, "sendTokenstoApp", [calcCharIncome(charId, oldLandElemPower, charNaturalElemBonus, currentGeneratedSupplies)], nil)
140140 if ((sendTokensToApp == sendTokensToApp))
141141 then {
142142 let charTokenIncome = match sendTokensToApp {
143143 case isInt: Int =>
144144 isInt
145145 case _ =>
146146 throw("Invoke issue")
147147 }
148148 let newCharTotalIncome = (valueOrElse(getInteger(this, with(keyCharTotalIncome, charId)), 0) + charTokenIncome)
149149 let newAddressTotalIncome = (valueOrElse(getInteger(this, with(keyAddressTotalIncome, callerAddr)), 0) + charTokenIncome)
150150 let oldLandNewElemPower = calcOldLandElemPower(oldLandElemPower, charNaturalElemBonus)
151151 [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])]
152152 }
153153 else throw("Strict value is not equal to itself.")
154154 }
155155 else nil
156156 (([IntegerEntry(with(keyCharCurrentLand, charId), landId)] ++ joiningActions) ++ exitingActions)
157157 }
158158 else throw("Strict value is not equal to itself.")
159159 }
160160 }
161161 }
162162
163163
164164 @Verifier(tx)
165165 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
166166

github/deemru/w8io/873ac7e 
55.35 ms