tx · C5cdeyDpgVhcjhJ7zXRkzPegMC5C8D3JfWGGCyPQ8eVv

3N8WDKbqGox5Eky326PHHT7rUyrby5MXdmb:  -0.03000000 Waves

2022.06.29 20:14 [2118021] smart account 3N8WDKbqGox5Eky326PHHT7rUyrby5MXdmb > SELF 0.00000000 Waves

{ "type": 13, "id": "C5cdeyDpgVhcjhJ7zXRkzPegMC5C8D3JfWGGCyPQ8eVv", "fee": 3000000, "feeAssetId": null, "timestamp": 1656522917098, "version": 2, "chainId": 84, "sender": "3N8WDKbqGox5Eky326PHHT7rUyrby5MXdmb", "senderPublicKey": "FWSsBbeCwLVkekWhvNKtX6JkrZiruRybKKVuiS3F4bqN", "proofs": [ "5LyEw8fDbGmNxqXzK9ZV7vaop1bX9qJu5mcL6bEee6L7JG5vFe2s7YwXjS3kdGCPfZLRYipVEWVR4horimptoVuH" ], "script": "base64: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AgkAASwAAAACBQAAAAxhZ2dyQXNzZXRrZXkCAAAABl9Pd25lcgUAAAAGY2FsbGVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAxhZ2dyQXNzZXRrZXkJAABkAAAAAgUAAAAFY29pbnMFAAAACmFzc2V0Q29pbnMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAMYWdnckFzc2V0a2V5AgAAAARfUXR5CQAAZAAAAAIFAAAAA3F0eQAAAAAAAAAAAQkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABBQAAABFCdWlsZGluZ1N0YXR1c0tleQkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABBQAAAA9maW5pc2hIZWlnaHRLZXkFAAAAA25pbAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAIYXNzZXRLZXkFAAAACmFzc2V0Q29pbnMJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQUAAAARQnVpbGRpbmdTdGF0dXNLZXkJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQUAAAAPZmluaXNoSGVpZ2h0S2V5BQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQAAAA9jaGVja0Fzc2V0T3duZXIAAAACAAAABmNhbGxlcgAAAAhhc3NldEtleQQAAAAKYXNzZXRPd25lcgkBAAAADHRyeUdldFN0cmluZwAAAAEJAQAAABZnZXRBc3NldE93bmVyS2V5U3RyaW5nAAAAAQUAAAAIYXNzZXRLZXkJAAAAAAAAAgUAAAAKYXNzZXRPd25lcgUAAAAGY2FsbGVyAQAAABVpc05hdGlvblJlc2VydmVkQXNzZXQAAAACAAAABE5hbWUAAAAFTGV2ZWwEAAAAAWsJAQAAAAhnZXRBTEtleQAAAAIFAAAABE5hbWUFAAAABUxldmVsCQEAAAARY29uZlRyeUdldEJvb2xlYW4AAAABCQABLAAAAAIFAAAAAWsCAAAAD19OYXRpb25SZXNlcnZlZAEAAAAZaW50ZXJuYWxUcmFzbmZlck93bmVyc2hpcAAAAAIAAAAHYXNzZXRJZAAAAAhuZXdPd25lcgQAAAAGY2h1bmtzCQEAAAARZ2V0QXNzZXRUeXBlTGV2ZWwAAAABBQAAAAdhc3NldElkBAAAAAxzdHJBc3NldFR5cGUIBQAAAAZjaHVua3MAAAACXzEEAAAABWxldmVsCAUAAAAGY2h1bmtzAAAAAl8yBAAAAAFrCQEAAAAIZ2V0QUxLZXkAAAACBQAAAAxzdHJBc3NldFR5cGUFAAAABWxldmVsBAAAAAhvbGRPd25lcgkBAAAADHRyeUdldFN0cmluZwAAAAEJAQAAABZnZXRBc3NldE93bmVyS2V5U3RyaW5nAAAAAQUAAAAHYXNzZXRJZAQAAAAKYXNzZXRQb3dlcgkBAAAAEWNvbmZUcnlHZXRJbnRlZ2VyAAAAAQkAASwAAAACBQAAAAFrAgAAAAZfUG93ZXIDCQAAZgAAAAIFAAAACmFzc2V0UG93ZXIAAAAAAAAAAAAEAAAADGN1cnJlbnRQb3dlcgkBAAAAFG5hdGlvbnNUcnlHZXRJbnRlZ2VyAAAAAQkAASwAAAACBQAAAAhvbGRPd25lcgIAAAAGX1Bvd2VyBAAAAAJwdwkAA/wAAAAECQEAAAAHQWRkcmVzcwAAAAEFAAAADm5hdGlvbnNBZGRyZXNzAgAAAAxzZXRVc2VyUG93ZXIJAARMAAAAAgUAAAAIb2xkT3duZXIJAARMAAAAAgkAAGUAAAACBQAAAAxjdXJyZW50UG93ZXIFAAAACmFzc2V0UG93ZXIFAAAAA25pbAUAAAADbmlsAwkAAAAAAAACBQAAAAJwdwUAAAACcHcDCQEAAAACIT0AAAACBQAAAAJwdwkAAGUAAAACBQAAAAxjdXJyZW50UG93ZXIFAAAACmFzc2V0UG93ZXIJAAACAAAAAQIAAAAXSW5jb3JyZWN0IGludm9rZSByZXN1bHQEAAAAD25ld2N1cnJlbnRQb3dlcgkBAAAAFG5hdGlvbnNUcnlHZXRJbnRlZ2VyAAAAAQkAASwAAAACBQAAAAhuZXdPd25lcgIAAAAGX1Bvd2VyBAAAAANwdzIJAAP8AAAABAkBAAAAB0FkZHJlc3MAAAABBQAAAA5uYXRpb25zQWRkcmVzcwIAAAAMc2V0VXNlclBvd2VyCQAETAAAAAIFAAAACG5ld093bmVyCQAETAAAAAIJAABkAAAAAgUAAAAPbmV3Y3VycmVudFBvd2VyBQAAAAphc3NldFBvd2VyBQAAAANuaWwFAAAAA25pbAMJAAAAAAAAAgUAAAADcHcyBQAAAANwdzIEAAAAByRtYXRjaDAFAAAAA3B3MgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFyBQAAAAckbWF0Y2gwCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABZnZXRBc3NldE93bmVyS2V5U3RyaW5nAAAAAQUAAAAHYXNzZXRJZAUAAAAIbmV3T3duZXIFAAAAA25pbAkAAAIAAAABAgAAABdJbmNvcnJlY3QgaW52b2tlIHJlc3VsdAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABZnZXRBc3NldE93bmVyS2V5U3RyaW5nAAAAAQUAAAAHYXNzZXRJZAUAAAAIbmV3T3duZXIFAAAAA25pbAEAAAAcQ2hlY2tBc3NldEJ1aWxkYWJsZVNhY3JpZmljZQAAAAMAAAAFQUxLZXkAAAAGY2FsbGVyAAAADFNhY3JpZmljZUtleQQAAAAIYXNzZXRTYWMJAQAAABBjb25mVHJ5R2V0U3RyaW5nAAAAAQkAASwAAAACBQAAAAVBTEtleQIAAAAPX1NhY3JpZmljZUFzc2V0BAAAAAthc3NldFNhY2x2bAkBAAAAEWNvbmZUcnlHZXRJbnRlZ2VyAAAAAQkAASwAAAACBQAAAAVBTEtleQIAAAAUX1NhY3JpZmljZUFzc2V0TGV2ZWwDCQAAAAAAAAIFAAAACGFzc2V0U2FjAgAAAAAGAwkBAAAAASEAAAABCQEAAAAPY2hlY2tBc3NldE93bmVyAAAAAgUAAAAGY2FsbGVyBQAAAAxTYWNyaWZpY2VLZXkJAAACAAAAAQIAAAAseW91IGFyZSBub3QgdGhlIG93bmVyIG9mIHRoZSBTYWNyaWZpY2UgYXNzZXQEAAAABmNodW5rcwkBAAAAEWdldEFzc2V0VHlwZUxldmVsAAAAAQUAAAAMU2FjcmlmaWNlS2V5AwMJAQAAAAIhPQAAAAIFAAAACGFzc2V0U2FjCAUAAAAGY2h1bmtzAAAAAl8xBgkBAAAAAiE9AAAAAgUAAAALYXNzZXRTYWNsdmwIBQAAAAZjaHVua3MAAAACXzIJAAACAAAAAQIAAAAudGhlIHNhY3JpZmljZUFzc2V0IGhhcyB0aGUgd3JvbmcgdHlwZSBvciBsZXZlbAYBAAAAGUNoZWNrQXNzZXRCdWlsZGFibGVOYXRpb24AAAAEAAAABE5hbWUAAAAFTGV2ZWwAAAAJTmF0aW9uS2V5AAAADFNhY3JpZmljZUtleQQAAAAHY25mZ0tleQkBAAAACGdldEFMS2V5AAAAAgUAAAAETmFtZQUAAAAFTGV2ZWwEAAAAA3RlYwkBAAAAEGNvbmZUcnlHZXRTdHJpbmcAAAABCQABLAAAAAIFAAAAB2NuZmdLZXkCAAAAFl9UZWNuaG9sb2d5X2Rpc2NvdmVyZWQDCQEAAAACIT0AAAACBQAAAAN0ZWMCAAAAAAMJAQAAABRuYXRpb25zVHJ5R2V0Qm9vbGVhbgAAAAEJAAEsAAAAAgkAASwAAAACBQAAAAlOYXRpb25LZXkCAAAAAV8FAAAAA3RlYwkBAAAAHENoZWNrQXNzZXRCdWlsZGFibGVTYWNyaWZpY2UAAAADBQAAAAdjbmZnS2V5BQAAAAlOYXRpb25LZXkFAAAADFNhY3JpZmljZUtleQcJAQAAABxDaGVja0Fzc2V0QnVpbGRhYmxlU2FjcmlmaWNlAAAAAwUAAAAHY25mZ0tleQUAAAAJTmF0aW9uS2V5BQAAAAxTYWNyaWZpY2VLZXkBAAAAF0NoZWNrQXNzZXRCdWlsZGFibGVVc2VyAAAABAAAAAROYW1lAAAABUxldmVsAAAABmNhbGxlcgAAAAxTYWNyaWZpY2VLZXkEAAAABmNuZktleQkBAAAACGdldEFMS2V5AAAAAgUAAAAETmFtZQUAAAAFTGV2ZWwEAAAACG5hdGlvbklkCQEAAAAUbmF0aW9uc1RyeUdldEludGVnZXIAAAABBQAAAAZjYWxsZXIDCQAAAAAAAAIFAAAACG5hdGlvbklkAAAAAAAAAAAABwQAAAADdGVjCQEAAAAQY29uZlRyeUdldFN0cmluZwAAAAEJAAEsAAAAAgUAAAAGY25mS2V5AgAAABZfVGVjbmhvbG9neV9kaXNjb3ZlcmVkAwkBAAAAAiE9AAAAAgUAAAADdGVjAgAAAAAEAAAACU5hdGlvbktleQkBAAAAE25hdGlvbnNUcnlHZXRTdHJpbmcAAAABCQABpAAAAAEFAAAACG5hdGlvbklkAwkBAAAAFG5hdGlvbnNUcnlHZXRCb29sZWFuAAAAAQkAASwAAAACCQABLAAAAAIFAAAACU5hdGlvbktleQIAAAABXwUAAAADdGVjCQEAAAAcQ2hlY2tBc3NldEJ1aWxkYWJsZVNhY3JpZmljZQAAAAMFAAAABmNuZktleQUAAAAGY2FsbGVyBQAAAAxTYWNyaWZpY2VLZXkHCQEAAAAcQ2hlY2tBc3NldEJ1aWxkYWJsZVNhY3JpZmljZQAAAAMFAAAABmNuZktleQUAAAAGY2FsbGVyBQAAAAxTYWNyaWZpY2VLZXkBAAAAE0NoZWNrQXNzZXRCdWlsZGFibGUAAAAFAAAABE5hbWUAAAAFTGV2ZWwAAAAGQ2FsbGVyAAAACU5hdGlvbktleQAAAAxTYWNyaWZpY2VLZXkDCQEAAAACIT0AAAACBQAAAAlOYXRpb25LZXkCAAAAAAkBAAAAGUNoZWNrQXNzZXRCdWlsZGFibGVOYXRpb24AAAAEBQAAAAROYW1lBQAAAAVMZXZlbAUAAAAJTmF0aW9uS2V5BQAAAAxTYWNyaWZpY2VLZXkJAQAAABdDaGVja0Fzc2V0QnVpbGRhYmxlVXNlcgAAAAQFAAAABE5hbWUFAAAABUxldmVsBQAAAAZDYWxsZXIFAAAADFNhY3JpZmljZUtleQAAAAsAAAABaQEAAAAKU3RhcnRCdWlsZAAAAAQAAAAMc3RyQXNzZXRUeXBlAAAABUxldmVsAAAACU5hdGlvbktleQAAAAxTYWNyaWZpY2VLZXkDCQEAAAABIQAAAAEJAQAAABNDaGVja0Fzc2V0QnVpbGRhYmxlAAAABQUAAAAMc3RyQXNzZXRUeXBlBQAAAAVMZXZlbAkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAACU5hdGlvbktleQUAAAAMU2FjcmlmaWNlS2V5CQAAAgAAAAECAAAAGllvdSBjYW5ub3QgYnVpbGQgdGhpcyBJdGVtBAAAAAdjbmZnS2V5CQEAAAAIZ2V0QUxLZXkAAAACBQAAAAxzdHJBc3NldFR5cGUFAAAABUxldmVsBAAAABBkZWxheUZvckJ1aWxkaW5nCQEAAAARY29uZlRyeUdldEludGVnZXIAAAABCQABLAAAAAIFAAAAB2NuZmdLZXkCAAAACl9CdWlsZFRpbWUEAAAADmFzc2V0QnVpbGRDb3N0CQEAAAARY29uZlRyeUdldEludGVnZXIAAAABCQABLAAAAAIFAAAAB2NuZmdLZXkCAAAABV9Db3N0BAAAAA1Ub0FkbWluV2FsbGV0CQAAaQAAAAIJAABoAAAAAgUAAAAOYXNzZXRCdWlsZENvc3QAAAAAAAAAAAUAAAAAAAAAAGQEAAAAE1RvR2FtZVJld2FyZHNXYWxsZXQJAABpAAAAAgkAAGgAAAACBQAAAA5hc3NldEJ1aWxkQ29zdAAAAAAAAAAACgAAAAAAAAAAZAQAAAAWVG9TdGFraW5nUmV3YXJkc1dhbGxldAkAAGkAAAACCQAAaAAAAAIFAAAADmFzc2V0QnVpbGRDb3N0AAAAAAAAAABBAAAAAAAAAABkBAAAAA1Vbml0U3Rha2VTaGVnCQAAZQAAAAIJAABlAAAAAgkAAGUAAAACBQAAAA5hc3NldEJ1aWxkQ29zdAUAAAANVG9BZG1pbldhbGxldAUAAAATVG9HYW1lUmV3YXJkc1dhbGxldAUAAAAWVG9TdGFraW5nUmV3YXJkc1dhbGxldAMJAQAAABVpc05hdGlvblJlc2VydmVkQXNzZXQAAAACBQAAAAxzdHJBc3NldFR5cGUFAAAABUxldmVsAwMJAQAAAAEhAAAAAQkBAAAAD2NoZWNrQXNzZXRPd25lcgAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAAAlOYXRpb25LZXkJAQAAAAEhAAAAAQkBAAAACmNoZWNrQWRtaW4AAAABCAUAAAABaQAAAAZjYWxsZXIHCQAAAgAAAAECAAAAI1lvdSBhcmUgbm90IHRoZSBvd25lciBvZiB0aGUgbmF0aW9uBAAAAApuYXRpb25zaGVnCQEAAAAVdHJlYXN1cnlUcnlHZXRJbnRlZ2VyAAAAAQkBAAAADmdldFRyZWFzdXJ5S2V5AAAAAQUAAAAJTmF0aW9uS2V5AwkAAGYAAAACBQAAAA5hc3NldEJ1aWxkQ29zdAUAAAAKbmF0aW9uc2hlZwkAAAIAAAABAgAAAB5UaGUgbmF0aW9uIGhhc24ndCBlbm91Z2ggZnVuZHMEAAAAAWQJAAP8AAAABAkBAAAAB0FkZHJlc3MAAAABBQAAAA90cmVhc3VyeUFkZHJlc3MCAAAAFGRlY3JlYXNlTmF0aW9uV2FsbGV0CQAETAAAAAIFAAAACU5hdGlvbktleQkABEwAAAACBQAAAA5hc3NldEJ1aWxkQ29zdAUAAAADbmlsBQAAAANuaWwEAAAAByRtYXRjaDAFAAAAAWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABcgUAAAAHJG1hdGNoMAQAAAACcHcJAAP8AAAABAkBAAAAB0FkZHJlc3MAAAABBQAAAA90cmVhc3VyeUFkZHJlc3MCAAAAEWFyYml0cmFyeUFkZENvaW5zCQAETAAAAAIFAAAACU5hdGlvbktleQkABEwAAAACBQAAAA1Vbml0U3Rha2VTaGVnBQAAAANuaWwFAAAAA25pbAQAAAAHJG1hdGNoMQUAAAACcHcDCQAAAQAAAAIFAAAAByRtYXRjaDECAAAAA0ludAQAAAABYgUAAAAHJG1hdGNoMQQAAAAIdHJhbnNmZXIJAAP8AAAABAkBAAAAB0FkZHJlc3MAAAABBQAAAA90cmVhc3VyeUFkZHJlc3MCAAAAGmRpc3RyaWJ1dGVOYXRpb25QYXlSZXdhcmRzCQAETAAAAAIFAAAADmFzc2V0QnVpbGRDb3N0BQAAAANuaWwFAAAAA25pbAQAAAAHJG1hdGNoMgUAAAAIdHJhbnNmZXIDCQAAAQAAAAIFAAAAByRtYXRjaDICAAAAA0ludAQAAAABdAUAAAAHJG1hdGNoMgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAUZ2V0QnVpbGRpbmdTdGF0dXNLZXkAAAADCQAEJQAAAAEIBQAAAAFpAAAADG9yaWdpbkNhbGxlcggFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAUAAAAHY25mZ0tleQUAAAAMQnVpbGRTdGFydGVkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABBnZXRBc3NldE93bmVyS2V5AAAAAggFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAUAAAAHY25mZ0tleQUAAAAJTmF0aW9uS2V5CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAaZ2V0QnVpbGRpbmdGaW5pc2hIZWlnaHRLZXkAAAADCQAEJQAAAAEIBQAAAAFpAAAADG9yaWdpbkNhbGxlcggFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAUAAAAHY25mZ0tleQkAAGQAAAACBQAAAAZoZWlnaHQFAAAAEGRlbGF5Rm9yQnVpbGRpbmcFAAAAA25pbAkAAAIAAAABAgAAACBFcnJvciBEaXN0cmlidXRpbmcgYXNzZXQgcmV3YXJkcwkAAAIAAAABAgAAAB1FcnJvciBEZXBvc2l0aW5nIG5hdGlvbiBmdW5kcwkAAAIAAAABAgAAAB1FcnJvciBEZXBvc2l0aW5nIG5hdGlvbiBmdW5kcwQAAAAIYXNzZXRTYWMJAQAAABBjb25mVHJ5R2V0U3RyaW5nAAAAAQkAASwAAAACBQAAAAdjbmZnS2V5AgAAAA9fU2FjcmlmaWNlQXNzZXQDCQEAAAACIT0AAAACBQAAAAhhc3NldFNhYwIAAAAACQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEFAAAADFNhY3JpZmljZUtleQkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIFAAAADFNhY3JpZmljZUtleQIAAAAGX093bmVyCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABRnZXRCdWlsZGluZ1N0YXR1c0tleQAAAAMJAAQlAAAAAQgFAAAAAWkAAAAMb3JpZ2luQ2FsbGVyCAUAAAABaQAAAA10cmFuc2FjdGlvbklkBQAAAAdjbmZnS2V5BQAAAAxCdWlsZFN0YXJ0ZWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEGdldEFzc2V0T3duZXJLZXkAAAACCAUAAAABaQAAAA10cmFuc2FjdGlvbklkBQAAAAdjbmZnS2V5CQAEJQAAAAEIBQAAAAFpAAAADG9yaWdpbkNhbGxlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAGmdldEJ1aWxkaW5nRmluaXNoSGVpZ2h0S2V5AAAAAwkABCUAAAABCAUAAAABaQAAAAxvcmlnaW5DYWxsZXIIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQFAAAAB2NuZmdLZXkJAABkAAAAAgUAAAAGaGVpZ2h0BQAAABBkZWxheUZvckJ1aWxkaW5nBQAAAANuaWwEAAAACGFtb3VudEluCQEAAAAFdmFsdWUAAAABCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAZhbW91bnQDCQAAZgAAAAIFAAAADmFzc2V0QnVpbGRDb3N0BQAAAAhhbW91bnRJbgkAAAIAAAABCQABLAAAAAICAAAAPllvdSBwcm92aWRlZCBsZXNzICRoZWcgdGhhbiB0aGUgbmVlZGVkIGNvc3QgZm9yIGJ1aWxkaW5nIHRoaXMgBQAAAAxzdHJBc3NldFR5cGUDCQEAAAACIT0AAAACCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAdhc3NldElkBQAAAApzaGlueXdnZ2lkCQAAAgAAAAECAAAAGk9ubHkgJEhFRyBwYXltZW50cyBhbGxvd2VkBAAAAAJwdwkAA/wAAAAECQEAAAAHQWRkcmVzcwAAAAEFAAAAD3RyZWFzdXJ5QWRkcmVzcwIAAAAHRGVwb3NpdAUAAAADbmlsCQAETAAAAAIJAQAAAA9BdHRhY2hlZFBheW1lbnQAAAACBQAAAApzaGlueXdnZ2lkBQAAAA1Vbml0U3Rha2VTaGVnBQAAAANuaWwEAAAAByRtYXRjaDAFAAAAAnB3AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAXIFAAAAByRtYXRjaDAJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAFGdldEJ1aWxkaW5nU3RhdHVzS2V5AAAAAwkABCUAAAABCAUAAAABaQAAAAxvcmlnaW5DYWxsZXIIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQFAAAAB2NuZmdLZXkFAAAADEJ1aWxkU3RhcnRlZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAQZ2V0QXNzZXRPd25lcktleQAAAAIIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQFAAAAB2NuZmdLZXkJAAQlAAAAAQgFAAAAAWkAAAAMb3JpZ2luQ2FsbGVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAaZ2V0QnVpbGRpbmdGaW5pc2hIZWlnaHRLZXkAAAADCQAEJQAAAAEIBQAAAAFpAAAADG9yaWdpbkNhbGxlcggFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAUAAAAHY25mZ0tleQkAAGQAAAACBQAAAAZoZWlnaHQFAAAAEGRlbGF5Rm9yQnVpbGRpbmcJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAALYWRtaW5XYWxsZXQFAAAADVRvQWRtaW5XYWxsZXQFAAAACnNoaW55d2dnaWQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAWZGFpbHlHYW1lUmV3YXJkc1dhbGxldAUAAAATVG9HYW1lUmV3YXJkc1dhbGxldAUAAAAKc2hpbnl3Z2dpZAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAABlkYWlseVN0YWtpbmdSZXdhcmRzV2FsbGV0BQAAABZUb1N0YWtpbmdSZXdhcmRzV2FsbGV0BQAAAApzaGlueXdnZ2lkBQAAAANuaWwJAAACAAAAAQIAAAAXSW5jb3JyZWN0IGludm9rZSByZXN1bHQAAAABaQEAAAALRmluaXNoQnVpbGQAAAAEAAAAB3R4SWRTdHIAAAAIYXNzZXRTdHIAAAAFTGV2ZWwAAAAJTmF0aW9uS2V5BAAAAAR0eElkCQACWQAAAAEFAAAAB3R4SWRTdHIEAAAABUFMS2V5CQEAAAAIZ2V0QUxLZXkAAAACBQAAAAhhc3NldFN0cgUAAAAFTGV2ZWwEAAAAEUJ1aWxkaW5nU3RhdHVzS2V5CQEAAAAUZ2V0QnVpbGRpbmdTdGF0dXNLZXkAAAADCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAEdHhJZAUAAAAFQUxLZXkEAAAAD2ZpbmlzaEhlaWdodEtleQkBAAAAGmdldEJ1aWxkaW5nRmluaXNoSGVpZ2h0S2V5AAAAAwkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAABHR4SWQFAAAABUFMS2V5BAAAAAhhc3NldEtleQkBAAAADWdldEFzc2V0SWRLZXkAAAACBQAAAAR0eElkBQAAAAVBTEtleQQAAAAKYXNzZXRPd25lcgkBAAAADHRyeUdldFN0cmluZwAAAAEJAQAAABBnZXRBc3NldE93bmVyS2V5AAAAAgUAAAAEdHhJZAUAAAAFQUxLZXkDCQEAAAAVaXNOYXRpb25SZXNlcnZlZEFzc2V0AAAAAgUAAAAIYXNzZXRTdHIFAAAABUxldmVsAwMJAQAAAAEhAAAAAQkBAAAAD2NoZWNrQXNzZXRPd25lcgAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAAAlOYXRpb25LZXkJAQAAAAEhAAAAAQkBAAAACmNoZWNrQWRtaW4AAAABCAUAAAABaQAAAAZjYWxsZXIHCQAAAgAAAAECAAAAMFlvdSBhcmUgbm90IGF1dGhvcml6ZWQgdG8gcGVyZm9ybSB0aGlzIG9wZXJhdGlvbgkBAAAAE2ludGVybmFsRmluaXNoQnVpbGQAAAAGBQAAAAlOYXRpb25LZXkFAAAABUFMS2V5BQAAAAhhc3NldEtleQUAAAARQnVpbGRpbmdTdGF0dXNLZXkFAAAAD2ZpbmlzaEhlaWdodEtleQUAAAAEdHhJZAMJAQAAAAIhPQAAAAIFAAAACmFzc2V0T3duZXIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQAAAgAAAAEJAAEsAAAAAgIAAAAhWW91IGNhbm5vdCBjbGFpbSBvdGhlcidzIHBsYXllcnMgBQAAAAhhc3NldFN0cgQAAAAQYnVpbGRpbmdUeFN0YXR1cwkBAAAADHRyeUdldFN0cmluZwAAAAEFAAAAEUJ1aWxkaW5nU3RhdHVzS2V5AwkAAAAAAAACBQAAABBidWlsZGluZ1R4U3RhdHVzAgAAAAAJAAACAAAAAQIAAAAkTm8gcGVuZGluZyBvcGVyYXRpb25zIGZvciB0aGlzIGFzc2V0BAAAAAhhc3NldFNhYwkBAAAAEGNvbmZUcnlHZXRTdHJpbmcAAAABCQABLAAAAAIFAAAABUFMS2V5AgAAAA9fU2FjcmlmaWNlQXNzZXQEAAAADWFzc2V0U2FjTGV2ZWwJAQAAABFjb25mVHJ5R2V0SW50ZWdlcgAAAAEJAAEsAAAAAgUAAAAFQUxLZXkCAAAAFF9TYWNyaWZpY2VBc3NldExldmVsAwkBAAAAAiE9AAAAAgUAAAAIYXNzZXRTYWMCAAAAAAkBAAAAHGludGVybmFsU2FjcmlmaWNlRmluaXNoQnVpbGQAAAAHCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAFQUxLZXkFAAAACGFzc2V0S2V5BQAAABFCdWlsZGluZ1N0YXR1c0tleQUAAAAPZmluaXNoSGVpZ2h0S2V5BQAAAAR0eElkCQEAAAAIZ2V0QUxLZXkAAAACBQAAAAhhc3NldFNhYwUAAAANYXNzZXRTYWNMZXZlbAkBAAAAE2ludGVybmFsRmluaXNoQnVpbGQAAAAGCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAFQUxLZXkFAAAACGFzc2V0S2V5BQAAABFCdWlsZGluZ1N0YXR1c0tleQUAAAAPZmluaXNoSGVpZ2h0S2V5BQAAAAR0eElkAAAAAWkBAAAAEXRyYW5zZmVyT3duZXJzaGlwAAAAAgAAAAdhc3NldElkAAAACG5ld093bmVyAwkBAAAAASEAAAABCQEAAAAKY2hlY2tBZG1pbgAAAAEIBQAAAAFpAAAABmNhbGxlcgkAAAIAAAABAgAAAClPbmx5IHRoZSBhZG1pbiBjYW4gcGVyZm9ybSB0aGlzIG9wZXJhdGlvbgkABRQAAAACCQEAAAAZaW50ZXJuYWxUcmFzbmZlck93bmVyc2hpcAAAAAIFAAAAB2Fzc2V0SWQFAAAACG5ld093bmVyBQAAAAhuZXdPd25lcgAAAAFpAQAAABdkZXN0cm95QXNzZXRBbmRUcmFuc2ZlcgAAAAMAAAAHYXNzZXRJZAAAAANxdHkAAAAJdG9BZGRyZXNzBAAAAAZjaHVua3MJAQAAABFnZXRBc3NldFR5cGVMZXZlbAAAAAEFAAAAB2Fzc2V0SWQEAAAADHN0ckFzc2V0VHlwZQgFAAAABmNodW5rcwAAAAJfMQQAAAAFbGV2ZWwIBQAAAAZjaHVua3MAAAACXzIEAAAAAWsJAQAAAAhnZXRBTEtleQAAAAIFAAAADHN0ckFzc2V0VHlwZQUAAAAFbGV2ZWwDCQEAAAABIQAAAAEJAQAAAApjaGVja0FkbWluAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQAAAgAAAAECAAAAKU9ubHkgdGhlIGFkbWluIGNhbiBwZXJmb3JtIHRoaXMgb3BlcmF0aW9uBAAAAAhvbGRPd25lcgkBAAAADHRyeUdl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", "height": 2118021, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4nNMYeaDwhDPFW43tuzCWV6AMDuMqrD59WYSHSPcJcNK Next: 7CFEtqymBT6KfTT9qKitkbuXbi1aK2mzhzAN3qQSx9W3 Diff:
OldNewDifferences
480480
481481 func $f0_2 ($a,$i) = if (($i >= $s))
482482 then $a
483- else throw("List size exceeds 100")
483+ else throw("List size exceeds 50")
484484
485- $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
485+ $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50)
486486 }
487- if (((qtyAsset - qty) > 0))
488- then [IntegerEntry((k + "_Qty"), (qtyAsset - qty))]
489- else [DeleteEntry(assetId)]
487+ if ((dist == dist))
488+ then if (((qtyAsset - qty) > 0))
489+ then [IntegerEntry((k + "_Qty"), (qtyAsset - qty))]
490+ else [DeleteEntry(assetId), DeleteEntry(getAssetOwnerKeyString(assetId))]
491+ else throw("Strict value is not equal to itself.")
490492 case _ =>
491493 throw("Error setting user power")
492494 }
504506
505507 func $f0_2 ($a,$i) = if (($i >= $s))
506508 then $a
507- else throw("List size exceeds 100")
509+ else throw("List size exceeds 50")
508510
509- $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
511+ $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50)
510512 }
511- let pw = invoke(Address(nationsAddress), "setUserPower", [oldOwner, (currentPower - assetPower)], nil)
512- if ((pw == pw))
513- then match pw {
514- case r: Int =>
515-[DeleteEntry(assetId)]
516- case _ =>
517- throw("Error setting user power")
518- }
513+ if ((dist == dist))
514+ then {
515+ let pw = invoke(Address(nationsAddress), "setUserPower", [oldOwner, (currentPower - assetPower)], nil)
516+ if ((pw == pw))
517+ then match pw {
518+ case r: Int =>
519+[DeleteEntry(assetId), DeleteEntry(getAssetOwnerKeyString(assetId))]
520+ case _ =>
521+ throw("Error setting user power")
522+ }
523+ else throw("Strict value is not equal to itself.")
524+ }
519525 else throw("Strict value is not equal to itself.")
520526 }
521527 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let shinywggid = base58'AFQS5E4ELtxex3iANtWtUU2V2oWJZSo8VVnK8z3VFmqf'
55
66 let treasuryAddress = base58'3MyDGEoKp1gF4LSRknk9vSuDEyrwuYXcQEQ'
77
88 let assetsAddress = base58'3N8WDKbqGox5Eky326PHHT7rUyrby5MXdmb'
99
1010 let marketplaceAddress = base58'3Mra7mjPipcQd5sJaRmXK8xgS4scb8gPF4A'
1111
1212 let configurationAddress = base58'3N9tj3b2djcaZozn97VkYchL9S1i6cdEbC1'
1313
1414 let nationsAddress = base58'3MvyzDtzWWV5MZ1GP8JfQhhQqiGU4Nbifdy'
1515
1616 let adminWallet = addressFromStringValue("3MpNtiPSRSq6NnaQYk38BfWSzZcgAYTyrQ9")
1717
1818 let dailyGameRewardsWallet = addressFromStringValue("3MuSrXTTiwo9bdoD6FeaBpMUYMiU5saDv2U")
1919
2020 let dailyStakingRewardsWallet = addressFromStringValue("3Mv3mr3uNXdpgkVPApbGEJjMQXqau37DY5i")
2121
2222 func checkAdmin (caller) = if (if (if (if (if ((caller == adminWallet))
2323 then true
2424 else (caller == this))
2525 then true
2626 else (caller.bytes == assetsAddress))
2727 then true
2828 else (caller.bytes == treasuryAddress))
2929 then true
3030 else (caller.bytes == marketplaceAddress))
3131 then true
3232 else (caller.bytes == nationsAddress)
3333
3434
3535 func tryGetInteger (key) = match getInteger(this, key) {
3636 case b: Int =>
3737 b
3838 case _ =>
3939 0
4040 }
4141
4242
4343 func tryGetBoolean (key) = match getBoolean(this, key) {
4444 case b: Boolean =>
4545 b
4646 case _ =>
4747 false
4848 }
4949
5050
5151 func tryGetString (key) = match getString(this, key) {
5252 case b: String =>
5353 b
5454 case _ =>
5555 ""
5656 }
5757
5858
5959 func getALKey (Name,Level) = ((Name + "_lvl") + toString(Level))
6060
6161
6262 func confTryGetInteger (key) = match getInteger(Address(configurationAddress), key) {
6363 case b: Int =>
6464 b
6565 case _ =>
6666 0
6767 }
6868
6969
7070 func confTryGetString (key) = match getString(Address(configurationAddress), key) {
7171 case b: String =>
7272 b
7373 case _ =>
7474 ""
7575 }
7676
7777
7878 func confTryGetBoolean (key) = match getBoolean(Address(configurationAddress), key) {
7979 case b: Boolean =>
8080 b
8181 case _ =>
8282 false
8383 }
8484
8585
8686 func getTreasuryKey (nationid) = (nationid + "_Treasury")
8787
8888
8989 func treasuryTryGetInteger (key) = match getInteger(Address(treasuryAddress), key) {
9090 case b: Int =>
9191 b
9292 case _ =>
9393 0
9494 }
9595
9696
9797 func nationsTryGetInteger (key) = match getInteger(Address(nationsAddress), key) {
9898 case b: Int =>
9999 b
100100 case _ =>
101101 0
102102 }
103103
104104
105105 func nationsTryGetBoolean (key) = match getBoolean(Address(nationsAddress), key) {
106106 case b: Boolean =>
107107 b
108108 case _ =>
109109 false
110110 }
111111
112112
113113 func nationsTryGetString (key) = match getString(Address(nationsAddress), key) {
114114 case b: String =>
115115 b
116116 case _ =>
117117 ""
118118 }
119119
120120
121121 func getAssetOwnerKeyString (assetId) = (assetId + "_Owner")
122122
123123
124124 let BuildStarted = "BUILD_STARTED"
125125
126126 let BuildFinished = "BUILD_FINISHED"
127127
128128 func getAssetIdKey (txId,assetType) = ((assetType + "_") + toBase58String(txId))
129129
130130
131131 func getAssetOwnerKey (txId,assetType) = (getAssetIdKey(txId, assetType) + "_Owner")
132132
133133
134134 func getBuildingFinishHeightKey (address,txId,assetType) = (((address + "_") + getAssetIdKey(txId, assetType)) + "_fh")
135135
136136
137137 func getBuildingStatusKey (address,txId,assetType) = (((address + "_") + getAssetIdKey(txId, assetType)) + "_status")
138138
139139
140140 func getAssetTypeLevel (assetStr) = {
141141 let chunks = split(assetStr, "_")
142142 let strAssetType = chunks[0]
143143 let level = parseIntValue(drop(chunks[1], 3))
144144 $Tuple2(strAssetType, level)
145145 }
146146
147147
148148 func internalDistrib (addressStr,amount) = {
149149 let tr = invoke(Address(treasuryAddress), "adminTransfer", [addressFromStringValue(addressStr), amount], nil)
150150 if ((tr == tr))
151151 then match tr {
152152 case t: Int =>
153153 amount
154154 case _ =>
155155 0
156156 }
157157 else throw("Strict value is not equal to itself.")
158158 }
159159
160160
161161 func distribDestroyRewards (accum,nextValue) = {
162162 let val = split(nextValue, "_")
163163 let addr = val[0]
164164 let amnt = val[1]
165165 (accum :+ internalDistrib(addr, parseIntValue(amnt)))
166166 }
167167
168168
169169 func internalSacrificeFinishBuild (caller,assetStr,assetKey,BuildingStatusKey,finishHeightKey,transactionId,sacrificekey) = {
170170 let chunks = getAssetTypeLevel(assetStr)
171171 let strAssetType = chunks._1
172172 let level = chunks._2
173173 let buildingFinishHeight = getIntegerValue(this, finishHeightKey)
174174 if ((buildingFinishHeight > height))
175175 then throw((((("Building is not finished yet " + toString((buildingFinishHeight - height))) + " blocks remaining, it will take around ") + toString((buildingFinishHeight - height))) + " minutes"))
176176 else if ((take(strAssetType, 4) == "TECH"))
177177 then {
178178 let discovered = invoke(Address(nationsAddress), "setTecnhnologyDiscovered", [caller, assetStr], nil)
179179 if ((discovered == true))
180180 then [DeleteEntry(BuildingStatusKey), DeleteEntry(finishHeightKey), DeleteEntry(getAssetOwnerKey(transactionId, assetStr))]
181181 else throw("error discovering technology")
182182 }
183183 else {
184184 let assetPower = confTryGetInteger((assetStr + "_Power"))
185185 let assetCoins = ((confTryGetInteger((sacrificekey + "_Cost")) * 20) / 100)
186186 if ((assetPower > 0))
187187 then {
188188 let currentPower = nationsTryGetInteger((caller + "_Power"))
189189 let pw = invoke(Address(nationsAddress), "setUserPower", [caller, (currentPower + assetPower)], nil)
190190 if ((pw == pw))
191191 then [IntegerEntry(assetKey, assetCoins), DeleteEntry(BuildingStatusKey), DeleteEntry(finishHeightKey)]
192192 else throw("Strict value is not equal to itself.")
193193 }
194194 else [IntegerEntry(assetKey, assetCoins), DeleteEntry(BuildingStatusKey), DeleteEntry(finishHeightKey)]
195195 }
196196 }
197197
198198
199199 func internalFinishBuild (caller,assetStr,assetKey,BuildingStatusKey,finishHeightKey,transactionId) = {
200200 let chunks = getAssetTypeLevel(assetStr)
201201 let strAssetType = chunks._1
202202 let level = chunks._2
203203 let buildingFinishHeight = getIntegerValue(this, finishHeightKey)
204204 if ((buildingFinishHeight > height))
205205 then throw((((("Building is not finished yet " + toString((buildingFinishHeight - height))) + " blocks remaining, it will take around ") + toString((buildingFinishHeight - height))) + " minutes"))
206206 else if ((take(strAssetType, 4) == "TECH"))
207207 then {
208208 let discovered = invoke(Address(nationsAddress), "setTecnhnologyDiscovered", [caller, assetStr], nil)
209209 if ((discovered == true))
210210 then [DeleteEntry(BuildingStatusKey), DeleteEntry(finishHeightKey), DeleteEntry(getAssetOwnerKey(transactionId, assetStr))]
211211 else throw("error discovering technology")
212212 }
213213 else {
214214 let assetPower = confTryGetInteger((assetStr + "_Power"))
215215 let assetCoins = ((confTryGetInteger((assetStr + "_Cost")) * 20) / 100)
216216 let refCall = invoke(Address(treasuryAddress), "Pay", [caller, assetCoins], nil)
217217 if ((refCall == refCall))
218218 then if ((assetPower > 0))
219219 then {
220220 let currentPower = nationsTryGetInteger((caller + "_Power"))
221221 let pw = invoke(Address(nationsAddress), "setUserPower", [caller, (currentPower + assetPower)], nil)
222222 if ((pw == pw))
223223 then if (confTryGetBoolean((assetStr + "_Aggregated")))
224224 then {
225225 let aggrAssetkey = ((assetStr + "_") + caller)
226226 let coins = tryGetInteger(aggrAssetkey)
227227 let qty = tryGetInteger((aggrAssetkey + "_Qty"))
228228 [DeleteEntry(getAssetOwnerKey(transactionId, assetStr)), StringEntry((aggrAssetkey + "_Owner"), caller), IntegerEntry(aggrAssetkey, (coins + assetCoins)), IntegerEntry((aggrAssetkey + "_Qty"), (qty + 1)), DeleteEntry(BuildingStatusKey), DeleteEntry(finishHeightKey)]
229229 }
230230 else [IntegerEntry(assetKey, assetCoins), DeleteEntry(BuildingStatusKey), DeleteEntry(finishHeightKey)]
231231 else throw("Strict value is not equal to itself.")
232232 }
233233 else if (confTryGetBoolean((assetStr + "_Aggregated")))
234234 then {
235235 let aggrAssetkey = ((assetStr + "_") + caller)
236236 let coins = tryGetInteger(aggrAssetkey)
237237 let qty = tryGetInteger((aggrAssetkey + "_Qty"))
238238 [DeleteEntry(getAssetOwnerKey(transactionId, assetStr)), StringEntry((aggrAssetkey + "_Owner"), caller), IntegerEntry(aggrAssetkey, (coins + assetCoins)), IntegerEntry((aggrAssetkey + "_Qty"), (qty + 1)), DeleteEntry(BuildingStatusKey), DeleteEntry(finishHeightKey)]
239239 }
240240 else [IntegerEntry(assetKey, assetCoins), DeleteEntry(BuildingStatusKey), DeleteEntry(finishHeightKey)]
241241 else throw("Strict value is not equal to itself.")
242242 }
243243 }
244244
245245
246246 func checkAssetOwner (caller,assetKey) = {
247247 let assetOwner = tryGetString(getAssetOwnerKeyString(assetKey))
248248 (assetOwner == caller)
249249 }
250250
251251
252252 func isNationReservedAsset (Name,Level) = {
253253 let k = getALKey(Name, Level)
254254 confTryGetBoolean((k + "_NationReserved"))
255255 }
256256
257257
258258 func internalTrasnferOwnership (assetId,newOwner) = {
259259 let chunks = getAssetTypeLevel(assetId)
260260 let strAssetType = chunks._1
261261 let level = chunks._2
262262 let k = getALKey(strAssetType, level)
263263 let oldOwner = tryGetString(getAssetOwnerKeyString(assetId))
264264 let assetPower = confTryGetInteger((k + "_Power"))
265265 if ((assetPower > 0))
266266 then {
267267 let currentPower = nationsTryGetInteger((oldOwner + "_Power"))
268268 let pw = invoke(Address(nationsAddress), "setUserPower", [oldOwner, (currentPower - assetPower)], nil)
269269 if ((pw == pw))
270270 then if ((pw != (currentPower - assetPower)))
271271 then throw("Incorrect invoke result")
272272 else {
273273 let newcurrentPower = nationsTryGetInteger((newOwner + "_Power"))
274274 let pw2 = invoke(Address(nationsAddress), "setUserPower", [newOwner, (newcurrentPower + assetPower)], nil)
275275 if ((pw2 == pw2))
276276 then match pw2 {
277277 case r: Int =>
278278 [StringEntry(getAssetOwnerKeyString(assetId), newOwner)]
279279 case _ =>
280280 throw("Incorrect invoke result")
281281 }
282282 else throw("Strict value is not equal to itself.")
283283 }
284284 else throw("Strict value is not equal to itself.")
285285 }
286286 else [StringEntry(getAssetOwnerKeyString(assetId), newOwner)]
287287 }
288288
289289
290290 func CheckAssetBuildableSacrifice (ALKey,caller,SacrificeKey) = {
291291 let assetSac = confTryGetString((ALKey + "_SacrificeAsset"))
292292 let assetSaclvl = confTryGetInteger((ALKey + "_SacrificeAssetLevel"))
293293 if ((assetSac == ""))
294294 then true
295295 else if (!(checkAssetOwner(caller, SacrificeKey)))
296296 then throw("you are not the owner of the Sacrifice asset")
297297 else {
298298 let chunks = getAssetTypeLevel(SacrificeKey)
299299 if (if ((assetSac != chunks._1))
300300 then true
301301 else (assetSaclvl != chunks._2))
302302 then throw("the sacrificeAsset has the wrong type or level")
303303 else true
304304 }
305305 }
306306
307307
308308 func CheckAssetBuildableNation (Name,Level,NationKey,SacrificeKey) = {
309309 let cnfgKey = getALKey(Name, Level)
310310 let tec = confTryGetString((cnfgKey + "_Tecnhology_discovered"))
311311 if ((tec != ""))
312312 then if (nationsTryGetBoolean(((NationKey + "_") + tec)))
313313 then CheckAssetBuildableSacrifice(cnfgKey, NationKey, SacrificeKey)
314314 else false
315315 else CheckAssetBuildableSacrifice(cnfgKey, NationKey, SacrificeKey)
316316 }
317317
318318
319319 func CheckAssetBuildableUser (Name,Level,caller,SacrificeKey) = {
320320 let cnfKey = getALKey(Name, Level)
321321 let nationId = nationsTryGetInteger(caller)
322322 if ((nationId == 0))
323323 then false
324324 else {
325325 let tec = confTryGetString((cnfKey + "_Tecnhology_discovered"))
326326 if ((tec != ""))
327327 then {
328328 let NationKey = nationsTryGetString(toString(nationId))
329329 if (nationsTryGetBoolean(((NationKey + "_") + tec)))
330330 then CheckAssetBuildableSacrifice(cnfKey, caller, SacrificeKey)
331331 else false
332332 }
333333 else CheckAssetBuildableSacrifice(cnfKey, caller, SacrificeKey)
334334 }
335335 }
336336
337337
338338 func CheckAssetBuildable (Name,Level,Caller,NationKey,SacrificeKey) = if ((NationKey != ""))
339339 then CheckAssetBuildableNation(Name, Level, NationKey, SacrificeKey)
340340 else CheckAssetBuildableUser(Name, Level, Caller, SacrificeKey)
341341
342342
343343 @Callable(i)
344344 func StartBuild (strAssetType,Level,NationKey,SacrificeKey) = if (!(CheckAssetBuildable(strAssetType, Level, toString(i.caller), NationKey, SacrificeKey)))
345345 then throw("You cannot build this Item")
346346 else {
347347 let cnfgKey = getALKey(strAssetType, Level)
348348 let delayForBuilding = confTryGetInteger((cnfgKey + "_BuildTime"))
349349 let assetBuildCost = confTryGetInteger((cnfgKey + "_Cost"))
350350 let ToAdminWallet = ((assetBuildCost * 5) / 100)
351351 let ToGameRewardsWallet = ((assetBuildCost * 10) / 100)
352352 let ToStakingRewardsWallet = ((assetBuildCost * 65) / 100)
353353 let UnitStakeSheg = (((assetBuildCost - ToAdminWallet) - ToGameRewardsWallet) - ToStakingRewardsWallet)
354354 if (isNationReservedAsset(strAssetType, Level))
355355 then if (if (!(checkAssetOwner(toString(i.caller), NationKey)))
356356 then !(checkAdmin(i.caller))
357357 else false)
358358 then throw("You are not the owner of the nation")
359359 else {
360360 let nationsheg = treasuryTryGetInteger(getTreasuryKey(NationKey))
361361 if ((assetBuildCost > nationsheg))
362362 then throw("The nation hasn't enough funds")
363363 else {
364364 let d = invoke(Address(treasuryAddress), "decreaseNationWallet", [NationKey, assetBuildCost], nil)
365365 match d {
366366 case r: Int =>
367367 let pw = invoke(Address(treasuryAddress), "arbitraryAddCoins", [NationKey, UnitStakeSheg], nil)
368368 match pw {
369369 case b: Int =>
370370 let transfer = invoke(Address(treasuryAddress), "distributeNationPayRewards", [assetBuildCost], nil)
371371 match transfer {
372372 case t: Int =>
373373 [StringEntry(getBuildingStatusKey(toString(i.originCaller), i.transactionId, cnfgKey), BuildStarted), StringEntry(getAssetOwnerKey(i.transactionId, cnfgKey), NationKey), IntegerEntry(getBuildingFinishHeightKey(toString(i.originCaller), i.transactionId, cnfgKey), (height + delayForBuilding))]
374374 case _ =>
375375 throw("Error Distributing asset rewards")
376376 }
377377 case _ =>
378378 throw("Error Depositing nation funds")
379379 }
380380 case _ =>
381381 throw("Error Depositing nation funds")
382382 }
383383 }
384384 }
385385 else {
386386 let assetSac = confTryGetString((cnfgKey + "_SacrificeAsset"))
387387 if ((assetSac != ""))
388388 then [DeleteEntry(SacrificeKey), DeleteEntry((SacrificeKey + "_Owner")), StringEntry(getBuildingStatusKey(toString(i.originCaller), i.transactionId, cnfgKey), BuildStarted), StringEntry(getAssetOwnerKey(i.transactionId, cnfgKey), toString(i.originCaller)), IntegerEntry(getBuildingFinishHeightKey(toString(i.originCaller), i.transactionId, cnfgKey), (height + delayForBuilding))]
389389 else {
390390 let amountIn = value(i.payments[0].amount)
391391 if ((assetBuildCost > amountIn))
392392 then throw(("You provided less $heg than the needed cost for building this " + strAssetType))
393393 else if ((i.payments[0].assetId != shinywggid))
394394 then throw("Only $HEG payments allowed")
395395 else {
396396 let pw = invoke(Address(treasuryAddress), "Deposit", nil, [AttachedPayment(shinywggid, UnitStakeSheg)])
397397 match pw {
398398 case r: Int =>
399399 [StringEntry(getBuildingStatusKey(toString(i.originCaller), i.transactionId, cnfgKey), BuildStarted), StringEntry(getAssetOwnerKey(i.transactionId, cnfgKey), toString(i.originCaller)), IntegerEntry(getBuildingFinishHeightKey(toString(i.originCaller), i.transactionId, cnfgKey), (height + delayForBuilding)), ScriptTransfer(adminWallet, ToAdminWallet, shinywggid), ScriptTransfer(dailyGameRewardsWallet, ToGameRewardsWallet, shinywggid), ScriptTransfer(dailyStakingRewardsWallet, ToStakingRewardsWallet, shinywggid)]
400400 case _ =>
401401 throw("Incorrect invoke result")
402402 }
403403 }
404404 }
405405 }
406406 }
407407
408408
409409
410410 @Callable(i)
411411 func FinishBuild (txIdStr,assetStr,Level,NationKey) = {
412412 let txId = fromBase58String(txIdStr)
413413 let ALKey = getALKey(assetStr, Level)
414414 let BuildingStatusKey = getBuildingStatusKey(toString(i.caller), txId, ALKey)
415415 let finishHeightKey = getBuildingFinishHeightKey(toString(i.caller), txId, ALKey)
416416 let assetKey = getAssetIdKey(txId, ALKey)
417417 let assetOwner = tryGetString(getAssetOwnerKey(txId, ALKey))
418418 if (isNationReservedAsset(assetStr, Level))
419419 then if (if (!(checkAssetOwner(toString(i.caller), NationKey)))
420420 then !(checkAdmin(i.caller))
421421 else false)
422422 then throw("You are not authorized to perform this operation")
423423 else internalFinishBuild(NationKey, ALKey, assetKey, BuildingStatusKey, finishHeightKey, txId)
424424 else if ((assetOwner != toString(i.caller)))
425425 then throw(("You cannot claim other's players " + assetStr))
426426 else {
427427 let buildingTxStatus = tryGetString(BuildingStatusKey)
428428 if ((buildingTxStatus == ""))
429429 then throw("No pending operations for this asset")
430430 else {
431431 let assetSac = confTryGetString((ALKey + "_SacrificeAsset"))
432432 let assetSacLevel = confTryGetInteger((ALKey + "_SacrificeAssetLevel"))
433433 if ((assetSac != ""))
434434 then internalSacrificeFinishBuild(toString(i.caller), ALKey, assetKey, BuildingStatusKey, finishHeightKey, txId, getALKey(assetSac, assetSacLevel))
435435 else internalFinishBuild(toString(i.caller), ALKey, assetKey, BuildingStatusKey, finishHeightKey, txId)
436436 }
437437 }
438438 }
439439
440440
441441
442442 @Callable(i)
443443 func transferOwnership (assetId,newOwner) = if (!(checkAdmin(i.caller)))
444444 then throw("Only the admin can perform this operation")
445445 else $Tuple2(internalTrasnferOwnership(assetId, newOwner), newOwner)
446446
447447
448448
449449 @Callable(i)
450450 func destroyAssetAndTransfer (assetId,qty,toAddress) = {
451451 let chunks = getAssetTypeLevel(assetId)
452452 let strAssetType = chunks._1
453453 let level = chunks._2
454454 let k = getALKey(strAssetType, level)
455455 if (!(checkAdmin(i.caller)))
456456 then throw("Only the admin can perform this operation")
457457 else {
458458 let oldOwner = tryGetString(getAssetOwnerKeyString(assetId))
459459 let assetCoins = tryGetInteger(assetId)
460460 let currentPower = nationsTryGetInteger((oldOwner + "_Power"))
461461 let assetPower = confTryGetInteger((k + "_Power"))
462462 if (confTryGetBoolean((k + "_Aggregated")))
463463 then {
464464 let unitAssetCoins = ((confTryGetInteger((k + "_Cost")) * 20) / 100)
465465 let qtyAsset = tryGetInteger((k + "_Qty"))
466466 if ((0 > (qtyAsset - qty)))
467467 then throw(("you don't have enough " + strAssetType))
468468 else {
469469 let pw = invoke(Address(nationsAddress), "setUserPower", [oldOwner, (currentPower - (assetPower * qty))], nil)
470470 match pw {
471471 case r: Int =>
472472 let attackers = split(toAddress, "#")
473473 let dist = {
474474 let $l = attackers
475475 let $s = size($l)
476476 let $acc0 = nil
477477 func $f0_1 ($a,$i) = if (($i >= $s))
478478 then $a
479479 else distribDestroyRewards($a, $l[$i])
480480
481481 func $f0_2 ($a,$i) = if (($i >= $s))
482482 then $a
483- else throw("List size exceeds 100")
483+ else throw("List size exceeds 50")
484484
485- $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
485+ $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50)
486486 }
487- if (((qtyAsset - qty) > 0))
488- then [IntegerEntry((k + "_Qty"), (qtyAsset - qty))]
489- else [DeleteEntry(assetId)]
487+ if ((dist == dist))
488+ then if (((qtyAsset - qty) > 0))
489+ then [IntegerEntry((k + "_Qty"), (qtyAsset - qty))]
490+ else [DeleteEntry(assetId), DeleteEntry(getAssetOwnerKeyString(assetId))]
491+ else throw("Strict value is not equal to itself.")
490492 case _ =>
491493 throw("Error setting user power")
492494 }
493495 }
494496 }
495497 else {
496498 let attackers = split(toAddress, "#")
497499 let dist = {
498500 let $l = attackers
499501 let $s = size($l)
500502 let $acc0 = nil
501503 func $f0_1 ($a,$i) = if (($i >= $s))
502504 then $a
503505 else distribDestroyRewards($a, $l[$i])
504506
505507 func $f0_2 ($a,$i) = if (($i >= $s))
506508 then $a
507- else throw("List size exceeds 100")
509+ else throw("List size exceeds 50")
508510
509- $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
511+ $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50)
510512 }
511- let pw = invoke(Address(nationsAddress), "setUserPower", [oldOwner, (currentPower - assetPower)], nil)
512- if ((pw == pw))
513- then match pw {
514- case r: Int =>
515-[DeleteEntry(assetId)]
516- case _ =>
517- throw("Error setting user power")
518- }
513+ if ((dist == dist))
514+ then {
515+ let pw = invoke(Address(nationsAddress), "setUserPower", [oldOwner, (currentPower - assetPower)], nil)
516+ if ((pw == pw))
517+ then match pw {
518+ case r: Int =>
519+[DeleteEntry(assetId), DeleteEntry(getAssetOwnerKeyString(assetId))]
520+ case _ =>
521+ throw("Error setting user power")
522+ }
523+ else throw("Strict value is not equal to itself.")
524+ }
519525 else throw("Strict value is not equal to itself.")
520526 }
521527 }
522528 }
523529
524530
525531
526532 @Callable(i)
527533 func destroyAssetFromUser (assetId,qty) = {
528534 let chunks = getAssetTypeLevel(assetId)
529535 let strAssetType = chunks._1
530536 let level = chunks._2
531537 let k = getALKey(strAssetType, level)
532538 if (!(checkAssetOwner(toString(i.caller), assetId)))
533539 then throw("You don't own this asset")
534540 else {
535541 let assetCoins = tryGetInteger(assetId)
536542 let currentPower = nationsTryGetInteger((toString(i.caller) + "_Power"))
537543 let assetPower = confTryGetInteger((k + "_Power"))
538544 if (confTryGetBoolean((k + "_Aggregated")))
539545 then {
540546 let unitAssetCoins = ((confTryGetInteger((k + "_Cost")) * 20) / 100)
541547 let qtyAsset = tryGetInteger((k + "_Qty"))
542548 if ((0 > (qtyAsset - qty)))
543549 then throw(("you don't have enough " + strAssetType))
544550 else {
545551 let pw = invoke(Address(nationsAddress), "setUserPower", [toString(i.caller), (currentPower - (assetPower * qty))], nil)
546552 match pw {
547553 case r: Int =>
548554 let tr = invoke(Address(treasuryAddress), "adminTransfer", [toString(i.caller), (unitAssetCoins * qty)], nil)
549555 match tr {
550556 case t: Int =>
551557 if (((qtyAsset - qty) > 0))
552558 then [IntegerEntry((k + "_Qty"), (qtyAsset - qty))]
553559 else [DeleteEntry(assetId), DeleteEntry(getAssetOwnerKeyString(assetId))]
554560 case _ =>
555561 throw("Error transferring coins")
556562 }
557563 case _ =>
558564 throw("Error setting user power")
559565 }
560566 }
561567 }
562568 else {
563569 let pw = invoke(Address(nationsAddress), "setUserPower", [toString(i.caller), (currentPower - assetPower)], nil)
564570 match pw {
565571 case r: Int =>
566572 let tr = invoke(Address(treasuryAddress), "adminTransfer", [toString(i.caller), assetCoins], nil)
567573 match tr {
568574 case t: Int =>
569575 [DeleteEntry(assetId), DeleteEntry(getAssetOwnerKeyString(assetId))]
570576 case _ =>
571577 throw("Error transferring coins")
572578 }
573579 case _ =>
574580 throw("Error setting user power")
575581 }
576582 }
577583 }
578584 }
579585
580586
581587
582588 @Callable(i)
583589 func setNationOwner (nationKey,newOwner) = if (checkAdmin(i.caller))
584590 then $Tuple2([StringEntry((nationKey + "_Owner"), newOwner)], true)
585591 else {
586592 let currentOwner = tryGetString((nationKey + "_Owner"))
587593 if ((currentOwner != toString(i.caller)))
588594 then throw("You are not the nation owner")
589595 else [StringEntry((nationKey + "_Owner"), newOwner)]
590596 }
591597
592598
593599
594600 @Callable(i)
595601 func buyNationItem (assetId,NationKey) = {
596602 let chunks = getAssetTypeLevel(assetId)
597603 let strAssetType = chunks._1
598604 let level = chunks._2
599605 let k = getALKey(strAssetType, level)
600606 let n = nationsTryGetInteger(toString(i.caller))
601607 let nid = nationsTryGetInteger(NationKey)
602608 if ((n != nid))
603609 then throw("you can buy assets only from your nation")
604610 else if (!(checkAssetOwner(NationKey, assetId)))
605611 then throw("The asset does not belong to the nation")
606612 else if (!(isNationReservedAsset(strAssetType, level)))
607613 then throw("this asset cannot be sold by the nation")
608614 else {
609615 let assetPrice = confTryGetInteger((getALKey(strAssetType, level) + "_SellPrice"))
610616 let amountIn = value(i.payments[0].amount)
611617 if ((assetPrice > amountIn))
612618 then throw(("You provided less $heg than the needed cost for buying this " + strAssetType))
613619 else if ((i.payments[0].assetId != shinywggid))
614620 then throw("Only $HEG payments allowed")
615621 else {
616622 let a = invoke(Address(treasuryAddress), "increaseNationWallet", [NationKey, amountIn], nil)
617623 match a {
618624 case b: Int =>
619625 (internalTrasnferOwnership(assetId, toString(i.caller)) :+ ScriptTransfer(Address(treasuryAddress), amountIn, shinywggid))
620626 case _ =>
621627 throw("Error transferring SHEG to nations wallet")
622628 }
623629 }
624630 }
625631 }
626632
627633
628634
629635 @Callable(i)
630636 func AddAssetFromMarkeplace (assetId,oldOwner,assetSheg) = if (!(checkAdmin(i.caller)))
631637 then throw("You are not allowed to perform this operation")
632638 else $Tuple2([StringEntry(getAssetOwnerKeyString(assetId), oldOwner), IntegerEntry(assetId, assetSheg)], oldOwner)
633639
634640
635641
636642 @Callable(i)
637643 func TransferAssetToMarketplace (assetId,sellprice) = if (!(checkAssetOwner(toString(i.caller), assetId)))
638644 then throw("You are not the owner of this asset")
639645 else {
640646 let assetSheg = tryGetInteger(assetId)
641647 let tr = invoke(Address(marketplaceAddress), "putOnSale", [assetId, assetSheg, sellprice], nil)
642648 match tr {
643649 case t: Int =>
644650 [DeleteEntry(getAssetOwnerKeyString(assetId)), DeleteEntry(assetId)]
645651 case _ =>
646652 throw("Error putting the item on the marketplace")
647653 }
648654 }
649655
650656
651657
652658 @Callable(i)
653659 func DelKey (key) = if (!(checkAdmin(i.caller)))
654660 then throw("")
655661 else [DeleteEntry(key)]
656662
657663
658664
659665 @Callable(i)
660666 func UpdKey (key,val) = if (!(checkAdmin(i.caller)))
661667 then throw("")
662668 else [StringEntry(key, val)]
663669
664670

github/deemru/w8io/169f3d6 
97.42 ms