tx · 37Q5ohmsCNj5zC74uLjtP2xJMoKVkrazLY8zBidUcmoz

3N8WDKbqGox5Eky326PHHT7rUyrby5MXdmb:  -0.01000000 Waves

2022.05.13 19:25 [2050158] smart account 3N8WDKbqGox5Eky326PHHT7rUyrby5MXdmb > SELF 0.00000000 Waves

{ "type": 13, "id": "37Q5ohmsCNj5zC74uLjtP2xJMoKVkrazLY8zBidUcmoz", "fee": 1000000, "feeAssetId": null, "timestamp": 1652459117309, "version": 2, "chainId": 84, "sender": "3N8WDKbqGox5Eky326PHHT7rUyrby5MXdmb", "senderPublicKey": "FWSsBbeCwLVkekWhvNKtX6JkrZiruRybKKVuiS3F4bqN", "proofs": [ "39Df4bmd56VTWUKBPgv4VPLPkY3FFYHCNhc9RKBUCK3ngKUFnqLhT55dHGPn7n12vkwn64oHfrbdCTLEp8g2snn8" ], "script": "base64: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YXNzZXRPd25lcgUAAAAGY2FsbGVyAQAAABVpc05hdGlvblJlc2VydmVkQXNzZXQAAAABAAAADHN0ckFzc2V0VHlwZQMJAAAAAAAAAgUAAAAMc3RyQXNzZXRUeXBlAgAAAAdTZXR0bGVyBgkAAAAAAAACBQAAAAxzdHJBc3NldFR5cGUCAAAACEV4cGxvcmVyAQAAABlpbnRlcm5hbFRyYXNuZmVyT3duZXJzaGlwAAAAAgAAAAdhc3NldElkAAAACG5ld093bmVyBAAAAAxzdHJBc3NldFR5cGUJAAGRAAAAAgkABLUAAAACBQAAAAdhc3NldElkAgAAAAFfAAAAAAAAAAAABAAAAAhvbGRPd25lcgkBAAAADHRyeUdldFN0cmluZwAAAAEJAQAAABZnZXRBc3NldE93bmVyS2V5U3RyaW5nAAAAAQUAAAAHYXNzZXRJZAQAAAAKYXNzZXRQb3dlcgkAAZEAAAACBQAAAAthc3NldHNQb3dlcgkBAAAABXZhbHVlAAAAAQkABE8AAAACBQAAAAZBc3NldHMFAAAADHN0ckFzc2V0VHlwZQMJAABmAAAAAgUAAAAKYXNzZXRQb3dlcgAAAAAAAAAAAAQAAAAMY3VycmVudFBvd2VyCQEAAAAUbmF0aW9uc1RyeUdldEludGVnZXIAAAABCQABLAAAAAIFAAAACG9sZE93bmVyAgAAAAZfUG93ZXIEAAAAAnB3CQAD/AAAAAQJAQAAAAdBZGRyZXNzAAAAAQUAAAAObmF0aW9uc0FkZHJlc3MCAAAADHNldFVzZXJQb3dlcgkABEwAAAACBQAAAAhvbGRPd25lcgkABEwAAAACCQAAZQAAAAIFAAAADGN1cnJlbnRQb3dlcgUAAAAKYXNzZXRQb3dlcgUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAAAnB3BQAAAAJwdwMJAQAAAAIhPQAAAAIFAAAAAnB3CQAAZQAAAAIFAAAADGN1cnJlbnRQb3dlcgUAAAAKYXNzZXRQb3dlcgkAAAIAAAABAgAAABdJbmNvcnJlY3QgaW52b2tlIHJlc3VsdAQAAAAPbmV3Y3VycmVudFBvd2VyCQEAAAAUbmF0aW9uc1RyeUdldEludGVnZXIAAAABCQABLAAAAAIFAAAACG5ld093bmVyAgAAAAZfUG93ZXIEAAAAA3B3MgkAA/wAAAAECQEAAAAHQWRkcmVzcwAAAAEFAAAADm5hdGlvbnNBZGRyZXNzAgAAAAxzZXRVc2VyUG93ZXIJAARMAAAAAgUAAAAIbmV3T3duZXIJAARMAAAAAgkAAGQAAAACBQAAAA9uZXdjdXJyZW50UG93ZXIFAAAACmFzc2V0UG93ZXIFAAAAA25pbAUAAAADbmlsAwkAAAAAAAACBQAAAANwdzIFAAAAA3B3MgQAAAAHJG1hdGNoMAUAAAADcHcyAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAXIFAAAAByRtYXRjaDAJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAFmdldEFzc2V0T3duZXJLZXlTdHJpbmcAAAABBQAAAAdhc3NldElkBQAAAAhuZXdPd25lcgUAAAADbmlsCQAAAgAAAAECAAAAF0luY29ycmVjdCBpbnZva2UgcmVzdWx0CQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAFmdldEFzc2V0T3duZXJLZXlTdHJpbmcAAAABBQAAAAdhc3NldElkBQAAAAhuZXdPd25lcgUAAAADbmlsAAAACQAAAAFpAQAAAApTdGFydEJ1aWxkAAAAAwAAAAxzdHJBc3NldFR5cGUAAAAJTmF0aW9uS2V5AAAAClNldHRsZXJLZXkDCQEAAAABIQAAAAEJAQAAAA9jb250YWluc0VsZW1lbnQAAAACBQAAAAZBc3NldHMFAAAADHN0ckFzc2V0VHlwZQkAAAIAAAABAgAAACdUaGlzIGFzc2V0IGlzIG5vdCBtYW5hZ2VkIGJ5IHRoZSBzeXN0ZW0EAAAAA2luZAkBAAAABXZhbHVlAAAAAQkABE8AAAACBQAAAAZBc3NldHMFAAAADHN0ckFzc2V0VHlwZQQAAAAQZGVsYXlGb3JCdWlsZGluZwkAAZEAAAACBQAAAAthc3NldHNEZWxheQUAAAADaW5kBAAAAA5hc3NldEJ1aWxkQ29zdAkAAZEAAAACBQAAAAphc3NldHNDb3N0BQAAAANpbmQEAAAADVRvQWRtaW5XYWxsZXQJAABpAAAAAgkAAGgAAAACBQAAAA5hc3NldEJ1aWxkQ29zdAAAAAAAAAAABQAAAAAAAAAAZAQAAAATVG9HYW1lUmV3YXJkc1dhbGxldAkAAGkAAAACCQAAaAAAAAIFAAAADmFzc2V0QnVpbGRDb3N0AAAAAAAAAAAKAAAAAAAAAABkBAAAABZUb1N0YWtpbmdSZXdhcmRzV2FsbGV0CQAAaQAAAAIJAABoAAAAAgUAAAAOYXNzZXRCdWlsZENvc3QAAAAAAAAAAEEAAAAAAAAAAGQEAAAADVVuaXRTdGFrZVNoZWcJAABlAAAAAgkAAGUAAAACCQAAZQAAAAIFAAAADmFzc2V0QnVpbGRDb3N0BQAAAA1Ub0FkbWluV2FsbGV0BQAAABNUb0dhbWVSZXdhcmRzV2FsbGV0BQAAABZUb1N0YWtpbmdSZXdhcmRzV2FsbGV0AwkBAAAAFWlzTmF0aW9uUmVzZXJ2ZWRBc3NldAAAAAEFAAAADHN0ckFzc2V0VHlwZQMDCQEAAAABIQAAAAEJAQAAAA9jaGVja0Fzc2V0T3duZXIAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAJTmF0aW9uS2V5CQEAAAABIQAAAAEJAQAAAApjaGVja0FkbWluAAAAAQgFAAAAAWkAAAAGY2FsbGVyBwkAAAIAAAABAgAAADBZb3UgYXJlIG5vdCBhdXRob3JpemVkIHRvIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24EAAAACm5hdGlvbnNoZWcJAQAAABV0cmVhc3VyeVRyeUdldEludGVnZXIAAAABCQEAAAAOZ2V0VHJlYXN1cnlLZXkAAAABBQAAAAlOYXRpb25LZXkDCQAAZgAAAAIFAAAADmFzc2V0QnVpbGRDb3N0BQAAAApuYXRpb25zaGVnCQAAAgAAAAECAAAAHlRoZSBuYXRpb24gaGFzbid0IGVub3VnaCBmdW5kcwQAAAABZAkAA/wAAAAECQEAAAAHQWRkcmVzcwAAAAEFAAAAD3RyZWFzdXJ5QWRkcmVzcwIAAAAUZGVjcmVhc2VOYXRpb25XYWxsZXQJAARMAAAAAgUAAAAJTmF0aW9uS2V5CQAETAAAAAIFAAAADmFzc2V0QnVp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aGVkUGF5bWVudAAAAAIFAAAACnNoaW55d2dnaWQFAAAADVVuaXRTdGFrZVNoZWcFAAAAA25pbAQAAAAHJG1hdGNoMAUAAAACcHcDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABcgUAAAAHJG1hdGNoMAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAUZ2V0QnVpbGRpbmdTdGF0dXNLZXkAAAADCQAEJQAAAAEIBQAAAAFpAAAADG9yaWdpbkNhbGxlcggFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAUAAAAMc3RyQXNzZXRUeXBlBQAAAAxCdWlsZFN0YXJ0ZWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEGdldEFzc2V0T3duZXJLZXkAAAACCAUAAAABaQAAAA10cmFuc2FjdGlvbklkBQAAAAxzdHJBc3NldFR5cGUJAAQlAAAAAQgFAAAAAWkAAAAMb3JpZ2luQ2FsbGVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAaZ2V0QnVpbGRpbmdGaW5pc2hIZWlnaHRLZXkAAAADCQAEJQAAAAEIBQAAAAFpAAAADG9yaWdpbkNhbGxlcggFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAUAAAAMc3RyQXNzZXRUeXBlCQAAZAAAAAIFAAAABmhlaWdodAUAAAAQZGVsYXlGb3JCdWlsZGluZwkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAthZG1pbldhbGxldAUAAAANVG9BZG1pbldhbGxldAUAAAAKc2hpbnl3Z2dpZAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAABZkYWlseUdhbWVSZXdhcmRzV2FsbGV0BQAAABNUb0dhbWVSZXdhcmRzV2FsbGV0BQAAAApzaGlueXdnZ2lkCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAGWRhaWx5U3Rha2luZ1Jld2FyZHNXYWxsZXQFAAAAFlRvU3Rha2luZ1Jld2FyZHNXYWxsZXQFAAAACnNoaW55d2dnaWQFAAAAA25pbAkAAAIAAAABAgAAABdJbmNvcnJlY3QgaW52b2tlIHJlc3VsdAAAAAFpAQAAAAtGaW5pc2hCdWlsZAAAAAMAAAAHdHhJZFN0cgAAAAhhc3NldFN0cgAAAAlOYXRpb25LZXkEAAAABHR4SWQJAAJZAAAAAQUAAAAHdHhJZFN0cgQAAAARQnVpbGRpbmdTdGF0dXNLZXkJAQAAABRnZXRCdWlsZGluZ1N0YXR1c0tleQAAAAMJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAAAR0eElkBQAAAAhhc3NldFN0cgQAAAAPZmluaXNoSGVpZ2h0S2V5CQEAAAAaZ2V0QnVpbGRpbmdGaW5pc2hIZWlnaHRLZXkAAAADCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAEdHhJZAUAAAAIYXNzZXRTdHIEAAAACGFzc2V0S2V5CQEAAAANZ2V0QXNzZXRJZEtleQAAAAIFAAAABHR4SWQFAAAACGFzc2V0U3RyBAAAAAphc3NldE93bmVyCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQkBAAAAEGdldEFzc2V0T3duZXJLZXkAAAACBQAAAAR0eElkBQAAAAhhc3NldFN0cgMJAQAAABVpc05hdGlvblJlc2VydmVkQXNzZXQAAAABBQAAAAhhc3NldFN0cgMDCQEAAAABIQAAAAEJAQAAAA9jaGVja0Fzc2V0T3duZXIAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAJTmF0aW9uS2V5CQEAAAABIQAAAAEJAQAAAApjaGVja0FkbWluAAAAAQgFAAAAAWkAAAAGY2FsbGVyBwkAAAIAAAABAgAAADBZb3UgYXJlIG5vdCBhdXRob3JpemVkIHRvIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24JAQAAABNpbnRlcm5hbEZpbmlzaEJ1aWxkAAAABQUAAAAJTmF0aW9uS2V5BQAAAAhhc3NldFN0cgUAAAAIYXNzZXRLZXkFAAAAEUJ1aWxkaW5nU3RhdHVzS2V5BQAAAA9maW5pc2hIZWlnaHRLZXkDCQEAAAACIT0AAAACBQAAAAphc3NldE93bmVyCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgkAAAIAAAABCQABLAAAAAICAAAAIVlvdSBjYW5ub3QgY2xhaW0gb3RoZXIncyBwbGF5ZXJzIAUAAAAIYXNzZXRTdHIEAAAAEGJ1aWxkaW5nVHhTdGF0dXMJAQAAAAx0cnlHZXRTdHJpbmcAAAABBQAAABFCdWlsZGluZ1N0YXR1c0tleQMJAAAAAAAAAgUAAAAQYnVpbGRpbmdUeFN0YXR1cwIAAAAACQAAAgAAAAECAAAAJE5vIHBlbmRpbmcgb3BlcmF0aW9ucyBmb3IgdGhpcyBhc3NldAkBAAAAE2ludGVybmFsRmluaXNoQnVpbGQAAAAFCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAIYXNzZXRTdHIFAAAACGFzc2V0S2V5BQAAABFCdWlsZGluZ1N0YXR1c0tleQUAAAAPZmluaXNoSGVpZ2h0S2V5AAAAAWkBAAAAEXRyYW5zZmVyT3duZXJzaGlwAAAAAgAAAAdhc3NldElkAAAACG5ld093bmVyBAAAAAxzdHJBc3NldFR5cGUJAAGRAAAAAgkABLUAAAACBQAAAAdhc3NldElkAgAAAAFfAAAAAAAAAAAAAwkBAAAAASEAAAABCQEAAAAKY2hlY2tBZG1pbgAAAAEIBQAAAAFpAAAABmNhbGxlcgkAAAIAAAABAgAAAClPbmx5IHRoZSBhZG1pbiBjYW4gcGVyZm9ybSB0aGlzIG9wZXJhdGlvbgkABRQAAAACCQEAAAAZaW50ZXJuYWxUcmFzbmZlck93bmVyc2hpcAAAAAIFAAAAB2Fzc2V0SWQFAAAACG5ld093bmVyBQAAAAhuZXdPd25lcgAAAAFpAQAAABdkZXN0cm95QXNzZXRBbmRUcmFuc2ZlcgAAAAIAAAAHYXNzZXRJZAAAAAl0b0FkZHJlc3MEAAAADHN0ckFzc2V0VHlwZQkAAZEAAAACCQAEtQAAAAIFAAAAB2Fzc2V0SWQCAAAAAV8AAAAAAAAAAAADCQEAAAABIQAAAAEJAQAAAApjaGVja0FkbWluAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQAAAgAAAAECAAAAKU9ubHkgdGhlIGFkbWluIGNhbiBwZXJmb3JtIHRoaXMgb3BlcmF0aW9uBAAAAAhvbGRPd25lcgkBAAAADHRyeUdldFN0cmluZwAAAAEJAQAAABZnZXRBc3NldE93bmVyS2V5U3RyaW5nAAAAAQUAAAAHYXNzZXRJZAQAAAAKYXNzZXRDb2lucwkBAAAADXRyeUdldEludGVnZXIAAAABBQAAAAdhc3NldElkBAAAAAdyZWZDYWxsCQAD/AAAAAQJAQAAAAdBZGRyZXNzAAAAAQUAAAAPdHJlYXN1cnlBZGRyZXNzAgAAABFhcmJpdHJhcnlBZGRDb2lucwkABEwAAAACBQAAAAl0b0FkZHJlc3MJAARMAAAAAgUAAAAKYXNzZXRDb2lucwUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAAB3JlZkNhbGwFAAAAB3JlZkNhbGwEAAAADGN1cnJlbnRQb3dlcgkBAAAAFG5hdGlvbnNUcnlHZXRJbnRlZ2VyAAAAAQkAASwAAAACBQAAAAhvbGRPd25lcgIAAAAGX1Bvd2VyBAAAAAphc3NldFBvd2VyCQABkQAAAAIFAAAAC2Fzc2V0c1Bvd2VyCQEAAAAFdmFsdWUAAAABCQAETwAAAAIFAAAABkFzc2V0cwUAAAAMc3RyQXNzZXRUeXBlBAAAAAJwdwkAA/wAAAAECQEAAAAHQWRkcmVzcwAAAAEFAAAADm5hdGlvbnNBZGRyZXNzAgAAAAxzZXRVc2VyUG93ZXIJAARMAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIJAARMAAAAAgkAAGUAAAACBQAAAAxjdXJyZW50UG93ZXIFAAAACmFzc2V0UG93ZXIFAAAAA25pbAUAAAADbmlsAwkAAAAAAAACBQAAAAJwdwUAAAACcHcEAAAAByRtYXRjaDAFAAAAAnB3AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAXIFAAAAByRtYXRjaDAJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQUAAAAHYXNzZXRJZAUAAAADbmlsCQAAAgAAAAECAAAAF0luY29ycmVjdCBpbnZva2UgcmVzdWx0CQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAUZGVzdHJveUFzc2V0RnJvbVVzZXIAAAABAAAAB2Fzc2V0SWQEAAAADHN0ckFzc2V0VHlwZQkAAZEAAAACCQAEtQAAAAIFAAAAB2Fzc2V0SWQCAAAAAV8AAAAAAAAAAAADCQEAAAABIQAAAAEJAQAAAA9jaGVja0Fzc2V0T3duZXIAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAHYXNzZXRJZAkAAAIAAAABAgAAABhZb3UgZG9uJ3Qgb3duIHRoaXMgYXNzZXQEAAAACmFzc2V0Q29pbnMJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQUAAAAHYXNzZXRJZAQAAAAMY3VycmVudFBvd2VyCQEAAAAUbmF0aW9uc1RyeUdldEludGVnZXIAAAABCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyAgAAAAZfUG93ZXIEAAAACmFzc2V0UG93ZXIJAAGRAAAAAgUAAAALYXNzZXRzUG93ZXIJAQAAAAV2YWx1ZQAAAAEJAARPAAAAAgUAAAAGQXNzZXRzBQAAAAxzdHJBc3NldFR5cGUEAAAAAnB3CQAD/AAAAAQJAQAAAAdBZGRyZXNzAAAAAQUAAAAObmF0aW9uc0FkZHJlc3MCAAAADHNldFVzZXJQb3dlcgkABEwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgkABEwAAAACCQAAZQAAAAIFAAAADGN1cnJlbnRQb3dlcgUAAAAKYXNzZXRQb3dlcgUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAAAnB3BQAAAAJwdwQAAAAHJG1hdGNoMAUAAAACcHcDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABcgUAAAAHJG1hdGNoMAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABBQAAAAdhc3NldElkCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAKYXNzZXRDb2lucwUAAAAKc2hpbnl3Z2dpZAUAAAADbmlsCQAAAgAAAAECAAAAF0luY29ycmVjdCBpbnZva2UgcmVzdWx0CQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAA5zZXROYXRpb25Pd25lcgAAAAIAAAAJbmF0aW9uS2V5AAAACG5ld093bmVyAwkBAAAACmNoZWNrQWRtaW4AAAABCAUAAAABaQAAAAZjYWxsZXIJAAUUAAAAAgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAACW5hdGlvbktleQIAAAAGX093bmVyBQAAAAhuZXdPd25lcgUAAAADbmlsBgQAAAAMY3VycmVudE93bmVyCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQkAASwAAAACBQAAAAluYXRpb25LZXkCAAAABl9Pd25lcgMJAQAAAAIhPQAAAAIFAAAADGN1cnJlbnRPd25lcgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIJAAACAAAAAQIAAAAcWW91IGFyZSBub3QgdGhlIG5hdGlvbiBvd25lcgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAACW5hdGlvbktleQIAAAAGX093bmVyBQAAAAhuZXdPd25lcgUAAAADbmlsAAAAAWkBAAAADWJ1eU5hdGlvbkl0ZW0AAAACAAAAB2Fzc2V0SWQAAAAJTmF0aW9uS2V5BAAAAAxzdHJBc3NldFR5cGUJAAGRAAAAAgkABLUAAAACBQAAAAdhc3NldElkAgAAAAFfAAAAAAAAAAAABAAAAAFuCQEAAAAUbmF0aW9uc1RyeUdldEludGVnZXIAAAABCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAADbmlkCQEAAAAUbmF0aW9uc1RyeUdldEludGVnZXIAAAABBQAAAAlOYXRpb25LZXkDCQEAAAACIT0AAAACBQAAAAFuBQAAAANuaWQJAAACAAAAAQIAAAAoeW91IGNhbiBidXkgYXNzZXRzIG9ubHkgZnJvbSB5b3VyIG5hdGlvbgMJAQAAAAEhAAAAAQkBAAAAD2NoZWNrQXNzZXRPd25lcgAAAAIFAAAACU5hdGlvbktleQUAAAAHYXNzZXRJZAkAAAIAAAABAgAAACdUaGUgYXNzZXQgZG9lcyBub3QgYmVsb25nIHRvIHRoZSBuYXRpb24DCQEAAAABIQAAAAEJAQAAABVpc05hdGlvblJlc2VydmVkQXNzZXQAAAABBQAAAAxzdHJBc3NldFR5cGUJAAACAAAAAQIAAAAndGhpcyBhc3NldCBjYW5ub3QgYmUgc29sZCBieSB0aGUgbmF0aW9uBAAAAANpbmQJAQAAAAV2YWx1ZQAAAAEJAARPAAAAAgUAAAAGQXNzZXRzBQAAAAxzdHJBc3NldFR5cGUEAAAACmFzc2V0UHJpY2UJAAGRAAAAAgUAAAAPYXNzZXRzU2VsbFByaWNlBQAAAANpbmQEAAAACGFtb3VudEluCQEAAAAFdmFsdWUAAAABCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAZhbW91bnQDCQAAZgAAAAIFAAAACmFzc2V0UHJpY2UFAAAACGFtb3VudEluCQAAAgAAAAEJAAEsAAAAAgIAAAA8WW91IHByb3ZpZGVkIGxlc3MgJGhlZyB0aGFuIHRoZSBuZWVkZWQgY29zdCBmb3IgYnV5aW5nIHRoaXMgBQAAAAxzdHJBc3NldFR5cGUDCQEAAAACIT0AAAACCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAdhc3NldElkBQAAAApzaGlueXdnZ2lkCQAAAgAAAAECAAAAGk9ubHkgJEhFRyBwYXltZW50cyBhbGxvd2VkBAAAAAFhCQAD/AAAAAQJAQAAAAdBZGRyZXNzAAAAAQUAAAAPdHJlYXN1cnlBZGRyZXNzAgAAABRpbmNyZWFzZU5hdGlvbldhbGxldAkABEwAAAACBQAAAAlOYXRpb25LZXkJAARMAAAAAgUAAAAIYW1vdW50SW4FAAAAA25pbAUAAAADbmlsBAAAAAckbWF0Y2gwBQAAAAFhAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWIFAAAAByRtYXRjaDAJAARNAAAAAgkBAAAAGWludGVybmFsVHJhc25mZXJPd25lcnNoaXAAAAACBQAAAAdhc3NldElkCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAB0FkZHJlc3MAAAABBQAAAA90cmVhc3VyeUFkZHJlc3MFAAAACGFtb3VudEluBQAAAApzaGlueXdnZ2lkCQAAAgAAAAECAAAAKUVycm9yIHRyYW5zZmVycmluZyBTSEVHIHRvIG5hdGlvbnMgd2FsbGV0AAAAAWkBAAAAFkFkZEFzc2V0RnJvbU1hcmtlcGxhY2UAAAADAAAAB2Fzc2V0SWQAAAAIb2xkT3duZXIAAAAJYXNzZXRTaGVnAwkBAAAAASEAAAABCQEAAAAKY2hlY2tBZG1pbgAAAAEIBQAAAAFpAAAABmNhbGxlcgkAAAIAAAABAgAAAC1Zb3UgYXJlIG5vdCBhbGxvd2VkIHRvIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24JAAUUAAAAAgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAWZ2V0QXNzZXRPd25lcktleVN0cmluZwAAAAEFAAAAB2Fzc2V0SWQFAAAACG9sZE93bmVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAdhc3NldElkBQAAAAlhc3NldFNoZWcFAAAAA25pbAUAAAAIb2xkT3duZXIAAAABaQEAAAAaVHJhbnNmZXJBc3NldFRvTWFya2V0cGxhY2UAAAACAAAAB2Fzc2V0SWQAAAAJc2VsbHByaWNlAwkBAAAAASEAAAABCQEAAAAPY2hlY2tBc3NldE93bmVyAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAB2Fzc2V0SWQJAAACAAAAAQIAAAAjWW91IGFyZSBub3QgdGhlIG93bmVyIG9mIHRoaXMgYXNzZXQEAAAACWFzc2V0U2hlZwkBAAAADXRyeUdldEludGVnZXIAAAABBQAAAAdhc3NldElkBAAAAAJ0cgkAA/wAAAAECQEAAAAHQWRkcmVzcwAAAAEFAAAAEm1hcmtldHBsYWNlQWRkcmVzcwIAAAAJcHV0T25TYWxlCQAETAAAAAIFAAAAB2Fzc2V0SWQJAARMAAAAAgUAAAAJYXNzZXRTaGVnCQAETAAAAAIFAAAACXNlbGxwcmljZQUAAAADbmlsBQAAAANuaWwEAAAAByRtYXRjaDAFAAAAAnRyAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAXQFAAAAByRtYXRjaDAJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAFmdldEFzc2V0T3duZXJLZXlTdHJpbmcAAAABBQAAAAdhc3NldElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEFAAAAB2Fzc2V0SWQFAAAAA25pbAkAAAIAAAABAgAAAClFcnJvciBwdXR0aW5nIHRoZSBpdGVtIG9uIHRoZSBtYXJrZXRwbGFjZQAAAAAhgcla", "height": 2050158, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FFfGvxM1taiRhZrVSyuWPdVmP3nuuBRmvBXsmBg6VZk2 Next: QAUsTuUi5YBhUwcK7NZCjVGxvaVBAy16uFne2hzxA5P Diff:
OldNewDifferences
1111
1212 let e = addressFromStringValue("3MpNtiPSRSq6NnaQYk38BfWSzZcgAYTyrQ9")
1313
14-let f = "BUILD_STARTED"
14+let f = addressFromStringValue("3MuSrXTTiwo9bdoD6FeaBpMUYMiU5saDv2U")
1515
16-let g = "BUILD_FINISHED"
16+let g = addressFromStringValue("3Mv3mr3uNXdpgkVPApbGEJjMQXqau37DY5i")
1717
18-let h = ["Nation", "City", "Barrack", "Barn", "Warrior", "Settler", "Explorer"]
18+let h = "BUILD_STARTED"
1919
20-let i = [0, 1000000000, 5000000000, 5000000000, 500000000, 10000000000, 100000000]
20+let i = "BUILD_FINISHED"
2121
22-let j = [0, 0, 0, 0, 0, 10000000000, 100000000]
22+let j = ["Nation", "City", "Barrack", "Barn", "Warrior", "Settler", "Explorer"]
2323
24-let k = [0, 4, 4, 4, 2, 2, 2]
24+let k = [0, 0, 5000000000, 5000000000, 500000000, 10000000000, 100000000]
2525
26-let l = [0, 1000, 500, 500, 0, 0, 0]
26+let l = [0, 0, 0, 0, 0, 10000000000, 100000000]
2727
28-func m (n) = {
29- let o = getInteger(Address(b), n)
30- if ($isInstanceOf(o, "Int"))
28+let m = [0, 4, 4, 4, 2, 2, 2]
29+
30+let n = [0, 1000, 50, 50, 1, 1, 1]
31+
32+func o (p) = {
33+ let q = getInteger(Address(b), p)
34+ if ($isInstanceOf(q, "Int"))
3135 then {
32- let p = o
33- p
36+ let r = q
37+ r
3438 }
3539 else 0
3640 }
3741
3842
39-func q (n) = {
40- let o = getInteger(Address(c), n)
41- if ($isInstanceOf(o, "Int"))
43+func s (p) = {
44+ let q = getInteger(Address(c), p)
45+ if ($isInstanceOf(q, "Int"))
4246 then {
43- let p = o
44- p
47+ let r = q
48+ r
4549 }
4650 else 0
4751 }
4852
4953
50-func r (n) = {
51- let o = getString(this, n)
52- if ($isInstanceOf(o, "String"))
54+func t (p) = {
55+ let q = getString(this, p)
56+ if ($isInstanceOf(q, "String"))
5357 then {
54- let p = o
55- p
58+ let r = q
59+ r
5660 }
5761 else ""
5862 }
5963
6064
61-func s (n) = {
62- let o = getInteger(this, n)
63- if ($isInstanceOf(o, "Int"))
65+func u (p) = {
66+ let q = getInteger(this, p)
67+ if ($isInstanceOf(q, "Int"))
6468 then {
65- let p = o
66- p
69+ let r = q
70+ r
6771 }
6872 else 0
6973 }
7074
7175
72-func t (u,v) = ((v + "_") + toBase58String(u))
76+func v (w,x) = ((x + "_") + toBase58String(w))
7377
7478
75-func w (u,v) = (t(u, v) + "_Owner")
79+func y (w,x) = (v(w, x) + "_Owner")
7680
7781
78-func x (y) = (y + "_Owner")
82+func z (A) = (A + "_Owner")
7983
8084
81-func z (A,u,v) = (((A + "_") + t(u, v)) + "_fh")
85+func B (C,w,x) = (((C + "_") + v(w, x)) + "_fh")
8286
8387
84-func B (A,u,v) = (((A + "_") + t(u, v)) + "_status")
88+func D (C,w,x) = (((C + "_") + v(w, x)) + "_status")
8589
8690
87-func C (D) = (D + "_Treasury")
91+func E (F) = (F + "_Treasury")
8892
8993
90-func E (F) = if (if (if (if ((F == e))
94+func G (H) = if (if (if (if ((H == e))
9195 then true
92- else (F == this))
96+ else (H == this))
9397 then true
94- else (F.bytes == c))
98+ else (H.bytes == c))
9599 then true
96- else (F.bytes == b))
100+ else (H.bytes == b))
97101 then true
98- else (F.bytes == d)
102+ else (H.bytes == d)
99103
100104
101-func G (F,H,I,J,K) = {
102- let L = getIntegerValue(this, K)
103- if ((L > height))
104- then throw((((("Building is not finished yet " + toString((L - height))) + " blocks remaining, it will take around ") + toString((L - height))) + " minutes"))
105+func I (H,J,K,L,M) = {
106+ let N = getIntegerValue(this, M)
107+ if ((N > height))
108+ then throw((((("Building is not finished yet " + toString((N - height))) + " blocks remaining, it will take around ") + toString((N - height))) + " minutes"))
105109 else {
106- let M = value(indexOf(h, H))
107- let N = l[M]
108- let O = i[M]
109- let P = invoke(Address(b), "Pay", [F, O], nil)
110- if ((P == P))
111- then if ((N > 0))
110+ let O = value(indexOf(j, J))
111+ let P = n[O]
112+ let Q = ((k[O] * 20) / 100)
113+ let R = invoke(Address(b), "Pay", [H, Q], nil)
114+ if ((R == R))
115+ then if ((P > 0))
112116 then {
113- let Q = q((F + "_Power"))
114- let R = invoke(Address(c), "setUserPower", [F, (Q + N)], nil)
115- if ((R == R))
116- then [IntegerEntry(I, O), DeleteEntry(J), DeleteEntry(K)]
117+ let S = s((H + "_Power"))
118+ let T = invoke(Address(c), "setUserPower", [H, (S + P)], nil)
119+ if ((T == T))
120+ then [IntegerEntry(K, Q), DeleteEntry(L), DeleteEntry(M)]
117121 else throw("Strict value is not equal to itself.")
118122 }
119- else [IntegerEntry(I, O), DeleteEntry(J), DeleteEntry(K)]
123+ else [IntegerEntry(K, Q), DeleteEntry(L), DeleteEntry(M)]
120124 else throw("Strict value is not equal to itself.")
121125 }
122126 }
123127
124128
125-func S (F,I) = {
126- let T = r((I + "_Owner"))
127- (T == F)
129+func U (H,K) = {
130+ let V = t((K + "_Owner"))
131+ (V == H)
128132 }
129133
130134
131-func U (V) = if ((V == "Settler"))
135+func W (X) = if ((X == "Settler"))
132136 then true
133- else (V == "Explorer")
137+ else (X == "Explorer")
134138
135139
136-func W (y,X) = {
137- let V = split(y, "_")[0]
138- let Y = r(x(y))
139- let N = l[value(indexOf(h, V))]
140- if ((N > 0))
140+func Y (A,Z) = {
141+ let X = split(A, "_")[0]
142+ let aa = t(z(A))
143+ let P = n[value(indexOf(j, X))]
144+ if ((P > 0))
141145 then {
142- let Q = q((Y + "_Power"))
143- let R = invoke(Address(c), "setUserPower", [Y, (Q - N)], nil)
144- if ((R == R))
145- then if ((R != (Q - N)))
146+ let S = s((aa + "_Power"))
147+ let T = invoke(Address(c), "setUserPower", [aa, (S - P)], nil)
148+ if ((T == T))
149+ then if ((T != (S - P)))
146150 then throw("Incorrect invoke result")
147151 else {
148- let Z = q((X + "_Power"))
149- let aa = invoke(Address(c), "setUserPower", [X, (Z + N)], nil)
150- if ((aa == aa))
152+ let ab = s((Z + "_Power"))
153+ let ac = invoke(Address(c), "setUserPower", [Z, (ab + P)], nil)
154+ if ((ac == ac))
151155 then {
152- let o = aa
153- if ($isInstanceOf(o, "Int"))
156+ let q = ac
157+ if ($isInstanceOf(q, "Int"))
154158 then {
155- let ab = o
156-[StringEntry(x(y), X)]
159+ let ad = q
160+[StringEntry(z(A), Z)]
157161 }
158162 else throw("Incorrect invoke result")
159163 }
161165 }
162166 else throw("Strict value is not equal to itself.")
163167 }
164- else [StringEntry(x(y), X)]
168+ else [StringEntry(z(A), Z)]
165169 }
166170
167171
168-@Callable(ac)
169-func StartBuild (V,ad) = if (!(containsElement(h, V)))
170- then throw("This asset is not amanged by the system")
172+@Callable(ae)
173+func StartBuild (X,af,ag) = if (!(containsElement(j, X)))
174+ then throw("This asset is not managed by the system")
171175 else {
172- let ae = value(indexOf(h, V))
173- let af = k[ae]
174- let ag = i[ae]
175- if (U(V))
176- then if (if (!(S(toString(ac.caller), ad)))
177- then !(E(ac.caller))
176+ let ah = value(indexOf(j, X))
177+ let ai = m[ah]
178+ let aj = k[ah]
179+ let ak = ((aj * 5) / 100)
180+ let al = ((aj * 10) / 100)
181+ let am = ((aj * 65) / 100)
182+ let an = (((aj - ak) - al) - am)
183+ if (W(X))
184+ then if (if (!(U(toString(ae.caller), af)))
185+ then !(G(ae.caller))
178186 else false)
179187 then throw("You are not authorized to perform this operation")
180188 else {
181- let ah = m(C(ad))
182- if ((ag > ah))
189+ let ao = o(E(af))
190+ if ((aj > ao))
183191 then throw("The nation hasn't enough funds")
184192 else {
185- let ai = invoke(Address(b), "decreaseNationWallet", [ad, ag], nil)
186- let o = ai
187- if ($isInstanceOf(o, "Int"))
193+ let ap = invoke(Address(b), "decreaseNationWallet", [af, aj], nil)
194+ let q = ap
195+ if ($isInstanceOf(q, "Int"))
188196 then {
189- let ab = o
190- let R = invoke(Address(b), "arbitraryAddCoins", [ad, ag], nil)
191- let aj = R
192- if ($isInstanceOf(aj, "Int"))
197+ let ad = q
198+ let T = invoke(Address(b), "arbitraryAddCoins", [af, an], nil)
199+ let aq = T
200+ if ($isInstanceOf(aq, "Int"))
193201 then {
194- let p = aj
195-[StringEntry(B(toString(ac.originCaller), ac.transactionId, V), f), StringEntry(w(ac.transactionId, V), ad), IntegerEntry(z(toString(ac.originCaller), ac.transactionId, V), (height + af))]
202+ let r = aq
203+ let ar = invoke(Address(b), "distributeNationPayRewards", [aj], nil)
204+ let as = ar
205+ if ($isInstanceOf(as, "Int"))
206+ then {
207+ let at = as
208+[StringEntry(D(toString(ae.originCaller), ae.transactionId, X), h), StringEntry(y(ae.transactionId, X), af), IntegerEntry(B(toString(ae.originCaller), ae.transactionId, X), (height + ai))]
209+ }
210+ else throw("Error Distributing asset rewards")
196211 }
197212 else throw("Error Depositing nation funds")
198213 }
199214 else throw("Error Depositing nation funds")
200215 }
201216 }
202- else {
203- let ak = value(ac.payments[0].amount)
204- if ((ag > ak))
205- then throw(("You provided less $heg than the needed cost for building this " + V))
206- else if ((ac.payments[0].assetId != a))
207- then throw("Only $HEG payments allowed")
208- else {
209- let R = invoke(Address(b), "Deposit", nil, ac.payments)
210- let o = R
211- if ($isInstanceOf(o, "Int"))
212- then {
213- let ab = o
214-[StringEntry(B(toString(ac.originCaller), ac.transactionId, V), f), StringEntry(w(ac.transactionId, V), toString(ac.originCaller)), IntegerEntry(z(toString(ac.originCaller), ac.transactionId, V), (height + af))]
215- }
216- else throw("Incorrect invoke result")
217- }
218- }
217+ else if ((X == "City"))
218+ then if (!(U(toString(ae.caller), ag)))
219+ then throw("You don't own the settler or has been destroyed")
220+ else {
221+ let au = u(ag)
222+ let T = invoke(Address(b), "NoPaymentDeposit", [toString(ae.caller), an], nil)
223+ let q = T
224+ if ($isInstanceOf(q, "Int"))
225+ then {
226+ let ad = q
227+ let ar = invoke(Address(b), "distributeNationPayRewards", [aj], nil)
228+ let aq = ar
229+ if ($isInstanceOf(aq, "Int"))
230+ then {
231+ let at = aq
232+[DeleteEntry(ag), StringEntry(D(toString(ae.originCaller), ae.transactionId, X), h), StringEntry(y(ae.transactionId, X), af), IntegerEntry(B(toString(ae.originCaller), ae.transactionId, X), (height + ai))]
233+ }
234+ else throw("Error Distributing asset rewards")
235+ }
236+ else throw("Error adding deposit")
237+ }
238+ else {
239+ let av = value(ae.payments[0].amount)
240+ if ((aj > av))
241+ then throw(("You provided less $heg than the needed cost for building this " + X))
242+ else if ((ae.payments[0].assetId != a))
243+ then throw("Only $HEG payments allowed")
244+ else {
245+ let T = invoke(Address(b), "Deposit", nil, [AttachedPayment(a, an)])
246+ let q = T
247+ if ($isInstanceOf(q, "Int"))
248+ then {
249+ let ad = q
250+[StringEntry(D(toString(ae.originCaller), ae.transactionId, X), h), StringEntry(y(ae.transactionId, X), toString(ae.originCaller)), IntegerEntry(B(toString(ae.originCaller), ae.transactionId, X), (height + ai)), ScriptTransfer(e, ak, a), ScriptTransfer(f, al, a), ScriptTransfer(g, am, a)]
251+ }
252+ else throw("Incorrect invoke result")
253+ }
254+ }
219255 }
220256
221257
222258
223-@Callable(ac)
224-func FinishBuild (al,H,ad) = {
225- let u = fromBase58String(al)
226- let J = B(toString(ac.caller), u, H)
227- let K = z(toString(ac.caller), u, H)
228- let I = t(u, H)
229- let T = r(w(u, H))
230- if (U(H))
231- then if (if (!(S(toString(ac.caller), ad)))
232- then !(E(ac.caller))
259+@Callable(ae)
260+func FinishBuild (aw,J,af) = {
261+ let w = fromBase58String(aw)
262+ let L = D(toString(ae.caller), w, J)
263+ let M = B(toString(ae.caller), w, J)
264+ let K = v(w, J)
265+ let V = t(y(w, J))
266+ if (W(J))
267+ then if (if (!(U(toString(ae.caller), af)))
268+ then !(G(ae.caller))
233269 else false)
234270 then throw("You are not authorized to perform this operation")
235- else G(ad, H, I, J, K)
236- else if ((T != toString(ac.caller)))
237- then throw(("You cannot claim other's players " + H))
271+ else I(af, J, K, L, M)
272+ else if ((V != toString(ae.caller)))
273+ then throw(("You cannot claim other's players " + J))
238274 else {
239- let am = r(J)
240- if ((am == ""))
275+ let ax = t(L)
276+ if ((ax == ""))
241277 then throw("No pending operations for this asset")
242- else G(toString(ac.caller), H, I, J, K)
278+ else I(toString(ae.caller), J, K, L, M)
243279 }
244280 }
245281
246282
247283
248-@Callable(ac)
249-func transferOwnership (y,X) = {
250- let V = split(y, "_")[0]
251- if (!(E(ac.caller)))
284+@Callable(ae)
285+func transferOwnership (A,Z) = {
286+ let X = split(A, "_")[0]
287+ if (!(G(ae.caller)))
252288 then throw("Only the admin can perform this operation")
253- else $Tuple2(W(y, X), X)
289+ else $Tuple2(Y(A, Z), Z)
254290 }
255291
256292
257293
258-@Callable(ac)
259-func destroyAssetAndTransfer (y,an) = {
260- let V = split(y, "_")[0]
261- if (!(E(ac.caller)))
294+@Callable(ae)
295+func destroyAssetAndTransfer (A,ay) = {
296+ let X = split(A, "_")[0]
297+ if (!(G(ae.caller)))
262298 then throw("Only the admin can perform this operation")
263299 else {
264- let Y = r(x(y))
265- let O = s(y)
266- let P = invoke(Address(b), "arbitraryAddCoins", [an, O], nil)
267- if ((P == P))
300+ let aa = t(z(A))
301+ let Q = u(A)
302+ let R = invoke(Address(b), "arbitraryAddCoins", [ay, Q], nil)
303+ if ((R == R))
268304 then {
269- let Q = q((Y + "_Power"))
270- let N = l[value(indexOf(h, V))]
271- let R = invoke(Address(c), "setUserPower", [toString(ac.caller), (Q - N)], nil)
272- if ((R == R))
305+ let S = s((aa + "_Power"))
306+ let P = n[value(indexOf(j, X))]
307+ let T = invoke(Address(c), "setUserPower", [toString(ae.caller), (S - P)], nil)
308+ if ((T == T))
273309 then {
274- let o = R
275- if ($isInstanceOf(o, "Int"))
310+ let q = T
311+ if ($isInstanceOf(q, "Int"))
276312 then {
277- let ab = o
278-[DeleteEntry(y)]
313+ let ad = q
314+[DeleteEntry(A)]
279315 }
280316 else throw("Incorrect invoke result")
281317 }
287323
288324
289325
290-@Callable(ac)
291-func destroyAssetFromUser (y) = {
292- let V = split(y, "_")[0]
293- if (!(S(toString(ac.caller), y)))
326+@Callable(ae)
327+func destroyAssetFromUser (A) = {
328+ let X = split(A, "_")[0]
329+ if (!(U(toString(ae.caller), A)))
294330 then throw("You don't own this asset")
295331 else {
296- let O = s(y)
297- let Q = q((toString(ac.caller) + "_Power"))
298- let N = l[value(indexOf(h, V))]
299- let R = invoke(Address(c), "setUserPower", [toString(ac.caller), (Q - N)], nil)
300- if ((R == R))
332+ let Q = u(A)
333+ let S = s((toString(ae.caller) + "_Power"))
334+ let P = n[value(indexOf(j, X))]
335+ let T = invoke(Address(c), "setUserPower", [toString(ae.caller), (S - P)], nil)
336+ if ((T == T))
301337 then {
302- let o = R
303- if ($isInstanceOf(o, "Int"))
338+ let q = T
339+ if ($isInstanceOf(q, "Int"))
304340 then {
305- let ab = o
306-[DeleteEntry(y), ScriptTransfer(ac.caller, O, a)]
341+ let ad = q
342+[DeleteEntry(A), ScriptTransfer(ae.caller, Q, a)]
307343 }
308344 else throw("Incorrect invoke result")
309345 }
313349
314350
315351
316-@Callable(ac)
317-func setNationOwner (ao,X) = if (E(ac.caller))
318- then $Tuple2([StringEntry((ao + "_Owner"), X)], true)
352+@Callable(ae)
353+func setNationOwner (az,Z) = if (G(ae.caller))
354+ then $Tuple2([StringEntry((az + "_Owner"), Z)], true)
319355 else {
320- let ap = r((ao + "_Owner"))
321- if ((ap != toString(ac.caller)))
356+ let aA = t((az + "_Owner"))
357+ if ((aA != toString(ae.caller)))
322358 then throw("You are not the nation owner")
323- else [StringEntry((ao + "_Owner"), X)]
359+ else [StringEntry((az + "_Owner"), Z)]
324360 }
325361
326362
327363
328-@Callable(ac)
329-func buyNationItem (y,ad) = {
330- let V = split(y, "_")[0]
331- let aq = q(toString(ac.caller))
332- let ar = q(ad)
333- if ((aq != ar))
364+@Callable(ae)
365+func buyNationItem (A,af) = {
366+ let X = split(A, "_")[0]
367+ let aB = s(toString(ae.caller))
368+ let aC = s(af)
369+ if ((aB != aC))
334370 then throw("you can buy assets only from your nation")
335- else if (!(S(ad, y)))
371+ else if (!(U(af, A)))
336372 then throw("The asset does not belong to the nation")
337- else if (!(U(V)))
373+ else if (!(W(X)))
338374 then throw("this asset cannot be sold by the nation")
339375 else {
340- let ae = value(indexOf(h, V))
341- let as = j[ae]
342- let ak = value(ac.payments[0].amount)
343- if ((as > ak))
344- then throw(("You provided less $heg than the needed cost for buying this " + V))
345- else if ((ac.payments[0].assetId != a))
376+ let ah = value(indexOf(j, X))
377+ let aD = l[ah]
378+ let av = value(ae.payments[0].amount)
379+ if ((aD > av))
380+ then throw(("You provided less $heg than the needed cost for buying this " + X))
381+ else if ((ae.payments[0].assetId != a))
346382 then throw("Only $HEG payments allowed")
347383 else {
348- let at = invoke(Address(b), "increaseNationWallet", [ad, ak], nil)
349- let o = at
350- if ($isInstanceOf(o, "Int"))
384+ let aE = invoke(Address(b), "increaseNationWallet", [af, av], nil)
385+ let q = aE
386+ if ($isInstanceOf(q, "Int"))
351387 then {
352- let p = o
353- (W(y, toString(ac.caller)) :+ ScriptTransfer(Address(b), ak, a))
388+ let r = q
389+ (Y(A, toString(ae.caller)) :+ ScriptTransfer(Address(b), av, a))
354390 }
355391 else throw("Error transferring SHEG to nations wallet")
356392 }
359395
360396
361397
362-@Callable(ac)
363-func AddAssetFromMarkeplace (y,Y,au) = if (!(E(ac.caller)))
398+@Callable(ae)
399+func AddAssetFromMarkeplace (A,aa,aF) = if (!(G(ae.caller)))
364400 then throw("You are not allowed to perform this operation")
365- else $Tuple2([StringEntry(x(y), Y), IntegerEntry(y, au)], Y)
401+ else $Tuple2([StringEntry(z(A), aa), IntegerEntry(A, aF)], aa)
366402
367403
368404
369-@Callable(ac)
370-func TransferAssetToMarketplace (y,av) = if (!(S(toString(ac.caller), y)))
405+@Callable(ae)
406+func TransferAssetToMarketplace (A,aG) = if (!(U(toString(ae.caller), A)))
371407 then throw("You are not the owner of this asset")
372408 else {
373- let au = s(y)
374- let aw = invoke(Address(d), "putOnSale", [y, au, av], nil)
375- let o = aw
376- if ($isInstanceOf(o, "Int"))
409+ let aF = u(A)
410+ let aH = invoke(Address(d), "putOnSale", [A, aF, aG], nil)
411+ let q = aH
412+ if ($isInstanceOf(q, "Int"))
377413 then {
378- let ax = o
379-[DeleteEntry(x(y)), DeleteEntry(y)]
414+ let at = q
415+[DeleteEntry(z(A)), DeleteEntry(A)]
380416 }
381417 else throw("Error putting the item on the marketplace")
382418 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = base58'AFQS5E4ELtxex3iANtWtUU2V2oWJZSo8VVnK8z3VFmqf'
55
66 let b = base58'3MyDGEoKp1gF4LSRknk9vSuDEyrwuYXcQEQ'
77
88 let c = base58'3MvyzDtzWWV5MZ1GP8JfQhhQqiGU4Nbifdy'
99
1010 let d = base58'3Mra7mjPipcQd5sJaRmXK8xgS4scb8gPF4A'
1111
1212 let e = addressFromStringValue("3MpNtiPSRSq6NnaQYk38BfWSzZcgAYTyrQ9")
1313
14-let f = "BUILD_STARTED"
14+let f = addressFromStringValue("3MuSrXTTiwo9bdoD6FeaBpMUYMiU5saDv2U")
1515
16-let g = "BUILD_FINISHED"
16+let g = addressFromStringValue("3Mv3mr3uNXdpgkVPApbGEJjMQXqau37DY5i")
1717
18-let h = ["Nation", "City", "Barrack", "Barn", "Warrior", "Settler", "Explorer"]
18+let h = "BUILD_STARTED"
1919
20-let i = [0, 1000000000, 5000000000, 5000000000, 500000000, 10000000000, 100000000]
20+let i = "BUILD_FINISHED"
2121
22-let j = [0, 0, 0, 0, 0, 10000000000, 100000000]
22+let j = ["Nation", "City", "Barrack", "Barn", "Warrior", "Settler", "Explorer"]
2323
24-let k = [0, 4, 4, 4, 2, 2, 2]
24+let k = [0, 0, 5000000000, 5000000000, 500000000, 10000000000, 100000000]
2525
26-let l = [0, 1000, 500, 500, 0, 0, 0]
26+let l = [0, 0, 0, 0, 0, 10000000000, 100000000]
2727
28-func m (n) = {
29- let o = getInteger(Address(b), n)
30- if ($isInstanceOf(o, "Int"))
28+let m = [0, 4, 4, 4, 2, 2, 2]
29+
30+let n = [0, 1000, 50, 50, 1, 1, 1]
31+
32+func o (p) = {
33+ let q = getInteger(Address(b), p)
34+ if ($isInstanceOf(q, "Int"))
3135 then {
32- let p = o
33- p
36+ let r = q
37+ r
3438 }
3539 else 0
3640 }
3741
3842
39-func q (n) = {
40- let o = getInteger(Address(c), n)
41- if ($isInstanceOf(o, "Int"))
43+func s (p) = {
44+ let q = getInteger(Address(c), p)
45+ if ($isInstanceOf(q, "Int"))
4246 then {
43- let p = o
44- p
47+ let r = q
48+ r
4549 }
4650 else 0
4751 }
4852
4953
50-func r (n) = {
51- let o = getString(this, n)
52- if ($isInstanceOf(o, "String"))
54+func t (p) = {
55+ let q = getString(this, p)
56+ if ($isInstanceOf(q, "String"))
5357 then {
54- let p = o
55- p
58+ let r = q
59+ r
5660 }
5761 else ""
5862 }
5963
6064
61-func s (n) = {
62- let o = getInteger(this, n)
63- if ($isInstanceOf(o, "Int"))
65+func u (p) = {
66+ let q = getInteger(this, p)
67+ if ($isInstanceOf(q, "Int"))
6468 then {
65- let p = o
66- p
69+ let r = q
70+ r
6771 }
6872 else 0
6973 }
7074
7175
72-func t (u,v) = ((v + "_") + toBase58String(u))
76+func v (w,x) = ((x + "_") + toBase58String(w))
7377
7478
75-func w (u,v) = (t(u, v) + "_Owner")
79+func y (w,x) = (v(w, x) + "_Owner")
7680
7781
78-func x (y) = (y + "_Owner")
82+func z (A) = (A + "_Owner")
7983
8084
81-func z (A,u,v) = (((A + "_") + t(u, v)) + "_fh")
85+func B (C,w,x) = (((C + "_") + v(w, x)) + "_fh")
8286
8387
84-func B (A,u,v) = (((A + "_") + t(u, v)) + "_status")
88+func D (C,w,x) = (((C + "_") + v(w, x)) + "_status")
8589
8690
87-func C (D) = (D + "_Treasury")
91+func E (F) = (F + "_Treasury")
8892
8993
90-func E (F) = if (if (if (if ((F == e))
94+func G (H) = if (if (if (if ((H == e))
9195 then true
92- else (F == this))
96+ else (H == this))
9397 then true
94- else (F.bytes == c))
98+ else (H.bytes == c))
9599 then true
96- else (F.bytes == b))
100+ else (H.bytes == b))
97101 then true
98- else (F.bytes == d)
102+ else (H.bytes == d)
99103
100104
101-func G (F,H,I,J,K) = {
102- let L = getIntegerValue(this, K)
103- if ((L > height))
104- then throw((((("Building is not finished yet " + toString((L - height))) + " blocks remaining, it will take around ") + toString((L - height))) + " minutes"))
105+func I (H,J,K,L,M) = {
106+ let N = getIntegerValue(this, M)
107+ if ((N > height))
108+ then throw((((("Building is not finished yet " + toString((N - height))) + " blocks remaining, it will take around ") + toString((N - height))) + " minutes"))
105109 else {
106- let M = value(indexOf(h, H))
107- let N = l[M]
108- let O = i[M]
109- let P = invoke(Address(b), "Pay", [F, O], nil)
110- if ((P == P))
111- then if ((N > 0))
110+ let O = value(indexOf(j, J))
111+ let P = n[O]
112+ let Q = ((k[O] * 20) / 100)
113+ let R = invoke(Address(b), "Pay", [H, Q], nil)
114+ if ((R == R))
115+ then if ((P > 0))
112116 then {
113- let Q = q((F + "_Power"))
114- let R = invoke(Address(c), "setUserPower", [F, (Q + N)], nil)
115- if ((R == R))
116- then [IntegerEntry(I, O), DeleteEntry(J), DeleteEntry(K)]
117+ let S = s((H + "_Power"))
118+ let T = invoke(Address(c), "setUserPower", [H, (S + P)], nil)
119+ if ((T == T))
120+ then [IntegerEntry(K, Q), DeleteEntry(L), DeleteEntry(M)]
117121 else throw("Strict value is not equal to itself.")
118122 }
119- else [IntegerEntry(I, O), DeleteEntry(J), DeleteEntry(K)]
123+ else [IntegerEntry(K, Q), DeleteEntry(L), DeleteEntry(M)]
120124 else throw("Strict value is not equal to itself.")
121125 }
122126 }
123127
124128
125-func S (F,I) = {
126- let T = r((I + "_Owner"))
127- (T == F)
129+func U (H,K) = {
130+ let V = t((K + "_Owner"))
131+ (V == H)
128132 }
129133
130134
131-func U (V) = if ((V == "Settler"))
135+func W (X) = if ((X == "Settler"))
132136 then true
133- else (V == "Explorer")
137+ else (X == "Explorer")
134138
135139
136-func W (y,X) = {
137- let V = split(y, "_")[0]
138- let Y = r(x(y))
139- let N = l[value(indexOf(h, V))]
140- if ((N > 0))
140+func Y (A,Z) = {
141+ let X = split(A, "_")[0]
142+ let aa = t(z(A))
143+ let P = n[value(indexOf(j, X))]
144+ if ((P > 0))
141145 then {
142- let Q = q((Y + "_Power"))
143- let R = invoke(Address(c), "setUserPower", [Y, (Q - N)], nil)
144- if ((R == R))
145- then if ((R != (Q - N)))
146+ let S = s((aa + "_Power"))
147+ let T = invoke(Address(c), "setUserPower", [aa, (S - P)], nil)
148+ if ((T == T))
149+ then if ((T != (S - P)))
146150 then throw("Incorrect invoke result")
147151 else {
148- let Z = q((X + "_Power"))
149- let aa = invoke(Address(c), "setUserPower", [X, (Z + N)], nil)
150- if ((aa == aa))
152+ let ab = s((Z + "_Power"))
153+ let ac = invoke(Address(c), "setUserPower", [Z, (ab + P)], nil)
154+ if ((ac == ac))
151155 then {
152- let o = aa
153- if ($isInstanceOf(o, "Int"))
156+ let q = ac
157+ if ($isInstanceOf(q, "Int"))
154158 then {
155- let ab = o
156-[StringEntry(x(y), X)]
159+ let ad = q
160+[StringEntry(z(A), Z)]
157161 }
158162 else throw("Incorrect invoke result")
159163 }
160164 else throw("Strict value is not equal to itself.")
161165 }
162166 else throw("Strict value is not equal to itself.")
163167 }
164- else [StringEntry(x(y), X)]
168+ else [StringEntry(z(A), Z)]
165169 }
166170
167171
168-@Callable(ac)
169-func StartBuild (V,ad) = if (!(containsElement(h, V)))
170- then throw("This asset is not amanged by the system")
172+@Callable(ae)
173+func StartBuild (X,af,ag) = if (!(containsElement(j, X)))
174+ then throw("This asset is not managed by the system")
171175 else {
172- let ae = value(indexOf(h, V))
173- let af = k[ae]
174- let ag = i[ae]
175- if (U(V))
176- then if (if (!(S(toString(ac.caller), ad)))
177- then !(E(ac.caller))
176+ let ah = value(indexOf(j, X))
177+ let ai = m[ah]
178+ let aj = k[ah]
179+ let ak = ((aj * 5) / 100)
180+ let al = ((aj * 10) / 100)
181+ let am = ((aj * 65) / 100)
182+ let an = (((aj - ak) - al) - am)
183+ if (W(X))
184+ then if (if (!(U(toString(ae.caller), af)))
185+ then !(G(ae.caller))
178186 else false)
179187 then throw("You are not authorized to perform this operation")
180188 else {
181- let ah = m(C(ad))
182- if ((ag > ah))
189+ let ao = o(E(af))
190+ if ((aj > ao))
183191 then throw("The nation hasn't enough funds")
184192 else {
185- let ai = invoke(Address(b), "decreaseNationWallet", [ad, ag], nil)
186- let o = ai
187- if ($isInstanceOf(o, "Int"))
193+ let ap = invoke(Address(b), "decreaseNationWallet", [af, aj], nil)
194+ let q = ap
195+ if ($isInstanceOf(q, "Int"))
188196 then {
189- let ab = o
190- let R = invoke(Address(b), "arbitraryAddCoins", [ad, ag], nil)
191- let aj = R
192- if ($isInstanceOf(aj, "Int"))
197+ let ad = q
198+ let T = invoke(Address(b), "arbitraryAddCoins", [af, an], nil)
199+ let aq = T
200+ if ($isInstanceOf(aq, "Int"))
193201 then {
194- let p = aj
195-[StringEntry(B(toString(ac.originCaller), ac.transactionId, V), f), StringEntry(w(ac.transactionId, V), ad), IntegerEntry(z(toString(ac.originCaller), ac.transactionId, V), (height + af))]
202+ let r = aq
203+ let ar = invoke(Address(b), "distributeNationPayRewards", [aj], nil)
204+ let as = ar
205+ if ($isInstanceOf(as, "Int"))
206+ then {
207+ let at = as
208+[StringEntry(D(toString(ae.originCaller), ae.transactionId, X), h), StringEntry(y(ae.transactionId, X), af), IntegerEntry(B(toString(ae.originCaller), ae.transactionId, X), (height + ai))]
209+ }
210+ else throw("Error Distributing asset rewards")
196211 }
197212 else throw("Error Depositing nation funds")
198213 }
199214 else throw("Error Depositing nation funds")
200215 }
201216 }
202- else {
203- let ak = value(ac.payments[0].amount)
204- if ((ag > ak))
205- then throw(("You provided less $heg than the needed cost for building this " + V))
206- else if ((ac.payments[0].assetId != a))
207- then throw("Only $HEG payments allowed")
208- else {
209- let R = invoke(Address(b), "Deposit", nil, ac.payments)
210- let o = R
211- if ($isInstanceOf(o, "Int"))
212- then {
213- let ab = o
214-[StringEntry(B(toString(ac.originCaller), ac.transactionId, V), f), StringEntry(w(ac.transactionId, V), toString(ac.originCaller)), IntegerEntry(z(toString(ac.originCaller), ac.transactionId, V), (height + af))]
215- }
216- else throw("Incorrect invoke result")
217- }
218- }
217+ else if ((X == "City"))
218+ then if (!(U(toString(ae.caller), ag)))
219+ then throw("You don't own the settler or has been destroyed")
220+ else {
221+ let au = u(ag)
222+ let T = invoke(Address(b), "NoPaymentDeposit", [toString(ae.caller), an], nil)
223+ let q = T
224+ if ($isInstanceOf(q, "Int"))
225+ then {
226+ let ad = q
227+ let ar = invoke(Address(b), "distributeNationPayRewards", [aj], nil)
228+ let aq = ar
229+ if ($isInstanceOf(aq, "Int"))
230+ then {
231+ let at = aq
232+[DeleteEntry(ag), StringEntry(D(toString(ae.originCaller), ae.transactionId, X), h), StringEntry(y(ae.transactionId, X), af), IntegerEntry(B(toString(ae.originCaller), ae.transactionId, X), (height + ai))]
233+ }
234+ else throw("Error Distributing asset rewards")
235+ }
236+ else throw("Error adding deposit")
237+ }
238+ else {
239+ let av = value(ae.payments[0].amount)
240+ if ((aj > av))
241+ then throw(("You provided less $heg than the needed cost for building this " + X))
242+ else if ((ae.payments[0].assetId != a))
243+ then throw("Only $HEG payments allowed")
244+ else {
245+ let T = invoke(Address(b), "Deposit", nil, [AttachedPayment(a, an)])
246+ let q = T
247+ if ($isInstanceOf(q, "Int"))
248+ then {
249+ let ad = q
250+[StringEntry(D(toString(ae.originCaller), ae.transactionId, X), h), StringEntry(y(ae.transactionId, X), toString(ae.originCaller)), IntegerEntry(B(toString(ae.originCaller), ae.transactionId, X), (height + ai)), ScriptTransfer(e, ak, a), ScriptTransfer(f, al, a), ScriptTransfer(g, am, a)]
251+ }
252+ else throw("Incorrect invoke result")
253+ }
254+ }
219255 }
220256
221257
222258
223-@Callable(ac)
224-func FinishBuild (al,H,ad) = {
225- let u = fromBase58String(al)
226- let J = B(toString(ac.caller), u, H)
227- let K = z(toString(ac.caller), u, H)
228- let I = t(u, H)
229- let T = r(w(u, H))
230- if (U(H))
231- then if (if (!(S(toString(ac.caller), ad)))
232- then !(E(ac.caller))
259+@Callable(ae)
260+func FinishBuild (aw,J,af) = {
261+ let w = fromBase58String(aw)
262+ let L = D(toString(ae.caller), w, J)
263+ let M = B(toString(ae.caller), w, J)
264+ let K = v(w, J)
265+ let V = t(y(w, J))
266+ if (W(J))
267+ then if (if (!(U(toString(ae.caller), af)))
268+ then !(G(ae.caller))
233269 else false)
234270 then throw("You are not authorized to perform this operation")
235- else G(ad, H, I, J, K)
236- else if ((T != toString(ac.caller)))
237- then throw(("You cannot claim other's players " + H))
271+ else I(af, J, K, L, M)
272+ else if ((V != toString(ae.caller)))
273+ then throw(("You cannot claim other's players " + J))
238274 else {
239- let am = r(J)
240- if ((am == ""))
275+ let ax = t(L)
276+ if ((ax == ""))
241277 then throw("No pending operations for this asset")
242- else G(toString(ac.caller), H, I, J, K)
278+ else I(toString(ae.caller), J, K, L, M)
243279 }
244280 }
245281
246282
247283
248-@Callable(ac)
249-func transferOwnership (y,X) = {
250- let V = split(y, "_")[0]
251- if (!(E(ac.caller)))
284+@Callable(ae)
285+func transferOwnership (A,Z) = {
286+ let X = split(A, "_")[0]
287+ if (!(G(ae.caller)))
252288 then throw("Only the admin can perform this operation")
253- else $Tuple2(W(y, X), X)
289+ else $Tuple2(Y(A, Z), Z)
254290 }
255291
256292
257293
258-@Callable(ac)
259-func destroyAssetAndTransfer (y,an) = {
260- let V = split(y, "_")[0]
261- if (!(E(ac.caller)))
294+@Callable(ae)
295+func destroyAssetAndTransfer (A,ay) = {
296+ let X = split(A, "_")[0]
297+ if (!(G(ae.caller)))
262298 then throw("Only the admin can perform this operation")
263299 else {
264- let Y = r(x(y))
265- let O = s(y)
266- let P = invoke(Address(b), "arbitraryAddCoins", [an, O], nil)
267- if ((P == P))
300+ let aa = t(z(A))
301+ let Q = u(A)
302+ let R = invoke(Address(b), "arbitraryAddCoins", [ay, Q], nil)
303+ if ((R == R))
268304 then {
269- let Q = q((Y + "_Power"))
270- let N = l[value(indexOf(h, V))]
271- let R = invoke(Address(c), "setUserPower", [toString(ac.caller), (Q - N)], nil)
272- if ((R == R))
305+ let S = s((aa + "_Power"))
306+ let P = n[value(indexOf(j, X))]
307+ let T = invoke(Address(c), "setUserPower", [toString(ae.caller), (S - P)], nil)
308+ if ((T == T))
273309 then {
274- let o = R
275- if ($isInstanceOf(o, "Int"))
310+ let q = T
311+ if ($isInstanceOf(q, "Int"))
276312 then {
277- let ab = o
278-[DeleteEntry(y)]
313+ let ad = q
314+[DeleteEntry(A)]
279315 }
280316 else throw("Incorrect invoke result")
281317 }
282318 else throw("Strict value is not equal to itself.")
283319 }
284320 else throw("Strict value is not equal to itself.")
285321 }
286322 }
287323
288324
289325
290-@Callable(ac)
291-func destroyAssetFromUser (y) = {
292- let V = split(y, "_")[0]
293- if (!(S(toString(ac.caller), y)))
326+@Callable(ae)
327+func destroyAssetFromUser (A) = {
328+ let X = split(A, "_")[0]
329+ if (!(U(toString(ae.caller), A)))
294330 then throw("You don't own this asset")
295331 else {
296- let O = s(y)
297- let Q = q((toString(ac.caller) + "_Power"))
298- let N = l[value(indexOf(h, V))]
299- let R = invoke(Address(c), "setUserPower", [toString(ac.caller), (Q - N)], nil)
300- if ((R == R))
332+ let Q = u(A)
333+ let S = s((toString(ae.caller) + "_Power"))
334+ let P = n[value(indexOf(j, X))]
335+ let T = invoke(Address(c), "setUserPower", [toString(ae.caller), (S - P)], nil)
336+ if ((T == T))
301337 then {
302- let o = R
303- if ($isInstanceOf(o, "Int"))
338+ let q = T
339+ if ($isInstanceOf(q, "Int"))
304340 then {
305- let ab = o
306-[DeleteEntry(y), ScriptTransfer(ac.caller, O, a)]
341+ let ad = q
342+[DeleteEntry(A), ScriptTransfer(ae.caller, Q, a)]
307343 }
308344 else throw("Incorrect invoke result")
309345 }
310346 else throw("Strict value is not equal to itself.")
311347 }
312348 }
313349
314350
315351
316-@Callable(ac)
317-func setNationOwner (ao,X) = if (E(ac.caller))
318- then $Tuple2([StringEntry((ao + "_Owner"), X)], true)
352+@Callable(ae)
353+func setNationOwner (az,Z) = if (G(ae.caller))
354+ then $Tuple2([StringEntry((az + "_Owner"), Z)], true)
319355 else {
320- let ap = r((ao + "_Owner"))
321- if ((ap != toString(ac.caller)))
356+ let aA = t((az + "_Owner"))
357+ if ((aA != toString(ae.caller)))
322358 then throw("You are not the nation owner")
323- else [StringEntry((ao + "_Owner"), X)]
359+ else [StringEntry((az + "_Owner"), Z)]
324360 }
325361
326362
327363
328-@Callable(ac)
329-func buyNationItem (y,ad) = {
330- let V = split(y, "_")[0]
331- let aq = q(toString(ac.caller))
332- let ar = q(ad)
333- if ((aq != ar))
364+@Callable(ae)
365+func buyNationItem (A,af) = {
366+ let X = split(A, "_")[0]
367+ let aB = s(toString(ae.caller))
368+ let aC = s(af)
369+ if ((aB != aC))
334370 then throw("you can buy assets only from your nation")
335- else if (!(S(ad, y)))
371+ else if (!(U(af, A)))
336372 then throw("The asset does not belong to the nation")
337- else if (!(U(V)))
373+ else if (!(W(X)))
338374 then throw("this asset cannot be sold by the nation")
339375 else {
340- let ae = value(indexOf(h, V))
341- let as = j[ae]
342- let ak = value(ac.payments[0].amount)
343- if ((as > ak))
344- then throw(("You provided less $heg than the needed cost for buying this " + V))
345- else if ((ac.payments[0].assetId != a))
376+ let ah = value(indexOf(j, X))
377+ let aD = l[ah]
378+ let av = value(ae.payments[0].amount)
379+ if ((aD > av))
380+ then throw(("You provided less $heg than the needed cost for buying this " + X))
381+ else if ((ae.payments[0].assetId != a))
346382 then throw("Only $HEG payments allowed")
347383 else {
348- let at = invoke(Address(b), "increaseNationWallet", [ad, ak], nil)
349- let o = at
350- if ($isInstanceOf(o, "Int"))
384+ let aE = invoke(Address(b), "increaseNationWallet", [af, av], nil)
385+ let q = aE
386+ if ($isInstanceOf(q, "Int"))
351387 then {
352- let p = o
353- (W(y, toString(ac.caller)) :+ ScriptTransfer(Address(b), ak, a))
388+ let r = q
389+ (Y(A, toString(ae.caller)) :+ ScriptTransfer(Address(b), av, a))
354390 }
355391 else throw("Error transferring SHEG to nations wallet")
356392 }
357393 }
358394 }
359395
360396
361397
362-@Callable(ac)
363-func AddAssetFromMarkeplace (y,Y,au) = if (!(E(ac.caller)))
398+@Callable(ae)
399+func AddAssetFromMarkeplace (A,aa,aF) = if (!(G(ae.caller)))
364400 then throw("You are not allowed to perform this operation")
365- else $Tuple2([StringEntry(x(y), Y), IntegerEntry(y, au)], Y)
401+ else $Tuple2([StringEntry(z(A), aa), IntegerEntry(A, aF)], aa)
366402
367403
368404
369-@Callable(ac)
370-func TransferAssetToMarketplace (y,av) = if (!(S(toString(ac.caller), y)))
405+@Callable(ae)
406+func TransferAssetToMarketplace (A,aG) = if (!(U(toString(ae.caller), A)))
371407 then throw("You are not the owner of this asset")
372408 else {
373- let au = s(y)
374- let aw = invoke(Address(d), "putOnSale", [y, au, av], nil)
375- let o = aw
376- if ($isInstanceOf(o, "Int"))
409+ let aF = u(A)
410+ let aH = invoke(Address(d), "putOnSale", [A, aF, aG], nil)
411+ let q = aH
412+ if ($isInstanceOf(q, "Int"))
377413 then {
378- let ax = o
379-[DeleteEntry(x(y)), DeleteEntry(y)]
414+ let at = q
415+[DeleteEntry(z(A)), DeleteEntry(A)]
380416 }
381417 else throw("Error putting the item on the marketplace")
382418 }
383419
384420

github/deemru/w8io/169f3d6 
186.94 ms