tx · 3L62EhKLe8yFSHSsDroBWDUuSbXv9HWGYuwy3GvRDtED

3MxiJLrY6Qa5bSYxxSFHSG5bVV2n59x1MGn:  -0.01400000 Waves

2022.05.19 14:51 [2058515] smart account 3MxiJLrY6Qa5bSYxxSFHSG5bVV2n59x1MGn > SELF 0.00000000 Waves

{ "type": 13, "id": "3L62EhKLe8yFSHSsDroBWDUuSbXv9HWGYuwy3GvRDtED", "fee": 1400000, "feeAssetId": null, "timestamp": 1652961109142, "version": 2, "chainId": 84, "sender": "3MxiJLrY6Qa5bSYxxSFHSG5bVV2n59x1MGn", "senderPublicKey": "9M1hAsbWkVP73NKHvZezCkamwZfSdkejc3b8sejqT98D", "proofs": [ "4rCXs8jizK2f8naBbfeLsLXo6eo7UUPNq9jNaJfLUq7MTfqUL38dkaf1oXAAoCuyNw4JvXBK1C5DaRAM1K9dYs78" ], "script": "base64:AAIFAAAAAAAAAAgIAhIECgIBAQAAACIAAAAACXNlcGFyYXRvcgIAAAABXwAAAAANc2hhcmVEZWNpbWFscwAN4Lazp2QAAAAAAAASa2V5Q2hhckN1cnJlbnRMYW5kAgAAABFjaGFyX2N1cnJlbnRfbGFuZAAAAAAfa2V5Q2hhckluaXRpYWxHZW5lcmF0ZWRTdXBwbGllcwIAAAAfY2hhcl9pbml0aWFsX2dlbmVyYXRlZF9zdXBwbGllcwAAAAAQa2V5TGFuZFB5cm9Qb3dlcgIAAAAPbGFuZF9weXJvX3Bvd2VyAAAAABBrZXlMYW5kQXF1YVBvd2VyAgAAAA9sYW5kX2FxdWFfcG93ZXIAAAAAEWtleUxhbmRUZXJyYVBvd2VyAgAAABBsYW5kX3RlcnJhX3Bvd2VyAAAAABBrZXlMYW5kQWVyb1Bvd2VyAgAAAA9sYW5kX2Flcm9fcG93ZXIAAAAAF2tleUNoYXJJbml0aWFsUHlyb1NoYXJlAgAAABdjaGFyX2luaXRpYWxfcHlyb19zaGFyZQAAAAAXa2V5Q2hhckluaXRpYWxBcXVhU2hhcmUCAAAAF2NoYXJfaW5pdGlhbF9hcXVhX3NoYXJlAAAAABhrZXlDaGFySW5pdGlhbFRlcnJhU2hhcmUCAAAAGGNoYXJfaW5pdGlhbF90ZXJyYV9zaGFyZQAAAAAXa2V5Q2hhckluaXRpYWxBZXJvU2hhcmUCAAAAF2NoYXJfaW5pdGlhbF9hZXJvX3NoYXJlAAAAABJrZXlDaGFyVG90YWxJbmNvbWUCAAAAEWNoYXJfdG90YWxfaW5jb21lAAAAABVrZXlBZGRyZXNzVG90YWxJbmNvbWUCAAAAFGFkZHJlc3NfdG90YWxfaW5jb21lAAAAAAZnb3ZBcHAJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAECAAAAIzNNeXhmd3ZidWVVQnluWUhmUXN1dE5YWk5xTm96R2lNbnNHAAAAABVrZXlFY29zeXN0ZW1BZGRyZXNzZXMCAAAAE2Vjb3N5c3RlbV9hZGRyZXNzZXMAAAAACmtleVRva2VuSWQCAAAACHRva2VuX2lkAAAAAA1rZXlUb3RhbExhbmRzAgAAAAt0b3RhbF9sYW5kcwAAAAAUa2V5VG9rZW5FbWlzc2lvblJhdGUCAAAAE3Rva2VuX2VtaXNzaW9uX3JhdGUAAAAACGNoYXJzQXBwCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzTkEzTFJTaWdrNmtuTFoxNnVUemNkTE5vdzJFUVp0WFRhSgAAAAAIa2V5T3duZXICAAAABW93bmVyAAAAABNrZXlOYXR1cmFsUHlyb0JvbnVzAgAAABJuYXR1cmFsX3B5cm9fYm9udXMAAAAAE2tleU5hdHVyYWxBcXVhQm9udXMCAAAAEm5hdHVyYWxfYXF1YV9ib251cwAAAAAUa2V5TmF0dXJhbFRlcnJhQm9udXMCAAAAE25hdHVyYWxfdGVycmFfYm9udXMAAAAAE2tleU5hdHVyYWxBZXJvQm9udXMCAAAAEm5hdHVyYWxfYWVyb19ib251cwAAAAAKYmF0dGxlc0FwcAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQIAAAAjM011SDlOZ3BvR2FTUXVmRVFMUFJpa1hOUzlQWGhraGNMenABAAAADGludm9rZUNoZWNrcwAAAAEAAAAKY2FsbGVyQWRkcgMJAQAAAAIhPQAAAAIJAAQeAAAAAQUAAAAGZ292QXBwBwkAAAIAAAABAgAAABdHb3Zlcm5pbmcgYXBwIG5vdCByZWFkeQQAAAASZWNvc3lzdGVtQWRkcmVzc2VzCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAZnb3ZBcHAFAAAAFWtleUVjb3N5c3RlbUFkZHJlc3NlcwMJAQAAAAIhPQAAAAIJAQAAAAhjb250YWlucwAAAAIFAAAAEmVjb3N5c3RlbUFkZHJlc3NlcwkABCUAAAABBQAAAApjYWxsZXJBZGRyBwkAAAIAAAABAgAAAA1BY2Nlc3MgZGVuaWVkBgEAAAAEd2l0aAAAAAIAAAABYQAAAAFiBAAAAAFjBAAAAAckbWF0Y2gwBQAAAAFiAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAABWlzSW50BQAAAAckbWF0Y2gwCQABpAAAAAEFAAAABWlzSW50AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAABWlzU3RyBQAAAAckbWF0Y2gwBQAAAAVpc1N0cgkAAAIAAAABAgAAAB9NYXRjaGluZyBpc3N1ZSBpbiB3aXRo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ckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAQAAAAR3aXRoAAAAAgUAAAASa2V5Q2hhckN1cnJlbnRMYW5kBQAAAAZjaGFySWQAAAAAAAAAAAADCQAAAAAAAAIFAAAAC2N1cnJlbnRMYW5kBQAAAAZsYW5kSWQJAAACAAAAAQIAAAAZQ2hhciBhbHJlYWR5IG9uIHRoYXQgbGFuZAQAAAAUY2hhck5hdHVyYWxFbGVtQm9udXMJAQAAABdnZXRDaGFyTmF0dXJhbEVsZW1Cb251cwAAAAEFAAAABmNoYXJJZAQAAAAQb2xkTGFuZEVsZW1Qb3dlcgkBAAAAEGdldExhbmRFbGVtUG93ZXIAAAABBQAAAAtjdXJyZW50TGFuZAQAAAAeY3VycmVudEdlbmVyYXRlZFN1cHBsaWVzUmVzdWx0CQAD/AAAAAQFAAAABmdvdkFwcAIAAAAUZ2V0R2VuZXJhdGVkU3VwcGxpZXMFAAAAA25pbAUAAAADbmlsAwkAAAAAAAACBQAAAB5jdXJyZW50R2VuZXJhdGVkU3VwcGxpZXNSZXN1bHQFAAAAHmN1cnJlbnRHZW5lcmF0ZWRTdXBwbGllc1Jlc3VsdAQAAAAYY3VycmVudEdlbmVyYXRlZFN1cHBsaWVzBAAAAAckbWF0Y2gwBQAAAB5jdXJyZW50R2VuZXJhdGVkU3VwcGxpZXNSZXN1bHQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAAFaXNJbnQFAAAAByRtYXRjaDAFAAAABWlzSW50CQAAAgAAAAECAAAAEUJhZCBpbnZva2UgcmVzdWx0BAAAAA5qb2luaW5nQWN0aW9ucwMJAQAAAAIhPQAAAAIFAAAABmxhbmRJZAAAAAAAAAAAAAQAAAATbmV3TGFuZE5ld0VsZW1Qb3dlcgkBAAAAFGNhbGNOZXdMYW5kRWxlbVBvd2VyAAAAAgUAAAAGbGFuZElkBQAAABRjaGFyTmF0dXJhbEVsZW1Cb251cwQAAAAVbmV3TGFuZENoYXJFbGVtU2hhcmVzCQEAAAASY2FsY0NoYXJFbGVtU2hhcmVzAAAAAgUAAAAUY2hhck5hdHVyYWxFbGVtQm9udXMFAAAAE25ld0xhbmROZXdFbGVtUG93ZXIEAAAAFGNoYXJSZXN0UGVyaW9kVXBkYXRlCQAD/AAAAAQFAAAACmJhdHRsZXNBcHACAAAABmJhdHRsZQkABEwAAAACBQAAAAZjaGFySWQFAAAAA25pbAUAAAADbmlsAwkAAAAAAAACBQAAABRjaGFyUmVzdFBlcmlvZFVwZGF0ZQUAAAAUY2hhclJlc3RQZXJpb2RVcGRhdGUEAAAADmNoYXJSZXN0UGVyaW9kBAAAAAckbWF0Y2gwBQAAABRjaGFyUmVzdFBlcmlvZFVwZGF0ZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAVpc0ludAUAAAAHJG1hdGNoMAUAAAAFaXNJbnQJAAACAAAAAQIAAAAbY2hhclJlc3RQZXJpb2RVcGRhdGUgZmFpbGVkAwkBAAAAAiE9AAAAAgUAAAAOY2hhclJlc3RQZXJpb2QFAAAABmhlaWdodAkAAAIAAAABAgAAABBVbmV4cGVjdGVkIGVycm9yCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAEGtleUxhbmRQeXJvUG93ZXIFAAAABmxhbmRJZAkAAZEAAAACBQAAABNuZXdMYW5kTmV3RWxlbVBvd2VyAAAAAAAAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAEGtleUxhbmRBcXVhUG93ZXIFAAAABmxhbmRJZAkAAZEAAAACBQAAABNuZXdMYW5kTmV3RWxlbVBvd2VyAAAAAAAAAAABCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAEWtleUxhbmRUZXJyYVBvd2VyBQAAAAZsYW5kSWQJAAGRAAAAAgUAAAATbmV3TGFuZE5ld0VsZW1Qb3dlcgAAAAAAAAAAAgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABBrZXlMYW5kQWVyb1Bvd2VyBQAAAAZsYW5kSWQJAAGRAAAAAgUAAAATbmV3TGFuZE5ld0VsZW1Qb3dlcgAAAAAAAAAAAwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAAB9rZXlDaGFySW5pdGlhbEdlbmVyYXRlZFN1cHBsaWVzBQAAAAZjaGFySWQFAAAAGGN1cnJlbnRHZW5lcmF0ZWRTdXBwbGllcwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABdrZXlDaGFySW5pdGlhbFB5cm9TaGFyZQUAAAAGY2hhcklkCQABkQAAAAIFAAAAFW5ld0xhbmRDaGFyRWxlbVNoYXJlcwAAAAAAAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABdrZXlDaGFySW5pdGlhbEFxdWFTaGFyZQUAAAAGY2hhcklkCQABkQAAAAIFAAAAFW5ld0xhbmRDaGFyRWxlbVNoYXJlcwAAAAAAAAAAAQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABhrZXlDaGFySW5pdGlhbFRlcnJhU2hhcmUFAAAABmNoYXJJZAkAAZEAAAACBQAAABVuZXdMYW5kQ2hhckVsZW1TaGFyZXMAAAAAAAAAAAIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAXa2V5Q2hhckluaXRpYWxBZXJvU2hhcmUFAAAABmNoYXJJZAkAAZEAAAACBQAAABVuZXdMYW5kQ2hhckVsZW1TaGFyZXMAAAAAAAAAAAMFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAABHdpdGgAAAACBQAAAB9rZXlDaGFySW5pdGlhbEdlbmVyYXRlZFN1cHBsaWVzBQAAAAZjaGFySWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAABHdpdGgAAAACBQAAABdrZXlDaGFySW5pdGlhbFB5cm9TaGFyZQUAAAAGY2hhcklkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAR3aXRoAAAAAgUAAAAXa2V5Q2hhckluaXRpYWxBcXVhU2hhcmUFAAAABmNoYXJJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAEd2l0aAAAAAIFAAAAGGtleUNoYXJJbml0aWFsVGVycmFTaGFyZQUAAAAGY2hhcklkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAR3aXRoAAAAAgUAAAAXa2V5Q2hhckluaXRpYWxBZXJvU2hhcmUFAAAABmNoYXJJZAUAAAADbmlsBAAAAA5leGl0aW5nQWN0aW9ucwMJAQAAAAIhPQAAAAIFAAAAC2N1cnJlbnRMYW5kAAAAAAAAAAAABAAAAA9zZW5kVG9rZW5zVG9BcHAJAAP8AAAABAUAAAAGZ292QXBwAgAAAA9zZW5kVG9rZW5zdG9BcHAJAARMAAAAAgkBAAAADmNhbGNDaGFySW5jb21lAAAABAUAAAAGY2hhcklkBQAAABBvbGRMYW5kRWxlbVBvd2VyBQAAABRjaGFyTmF0dXJhbEVsZW1Cb251cwUAAAAYY3VycmVudEdlbmVyYXRlZFN1cHBsaWVzBQAAAANuaWwFAAAAA25pbAMJAAAAAAAAAgUAAAAPc2VuZFRva2Vuc1RvQXBwBQAAAA9zZW5kVG9rZW5zVG9BcHAEAAAAD2NoYXJUb2tlbkluY29tZQQAAAAHJG1hdGNoMAUAAAAPc2VuZFRva2Vuc1RvQXBwAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAABWlzSW50BQAAAAckbWF0Y2gwBQAAAAVpc0ludAkAAAIAAAABAgAAAAxJbnZva2UgaXNzdWUEAAAAEm5ld0NoYXJUb3RhbEluY29tZQkAAGQAAAACCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAQAAAAR3aXRoAAAAAgUAAAASa2V5Q2hhclRvdGFsSW5jb21lBQAAAAZjaGFySWQAAAAAAAAAAAAFAAAAD2NoYXJUb2tlbkluY29tZQQAAAAVbmV3QWRkcmVzc1RvdGFsSW5jb21lCQAAZAAAAAIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkBAAAABHdpdGgAAAACBQAAABVrZXlBZGRyZXNzVG90YWxJbmNvbWUFAAAACmNhbGxlckFkZHIAAAAAAAAAAAAFAAAAD2NoYXJUb2tlbkluY29tZQQAAAATb2xkTGFuZE5ld0VsZW1Qb3dlcgkBAAAAFGNhbGNPbGRMYW5kRWxlbVBvd2VyAAAAAgUAAAAQb2xkTGFuZEVsZW1Qb3dlcgUAAAAUY2hhck5hdHVyYWxFbGVtQm9udXMJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAA9jaGFyVG9rZW5JbmNvbWUJAQAAABFAZXh0ck5hdGl2ZSgxMDUyKQAAAAIFAAAABmdvdkFwcAUAAAAKa2V5VG9rZW5JZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABJrZXlDaGFyVG90YWxJbmNvbWUFAAAABmNoYXJJZAUAAAASbmV3Q2hhclRvdGFsSW5jb21lCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAFWtleUFkZHJlc3NUb3RhbEluY29tZQUAAAAKY2FsbGVyQWRkcgUAAAASbmV3Q2hhclRvdGFsSW5jb21lCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAEGtleUxhbmRQeXJvUG93ZXIFAAAAC2N1cnJlbnRMYW5kCQABkQAAAAIFAAAAE29sZExhbmROZXdFbGVtUG93ZXIAAAAAAAAAAAAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAQa2V5TGFuZEFxdWFQb3dlcgUAAAALY3VycmVudExhbmQJAAGRAAAAAgUAAAATb2xkTGFuZE5ld0VsZW1Qb3dlcgAAAAAAAAAAAQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABFrZXlMYW5kVGVycmFQb3dlcgUAAAALY3VycmVudExhbmQJAAGRAAAAAgUAAAATb2xkTGFuZE5ld0VsZW1Qb3dlcgAAAAAAAAAAAgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABBrZXlMYW5kQWVyb1Bvd2VyBQAAAAtjdXJyZW50TGFuZAkAAZEAAAACBQAAABNvbGRMYW5kTmV3RWxlbVBvd2VyAAAAAAAAAAADBQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBQAAAANuaWwJAAROAAAAAgkABE4AAAACCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAEmtleUNoYXJDdXJyZW50TGFuZAUAAAAGY2hhcklkBQAAAAZsYW5kSWQFAAAAA25pbAUAAAAOam9pbmluZ0FjdGlvbnMFAAAADmV4aXRpbmdBY3Rpb25zCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5I5nbTA==", "height": 2058515, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CGgeRC3QnRyn8ysgid7midF28nHqKuFqALBS4MAE1AA3 Next: D8FFohBxX7fy3K6r8uc5qgDbh32y94gtbXYjouQkK2PP Diff:
OldNewDifferences
5050 let keyNaturalTerraBonus = "natural_terra_bonus"
5151
5252 let keyNaturalAeroBonus = "natural_aero_bonus"
53+
54+let battlesApp = addressFromStringValue("3MuH9NgpoGaSQufEQLPRikXNS9PXhkhcLzp")
5355
5456 func invokeChecks (callerAddr) = if ((isDataStorageUntouched(govApp) != false))
5557 then throw("Governing app not ready")
131133 then {
132134 let newLandNewElemPower = calcNewLandElemPower(landId, charNaturalElemBonus)
133135 let newLandCharElemShares = calcCharElemShares(charNaturalElemBonus, newLandNewElemPower)
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])]
136+ let charRestPeriodUpdate = invoke(battlesApp, "battle", [charId], nil)
137+ if ((charRestPeriodUpdate == charRestPeriodUpdate))
138+ then {
139+ let charRestPeriod = match charRestPeriodUpdate {
140+ case isInt: Int =>
141+ isInt
142+ case _ =>
143+ throw("charRestPeriodUpdate failed")
144+ }
145+ if ((charRestPeriod != height))
146+ then throw("Unexpected error")
147+ else [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])]
148+ }
149+ else throw("Strict value is not equal to itself.")
135150 }
136151 else [DeleteEntry(with(keyCharInitialGeneratedSupplies, charId)), DeleteEntry(with(keyCharInitialPyroShare, charId)), DeleteEntry(with(keyCharInitialAquaShare, charId)), DeleteEntry(with(keyCharInitialTerraShare, charId)), DeleteEntry(with(keyCharInitialAeroShare, charId))]
137152 let exitingActions = if ((currentLand != 0))
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"
53+
54+let battlesApp = addressFromStringValue("3MuH9NgpoGaSQufEQLPRikXNS9PXhkhcLzp")
5355
5456 func invokeChecks (callerAddr) = if ((isDataStorageUntouched(govApp) != false))
5557 then throw("Governing app not ready")
5658 else {
5759 let ecosystemAddresses = getStringValue(govApp, keyEcosystemAddresses)
5860 if ((contains(ecosystemAddresses, toString(callerAddr)) != false))
5961 then throw("Access denied")
6062 else true
6163 }
6264
6365
6466 func with (a,b) = {
6567 let c = match b {
6668 case isInt: Int =>
6769 toString(isInt)
6870 case isStr: String =>
6971 isStr
7072 case _ =>
7173 throw("Matching issue in with function")
7274 }
7375 ((c + separator) + a)
7476 }
7577
7678
7779 func getCharNaturalElemBonus (charId) = [getIntegerValue(charsApp, with(keyNaturalPyroBonus, charId)), getIntegerValue(charsApp, with(keyNaturalAquaBonus, charId)), getIntegerValue(charsApp, with(keyNaturalTerraBonus, charId)), getIntegerValue(charsApp, with(keyNaturalAeroBonus, charId))]
7880
7981
8082 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)]
8183
8284
8385 func calcNewLandElemPower (landId,charNaturalElemBonus) = {
8486 let newLandElemPower = getLandElemPower(landId)
8587 [(newLandElemPower[0] + charNaturalElemBonus[0]), (newLandElemPower[1] + charNaturalElemBonus[1]), (newLandElemPower[2] + charNaturalElemBonus[2]), (newLandElemPower[3] + charNaturalElemBonus[3])]
8688 }
8789
8890
8991 func calcOldLandElemPower (oldLandElemPower,charNaturalElemBonus) = [(oldLandElemPower[0] - charNaturalElemBonus[0]), (oldLandElemPower[1] - charNaturalElemBonus[1]), (oldLandElemPower[2] - charNaturalElemBonus[2]), (oldLandElemPower[3] - charNaturalElemBonus[3])]
9092
9193
9294 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])]
9395
9496
9597 func calcCharIncome (charId,oldLandElemPower,charNaturalElemBonus,currentGeneratedSupplies) = {
9698 let oldLandCharCurrentElemShares = calcCharElemShares(oldLandElemPower, charNaturalElemBonus)
9799 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)]
98100 let charEligibleSupplies = (((currentGeneratedSupplies - getIntegerValue(this, with(keyCharInitialGeneratedSupplies, charId))) / getIntegerValue(govApp, keyTotalLands)) / 4)
99101 (((fraction(charEligibleSupplies, oldLandCharAverageElemShares[0], shareDecimals) + fraction(charEligibleSupplies, oldLandCharAverageElemShares[1], shareDecimals)) + fraction(charEligibleSupplies, oldLandCharAverageElemShares[2], shareDecimals)) + fraction(charEligibleSupplies, oldLandCharAverageElemShares[3], shareDecimals))
100102 }
101103
102104
103105 @Callable(i)
104106 func charMovingLand (charId,landId) = if ((invokeChecks(i.caller) != true))
105107 then throw()
106108 else {
107109 let callerAddr = toBase58String(i.caller.bytes)
108110 if ((getStringValue(charsApp, with(keyOwner, charId)) != callerAddr))
109111 then throw("Caller doesn't own this char")
110112 else if (if ((0 > landId))
111113 then true
112114 else (landId > getIntegerValue(govApp, keyTotalLands)))
113115 then throw("Not a land")
114116 else {
115117 let currentLand = valueOrElse(getInteger(this, with(keyCharCurrentLand, charId)), 0)
116118 if ((currentLand == landId))
117119 then throw("Char already on that land")
118120 else {
119121 let charNaturalElemBonus = getCharNaturalElemBonus(charId)
120122 let oldLandElemPower = getLandElemPower(currentLand)
121123 let currentGeneratedSuppliesResult = invoke(govApp, "getGeneratedSupplies", nil, nil)
122124 if ((currentGeneratedSuppliesResult == currentGeneratedSuppliesResult))
123125 then {
124126 let currentGeneratedSupplies = match currentGeneratedSuppliesResult {
125127 case isInt: Int =>
126128 isInt
127129 case _ =>
128130 throw("Bad invoke result")
129131 }
130132 let joiningActions = if ((landId != 0))
131133 then {
132134 let newLandNewElemPower = calcNewLandElemPower(landId, charNaturalElemBonus)
133135 let newLandCharElemShares = calcCharElemShares(charNaturalElemBonus, newLandNewElemPower)
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])]
136+ let charRestPeriodUpdate = invoke(battlesApp, "battle", [charId], nil)
137+ if ((charRestPeriodUpdate == charRestPeriodUpdate))
138+ then {
139+ let charRestPeriod = match charRestPeriodUpdate {
140+ case isInt: Int =>
141+ isInt
142+ case _ =>
143+ throw("charRestPeriodUpdate failed")
144+ }
145+ if ((charRestPeriod != height))
146+ then throw("Unexpected error")
147+ else [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])]
148+ }
149+ else throw("Strict value is not equal to itself.")
135150 }
136151 else [DeleteEntry(with(keyCharInitialGeneratedSupplies, charId)), DeleteEntry(with(keyCharInitialPyroShare, charId)), DeleteEntry(with(keyCharInitialAquaShare, charId)), DeleteEntry(with(keyCharInitialTerraShare, charId)), DeleteEntry(with(keyCharInitialAeroShare, charId))]
137152 let exitingActions = if ((currentLand != 0))
138153 then {
139154 let sendTokensToApp = invoke(govApp, "sendTokenstoApp", [calcCharIncome(charId, oldLandElemPower, charNaturalElemBonus, currentGeneratedSupplies)], nil)
140155 if ((sendTokensToApp == sendTokensToApp))
141156 then {
142157 let charTokenIncome = match sendTokensToApp {
143158 case isInt: Int =>
144159 isInt
145160 case _ =>
146161 throw("Invoke issue")
147162 }
148163 let newCharTotalIncome = (valueOrElse(getInteger(this, with(keyCharTotalIncome, charId)), 0) + charTokenIncome)
149164 let newAddressTotalIncome = (valueOrElse(getInteger(this, with(keyAddressTotalIncome, callerAddr)), 0) + charTokenIncome)
150165 let oldLandNewElemPower = calcOldLandElemPower(oldLandElemPower, charNaturalElemBonus)
151166 [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])]
152167 }
153168 else throw("Strict value is not equal to itself.")
154169 }
155170 else nil
156171 (([IntegerEntry(with(keyCharCurrentLand, charId), landId)] ++ joiningActions) ++ exitingActions)
157172 }
158173 else throw("Strict value is not equal to itself.")
159174 }
160175 }
161176 }
162177
163178
164179 @Verifier(tx)
165180 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
166181

github/deemru/w8io/873ac7e 
63.49 ms