tx · 4F1vez2yNtiSrsLLDam2PvL8SzZ4fBu9nfYsMk4dfuAm

3N8WDKbqGox5Eky326PHHT7rUyrby5MXdmb:  -0.02500000 Waves

2022.06.27 17:06 [2114945] smart account 3N8WDKbqGox5Eky326PHHT7rUyrby5MXdmb > SELF 0.00000000 Waves

{ "type": 13, "id": "4F1vez2yNtiSrsLLDam2PvL8SzZ4fBu9nfYsMk4dfuAm", "fee": 2500000, "feeAssetId": null, "timestamp": 1656338806825, "version": 2, "chainId": 84, "sender": "3N8WDKbqGox5Eky326PHHT7rUyrby5MXdmb", "senderPublicKey": "FWSsBbeCwLVkekWhvNKtX6JkrZiruRybKKVuiS3F4bqN", "proofs": [ "bQXtgxwUNDB8BTzFSfrFzTDTKRBbG43ejDvYYKUMhJL22xCcreDuncPdEqKZq5oJiv7C8nsRtYRxHKaHinPoMQN" ], "script": "base64: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c3NldFN0cgAAAAhhc3NldEtleQAAABFCdWlsZGluZ1N0YXR1c0tleQAAAA9maW5pc2hIZWlnaHRLZXkAAAAMc2FjcmlmaWNla2V5BAAAAAZjaHVua3MJAQAAABFnZXRBc3NldFR5cGVMZXZlbAAAAAEFAAAACGFzc2V0U3RyBAAAAAxzdHJBc3NldFR5cGUIBQAAAAZjaHVua3MAAAACXzEEAAAABWxldmVsCAUAAAAGY2h1bmtzAAAAAl8yBAAAABRidWlsZGluZ0ZpbmlzaEhlaWdodAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwUAAAAPZmluaXNoSGVpZ2h0S2V5AwkAAGYAAAACBQAAABRidWlsZGluZ0ZpbmlzaEhlaWdodAUAAAAGaGVpZ2h0CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAdQnVpbGRpbmcgaXMgbm90IGZpbmlzaGVkIHlldCAJAAGkAAAAAQkAAGUAAAACBQAAABRidWlsZGluZ0ZpbmlzaEhlaWdodAUAAAAGaGVpZ2h0AgAAACcgYmxvY2tzIHJlbWFpbmluZywgaXQgd2lsbCB0YWtlIGFyb3VuZCAJAAGkAAAAAQkAAGUAAAACBQAAABRidWlsZGluZ0ZpbmlzaEhlaWdodAUAAAAGaGVpZ2h0AgAAAAggbWludXRlcwMJAAAAAAAAAgkAAS8AAAACBQAAAAxzdHJBc3NldFR5cGUAAAAAAAAAAAQCAAAABFRFQ0gEAAAACmRpc2NvdmVyZWQJAAP8AAAABAkBAAAAB0FkZHJlc3MAAAABBQAAAA5uYXRpb25zQWRkcmVzcwIAAAAYc2V0VGVjbmhub2xvZ3lEaXNjb3ZlcmVkCQAETAAAAAIFAAAABmNhbGxlcgkABEwAAAACBQAAAAhhc3NldFN0cgUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAACmRpc2NvdmVyZWQGCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEFAAAAEUJ1aWxkaW5nU3RhdHVzS2V5CQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEFAAAAD2ZpbmlzaEhlaWdodEtleQUAAAADbmlsCQAAAgAAAAECAAAAHGVycm9yIGRpc2NvdmVyaW5nIHRlY2hub2xvZ3kEAAAACmFzc2V0UG93ZXIJAQAAABFjb25mVHJ5R2V0SW50ZWdlcgAAAAEJAAEsAAAAAgUAAAAIYXNzZXRTdHICAAAABl9Qb3dlcgQAAAAKYXNzZXRDb2lucwkAAGkAAAACCQAAaAAAAAIJAQAAABFjb25mVHJ5R2V0SW50ZWdlcgAAAAEJAAEsAAAAAgUAAAAMc2FjcmlmaWNla2V5AgAAAAVfQ29zdAAAAAAAAAAAFAAAAAAAAAAAZAMJAABmAAAAAgUAAAAKYXNzZXRQb3dlcgAAAAAAAAAAAAQAAAAMY3VycmVudFBvd2VyCQEAAAAUbmF0aW9uc1RyeUdldEludGVnZXIAAAABCQABLAAAAAIFAAAABmNhbGxlcgIAAAAGX1Bvd2VyBAAAAAJwdwkAA/wAAAAECQEAAAAHQWRkcmVzcwAAAAEFAAAADm5hdGlvbnNBZGRyZXNzAgAAAAxzZXRVc2VyUG93ZXIJAARMAAAAAgUAAAAGY2FsbGVyCQAETAAAAAIJAABkAAAAAgUAAAAMY3VycmVudFBvd2VyBQAAAAphc3NldFBvd2VyBQAAAANuaWwFAAAAA25pbAMJAAAAAAAAAgUAAAACcHcFAAAAAnB3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAhhc3NldEtleQUAAAAKYXNzZXRDb2lucwkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABBQAAABFCdWlsZGluZ1N0YXR1c0tleQkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABBQAAAA9maW5pc2hIZWlnaHRLZXkFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAACGFzc2V0S2V5BQAAAAphc3NldENvaW5zCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEFAAAAEUJ1aWxkaW5nU3RhdHVzS2V5CQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEFAAAAD2ZpbmlzaEhlaWdodEtleQUAAAADbmlsAQAAABNpbnRlcm5hbEZpbmlzaEJ1aWxkAAAABgAAAAZjYWxsZXIAAAAIYXNzZXRTdHIAAAAIYXNzZXRLZXkAAAARQnVpbGRpbmdTdGF0dXNLZXkAAAAPZmluaXNoSGVpZ2h0S2V5AAAADXRyYW5zYWN0aW9uSWQEAAAABmNodW5rcwkBAAAAEWdldEFzc2V0VHlwZUxldmVsAAAAAQUAAAAIYXNzZXRTdHIEAAAADHN0ckFzc2V0VHlwZQgFAAAABmNodW5rcwAAAAJfMQQAAAAFbGV2ZWwIBQAAAAZjaHVua3MAAAACXzIEAAAAFGJ1aWxkaW5nRmluaXNoSGVpZ2h0CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzBQAAAA9maW5pc2hIZWlnaHRLZXkDCQAAZgAAAAIFAAAAFGJ1aWxkaW5nRmluaXNoSGVpZ2h0BQAAAAZoZWlnaHQJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAB1CdWlsZGluZyBpcyBub3QgZmluaXNoZWQgeWV0IAkAAaQAAAABCQAAZQAAAAIFAAAAFGJ1aWxkaW5nRmluaXNoSGVpZ2h0BQAAAAZoZWlnaHQCAAAAJyBibG9ja3MgcmVtYWluaW5nLCBpdCB3aWxsIHRha2UgYXJvdW5kIAkAAaQAAAABCQAAZQAAAAIFAAAAFGJ1aWxkaW5nRmluaXNoSGVpZ2h0BQAAAAZoZWlnaHQCAAAACCBtaW51dGVzAwkAAAAAAAACCQABLwAAAAIFAAAADHN0ckFzc2V0VHlwZQAAAAAAAAAABAIAAAAEVEVDSAQAAAAKZGlzY292ZXJlZAkAA/wAAAAECQEAAAAHQWRkcmVzcwAAAAEFAAAADm5hdGlvbnNBZGRyZXNzAgAAABhzZXRUZWNuaG5vbG9neURpc2NvdmVyZWQJAARMAAAAAgUAAAAGY2FsbGVyCQAETAAAAAIFAAAACGFzc2V0U3RyBQAAAANuaWwFAAAAA25pbAMJAAAAAAAAAgUAAAAKZGlzY292ZXJlZAYJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQUAAAARQnVpbGRpbmdTdGF0dXNLZXkJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQUAAAAPZmluaXNoSGVpZ2h0S2V5BQAAAANuaWwJAAACAAAA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AAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAQZ2V0QXNzZXRPd25lcktleQAAAAIFAAAADXRyYW5zYWN0aW9uSWQFAAAACGFzc2V0U3RyCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgUAAAAMYWdnckFzc2V0a2V5AgAAAAZfT3duZXIFAAAABmNhbGxlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAMYWdnckFzc2V0a2V5CQAAZAAAAAIFAAAABWNvaW5zBQAAAAphc3NldENvaW5zCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAADGFnZ3JBc3NldGtleQIAAAAEX1F0eQkAAGQAAAACBQAAAANxdHkAAAAAAAAAAAEJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQUAAAARQnVpbGRpbmdTdGF0dXNLZXkJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQUAAAAPZmluaXNoSGVpZ2h0S2V5BQAAAANuaWwJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAACGFzc2V0S2V5BQAAAAphc3NldENvaW5zCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEFAAAAEUJ1aWxkaW5nU3RhdHVzS2V5CQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEFAAAAD2ZpbmlzaEhlaWdodEtleQUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEAAAAPY2hlY2tBc3NldE93bmVyAAAAAgAAAAZjYWxsZXIAAAAIYXNzZXRLZXkEAAAACmFzc2V0T3duZXIJAQAAAAx0cnlHZXRTdHJpbmcAAAABCQEAAAAWZ2V0QXNzZXRPd25lcktleVN0cmluZwAAAAEFAAAACGFzc2V0S2V5CQAAAAAAAAIFAAAACmFzc2V0T3duZXIFAAAABmNhbGxlcgEAAAAVaXNOYXRpb25SZXNlcnZlZEFzc2V0AAAAAgAAAAROYW1lAAAABUxldmVsBAAAAAFrCQEAAAAIZ2V0QUxLZXkAAAACBQAAAAROYW1lBQAAAAVMZXZl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AAECAAAAInlvdSBhcmUgbm90IHRoZSBvd25lciBvZiB0aGUgYXNzZXQEAAAABmNodW5rcwkBAAAAEWdldEFzc2V0VHlwZUxldmVsAAAAAQUAAAAMU2FjcmlmaWNlS2V5AwMJAQAAAAIhPQAAAAIFAAAACGFzc2V0U2FjCAUAAAAGY2h1bmtzAAAAAl8xBgkBAAAAAiE9AAAAAgUAAAALYXNzZXRTYWNsdmwIBQAAAAZjaHVua3MAAAACXzIJAAACAAAAAQIAAAAudGhlIHNhY3JpZmljZUFzc2V0IGhhcyB0aGUgd3JvbmcgdHlwZSBvciBsZXZlbAYBAAAAGUNoZWNrQXNzZXRCdWlsZGFibGVOYXRpb24AAAAEAAAABE5hbWUAAAAFTGV2ZWwAAAAJTmF0aW9uS2V5AAAADFNhY3JpZmljZUtleQQAAAAHY25mZ0tleQkBAAAACGdldEFMS2V5AAAAAgUAAAAETmFtZQUAAAAFTGV2ZWwEAAAAA3RlYwkBAAAAEGNvbmZUcnlHZXRTdHJpbmcAAAABCQABLAAAAAIFAAAAB2NuZmdLZXkCAAAAFl9UZWNuaG9sb2d5X2Rpc2NvdmVyZWQDCQEAAAACIT0AAAACBQAAAAN0ZWMCAAAAAAMJAQAAABRuYXRpb25zVHJ5R2V0Qm9vbGVhbgAAAAEJAAEsAAAAAgkAASwAAAACBQAAAAlOYXRpb25LZXkCAAAAAV8FAAAAA3RlYwkBAAAAHENoZWNrQXNzZXRCdWlsZGFibGVTYWNyaWZpY2UAAAADBQAAAAdjbmZnS2V5BQAAAAlOYXRpb25LZXkFAAAADFNhY3JpZmljZUtleQcJAQAAABxDaGVja0Fzc2V0QnVpbGRhYmxlU2FjcmlmaWNlAAAAAwUAAAAHY25mZ0tleQUAAAAJTmF0aW9uS2V5BQAAAAxTYWNyaWZpY2VLZXkBAAAAF0NoZWNrQXNzZXRCdWlsZGFibGVVc2VyAAAABAAAAAROYW1lAAAABUxldmVsAAAABmNhbGxlcgAAAAxTYWNyaWZpY2VLZXkEAAAABmNuZktleQkBAAAACGdldEFMS2V5AAAAAgUAAAAETmFtZQUAAAAFTGV2ZWwEAAAACG5hdGlvbklkCQEAAAAUbmF0aW9uc1RyeUdldEludGVnZXIAAAABBQAAAAZjYWxsZXIDCQAAAAAAAAIFAAAACG5hdGlvbklkAAAAAAAAAAAABwQAAAADdGVjCQEAAAAQY29uZlRyeUdldFN0cmluZwAAAAEJAAEsAAAAAgUAAAAGY25mS2V5AgAAABZfVGVjbmhvbG9neV9kaXNjb3ZlcmVkAwkBAAAAAiE9AAAAAgUAAAADdGVjAgAAAAAEAAAACU5hdGlvbktleQkBAAAAE25hdGlvbnNUcnlHZXRTdHJpbmcAAAABCQABpAAAAAEFAAAACG5hdGlvbklkAwkBAAAAFG5hdGlvbnNUcnlHZXRCb29sZWFuAAAAAQkAASwAAAACCQABLAAAAAIFAAAACU5hdGlvbktleQIAAAABXwUAAAADdGVjCQEAAAAcQ2hlY2tBc3NldEJ1aWxkYWJsZVNhY3JpZmljZQAAAAMFAAAABmNuZktleQUAAAAGY2FsbGVyBQAAAAxTYWNyaWZpY2VLZXkHCQEAAAAcQ2hlY2tBc3NldEJ1aWxkYWJsZVNhY3JpZmljZQAAAAMFAAAABmNuZktleQUAAAAGY2FsbGVyBQAAAAxTYWNyaWZpY2VLZXkBAAAAE0NoZWNrQXNzZXRCdWlsZGFibGUAAAAFAAAABE5hbWUAAAAFTGV2ZWwAAAAGQ2FsbGVyAAAACU5hdGlvbktleQAAAAxTYWNyaWZpY2VLZXkDCQEAAAACIT0AAAACBQAAAAlOYXRpb25LZXkCAAAAAAkBAAAAGUNoZWNrQXNzZXRCdWlsZGFibGVOYXRpb24AAAAEBQAAAAROYW1lBQAAAAVMZXZlbAUAAAAJTmF0aW9uS2V5BQAAAAxTYWNyaWZpY2VLZXkJAQAAABdDaGVja0Fzc2V0QnVpbGRhYmxlVXNlcgAAAAQFAAAABE5hbWUFAAAABUxldmVsBQAAAAZDYWxsZXIFAAAADFNhY3JpZmljZUtleQAAAAsAAAABaQEAAAAKU3RhcnRCdWlsZAAAAAQAAAAMc3RyQXNzZXRUeXBlAAAABUxldmVsAAAACU5hdGlvbktleQAAAAxTYWNyaWZpY2VLZXkDCQEAAAABIQAAAAEJAQAAABNDaGVja0Fzc2V0QnVpbGRhYmxlAAAABQUAAAAMc3RyQXNzZXRUeXBlBQAAAAVMZXZlbAkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAACU5hdGlvbktleQUAAAAMU2FjcmlmaWNlS2V5CQAAAgAAAAECAAAAGllvdSBjYW5ub3QgYnVpbGQgdGhpcyBJdGVtBAAAAAdjbmZnS2V5CQEAAAAIZ2V0QUxLZXkAAAACBQAAAAxzdHJBc3NldFR5cGUFAAAABUxldmVsBAAAABBkZWxheUZvckJ1aWxkaW5nCQEAAAARY29uZlRyeUdldEludGVnZXIAAAABCQABLAAAAAIFAAAAB2NuZmdLZXkCAAAACl9CdWlsZFRpbWUEAAAADmFzc2V0QnVpbGRDb3N0CQEAAAARY29uZlRyeUdldEludGVnZXIAAAABCQABLAAAAAIFAAAAB2NuZmdLZXkCAAAABV9Db3N0BAAAAA1Ub0FkbWluV2FsbGV0CQAAaQAAAAIJAABoAAAAAgUAAAAOYXNzZXRCdWlsZENvc3QAAAAAAAAAAAUAAAAAAAAAAGQEAAAAE1RvR2FtZVJld2FyZHNXYWxsZXQJAABpAAAAAgkAAGgAAAACBQAAAA5hc3NldEJ1aWxkQ29zdAAAAAAAAAAACgAAAAAAAAAAZAQAAAAWVG9TdGFraW5nUmV3YXJkc1dhbGxldAkAAGkAAAACCQAAaAAAAAIFAAAADmFzc2V0QnVpbGRDb3N0AAAAAAAAAABBAAAAAAAAAABkBAAAAA1Vbml0U3Rha2VTaGVnCQAAZQAAAAIJAABlAAAAAgkAAGUAAAACBQAAAA5hc3NldEJ1aWxkQ29zdAUAAAANVG9BZG1pbldhbGxldAUAAAATVG9HYW1lUmV3YXJkc1dhbGxldAUAAAAWVG9TdGFraW5nUmV3YXJkc1dhbGxldAMJAQAAABVpc05hdGlvblJlc2VydmVkQXNzZXQAAAACBQAAAAxzdHJBc3NldFR5cGUFAAAABUxldmVsAwMJAQAAAAEhAAAAAQkBAAAAD2NoZWNrQXNzZXRPd25lcgAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAAAlOYXRpb25LZXkJAQAAAAEhAAAAAQkBAAAACmNoZWNrQWRtaW4AAAABCAUAAAABaQAAAAZjYWxsZXIHCQAAAgAAAAECAAAAI1lvdSBhcmUgbm90IHRoZSBvd25lciBvZiB0aGUgbmF0aW9uBAAAAApuYXRpb25zaGVnCQEAAAAVdHJlYXN1cnlUcnlHZXRJbnRlZ2VyAAAAAQkBAAAADmdldFRyZWFzdXJ5S2V5AAAAAQUAAAAJTmF0aW9uS2V5AwkAAGYAAAACBQAAAA5hc3NldEJ1aWxkQ29zdAUAAAAKbmF0aW9uc2hlZwkAAAIAAAABAgAAAB5UaGUgbmF0aW9uIGhhc24ndCBlbm91Z2ggZnVuZHMEAAAAAWQJAAP8AAAABAkBAAAAB0FkZHJlc3MAAAABBQAAAA90cmVhc3VyeUFkZHJlc3MCAAAAFGRlY3JlYXNlTmF0aW9uV2FsbGV0CQAETAAAAAIFAAAACU5hdGlvbktleQkABEwAAAACBQAAAA5hc3NldEJ1aWxkQ29zdAUAAAADbmlsBQAAAANuaWwEAAAAByRtYXRjaDAFAAAAAWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABcgUAAAAHJG1hdGNoMAQAAAACcHcJAAP8AAAABAkBAAAAB0FkZHJlc3MAAAABBQAAAA90cmVhc3VyeUFkZHJlc3MCAAAAEWFyYml0cmFyeUFkZENvaW5zCQAETAAAAAIFAAAACU5hdGlvbktleQkABEwAAAACBQAAAA1Vbml0U3Rha2VTaGVnBQAAAANuaWwFAAAAA25pbAQAAAAHJG1hdGNoMQUAAAACcHcDCQAAAQAAAAIFAAAAByRtYXRjaDECAAAAA0ludAQAAAABYgUAAAAHJG1hdGNoMQQAAAAIdHJhbnNmZXIJAAP8AAAABAkBAAAAB0FkZHJlc3MAAAABBQAAAA90cmVhc3VyeUFkZHJlc3MCAAAAGmRpc3RyaWJ1dGVOYXRpb25QYXlSZXdhcmRzCQAETAAAAAIFAAAADmFzc2V0QnVpbGRDb3N0BQAAAANuaWwFAAAAA25pbAQAAAAHJG1hdGNoMgUAAAAIdHJhbnNmZXIDCQAAAQAAAAIFAAAAByRtYXRjaDICAAAAA0ludAQAAAABdAUAAAAHJG1hdGNoMgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAUZ2V0QnVpbGRpbmdTdGF0dXNLZXkAAAADCQAEJQAAAAEIBQAAAAFpAAAADG9yaWdpbkNhbGxlcggFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAUAAAAHY25mZ0tleQUAAAAMQnVpbGRTdGFydGVkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABBnZXRBc3NldE93bmVyS2V5AAAAAggFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAUAAAAHY25mZ0tleQUAAAAJTmF0aW9uS2V5CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAaZ2V0QnVpbGRpbmdGaW5pc2hIZWlnaHRLZXkAAAADCQAEJQAAAAEIBQAAAAFpAAAADG9yaWdpbkNhbGxlcggFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAUAAAAHY25mZ0tleQkAAGQAAAACBQAAAAZoZWlnaHQFAAAAEGRlbGF5Rm9yQnVpbGRpbmcFAAAAA25pbAkAAAIAAAABAgAAACBFcnJvciBEaXN0cmlidXRpbmcgYXNzZXQgcmV3YXJkcwkAAAIAAAABAgAAAB1FcnJvciBEZXBvc2l0aW5nIG5hdGlvbiBmdW5kcwkAAAIAAAABAgAAAB1FcnJvciBEZXBvc2l0aW5nIG5hdGlvbiBmdW5kcwQAAAAIYXNzZXRTYWMJAQAAABBjb25mVHJ5R2V0U3RyaW5nAAAAAQkAASwAAAACBQAAAAdjbmZnS2V5AgAAAA9fU2FjcmlmaWNlQXNzZXQDCQEAAAACIT0AAAACBQAAAAhhc3NldFNhYwIAAAAACQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEFAAAADFNhY3JpZmljZUtleQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAUZ2V0QnVpbGRpbmdTdGF0dXNLZXkAAAADCQAEJQAAAAEIBQAAAAFpAAAADG9yaWdpbkNhbGxlcggFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAUAAAAHY25mZ0tleQUAAAAMQnVpbGRTdGFydGVkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABBnZXRBc3NldE93bmVyS2V5AAAAAggFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAUAAAAHY25mZ0tleQkABCUAAAABCAUAAAABaQAAAAxvcmlnaW5DYWxsZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABpnZXRCdWlsZGluZ0ZpbmlzaEhlaWdodEtleQAAAAMJAAQlAAAAAQgFAAAAAWkAAAAMb3JpZ2luQ2FsbGVyCAUAAAABaQAAAA10cmFuc2FjdGlvbklkBQAAAAdjbmZnS2V5CQAAZAAAAAIFAAAABmhlaWdodAUAAAAQZGVsYXlGb3JCdWlsZGluZwUAAAADbmlsBAAAAAhhbW91bnRJbgkBAAAABXZhbHVlAAAAAQgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAGYW1vdW50AwkAAGYAAAACBQAAAA5hc3NldEJ1aWxkQ29zdAUAAAAIYW1vdW50SW4JAAACAAAAAQkAASwAAAACAgAAAD5Zb3UgcHJvdmlkZWQgbGVzcyAkaGVnIHRoYW4gdGhlIG5lZWRlZCBjb3N0IGZvciBidWlsZGluZyB0aGlzIAUAAAAMc3RyQXNzZXRUeXBlAwkBAAAAAiE9AAAAAggJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAHYXNzZXRJZAUAAAAKc2hpbnl3Z2dpZAkAAAIAAAABAgAAABpPbmx5ICRIRUcgcGF5bWVudHMgYWxsb3dlZAQAAAACcHcJAAP8AAAABAkBAAAAB0FkZHJlc3MAAAABBQAAAA90cmVhc3VyeUFkZHJlc3MCAAAAB0RlcG9zaXQFAAAAA25pbAkABEwAAAACCQEAAAAPQXR0YWNoZWRQYXltZW50AAAAAgUAAAAKc2hpbnl3Z2dpZAUAAAANVW5pdFN0YWtlU2hlZwUAAAADbmlsBAAAAAckbWF0Y2gwBQAAAAJwdwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFyBQAAAAckbWF0Y2gwCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABRnZXRCdWlsZGluZ1N0YXR1c0tleQAAAAMJAAQlAAAAAQgFAAAAAWkAAAAMb3JpZ2luQ2FsbGVyCAUAAAABaQAAAA10cmFuc2FjdGlvbklkBQAAAAdjbmZnS2V5BQAAAAxCdWlsZFN0YXJ0ZWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEGdldEFzc2V0T3duZXJLZXkAAAACCAUAAAABaQAAAA10cmFuc2FjdGlvbklkBQAAAAdjbmZnS2V5CQAEJQAAAAEIBQAAAAFpAAAADG9yaWdpbkNhbGxlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAGmdldEJ1aWxkaW5nRmluaXNoSGVpZ2h0S2V5AAAAAwkABCUAAAABCAUAAAABaQAAAAxvcmlnaW5DYWxsZXIIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQFAAAAB2NuZmdLZXkJAABkAAAAAgUAAAAGaGVpZ2h0BQAAABBkZWxheUZvckJ1aWxkaW5nCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAC2FkbWluV2FsbGV0BQAAAA1Ub0FkbWluV2FsbGV0BQAAAApzaGlueXdnZ2lkCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAFmRhaWx5R2FtZVJld2FyZHNXYWxsZXQFAAAAE1RvR2FtZVJld2FyZHNXYWxsZXQFAAAACnNoaW55d2dnaWQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAZZGFpbHlTdGFraW5nUmV3YXJkc1dhbGxldAUAAAAWVG9TdGFraW5nUmV3YXJkc1dhbGxldAUAAAAKc2hpbnl3Z2dpZAUAAAADbmlsCQAAAgAAAAECAAAAF0luY29ycmVjdCBpbnZva2UgcmVzdWx0AAAAAWkBAAAAC0ZpbmlzaEJ1aWxkAAAABAAAAAd0eElkU3RyAAAACGFzc2V0U3RyAAAABUxldmVsAAAACU5hdGlvbktleQQAAAAEdHhJZAkAAlkAAAABBQAAAAd0eElkU3RyBAAAAAVBTEtleQkBAAAACGdldEFMS2V5AAAAAgUAAAAIYXNzZXRTdHIFAAAABUxldmVsBAAAABFCdWlsZGluZ1N0YXR1c0tleQkBAAAAFGdldEJ1aWxkaW5nU3RhdHVzS2V5AAAAAwkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAABHR4SWQFAAAABUFMS2V5BAAAAA9maW5pc2hIZWlnaHRLZXkJAQAAABpnZXRCdWlsZGluZ0ZpbmlzaEhlaWdodEtleQAAAAMJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAAAR0eElkBQAAAAVBTEtleQQAAAAIYXNzZXRLZXkJAQAAAA1nZXRBc3NldElkS2V5AAAAAgUAAAAEdHhJZAUAAAAFQUxLZXkEAAAACmFzc2V0T3duZXIJAQAAAAx0cnlHZXRTdHJpbmcAAAABCQEAAAAQZ2V0QXNzZXRPd25lcktleQAAAAIFAAAABHR4SWQFAAAABUFMS2V5AwkBAAAAFWlzTmF0aW9uUmVzZXJ2ZWRBc3NldAAAAAIFAAAACGFzc2V0U3RyBQAAAAVMZXZlbAMDCQEAAAABIQAAAAEJAQAAAA9jaGVja0Fzc2V0T3duZXIAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAJTmF0aW9uS2V5CQEAAAABIQAAAAEJAQAAAApjaGVja0FkbWluAAAAAQgFAAAAAWkAAAAGY2FsbGVyBwkAAAIAAAABAgAAADBZb3UgYXJlIG5vdCBhdXRob3JpemVkIHRvIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24JAQAAABNpbnRlcm5hbEZpbmlzaEJ1aWxkAAAABgUAAAAJTmF0aW9uS2V5BQAAAAVBTEtleQUAAAAIYXNzZXRLZXkFAAAAEUJ1aWxkaW5nU3RhdHVzS2V5BQAAAA9maW5pc2hIZWlnaHRLZXkFAAAABHR4SWQDCQEAAAACIT0AAAACBQAAAAphc3NldE93bmVyCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgkAAAIAAAABCQABLAAAAAICAAAAIVlvdSBjYW5ub3QgY2xhaW0gb3RoZXIncyBwbGF5ZXJzIAUAAAAIYXNzZXRTdHIEAAAAEGJ1aWxkaW5nVHhTdGF0dXMJAQAAAAx0cnlHZXRTdHJpbmcAAAABBQAAABFCdWlsZGluZ1N0YXR1c0tleQMJAAAAAAAAAgUAAAAQYnVpbGRpbmdUeFN0YXR1cwIAAAAACQAAAgAAAAECAAAAJE5vIHBlbmRpbmcgb3BlcmF0aW9ucyBmb3IgdGhpcyBhc3NldAQAAAAIYXNzZXRTYWMJAQAAABBjb25mVHJ5R2V0U3RyaW5nAAAAAQkAASwAAAACBQAAAAVBTEtleQIAAAAPX1NhY3JpZmljZUFzc2V0AwkBAAAAAiE9AAAAAgUAAAAIYXNzZXRTYWMCAAAAAAkBAAAAHGludGVybmFsU2FjcmlmaWNlRmluaXNoQnVpbGQAAAAGCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAFQUxLZXkFAAAACGFzc2V0S2V5BQAAABFCdWlsZGluZ1N0YXR1c0tleQUAAAAPZmluaXNoSGVpZ2h0S2V5BQAAAAhhc3NldFNhYwkBAAAAE2ludGVybmFsRmluaXNoQnVpbGQAAAAGCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAFQUxLZXkFAAAACGFzc2V0S2V5BQAAABFCdWlsZGluZ1N0YXR1c0tleQUAAAAPZmluaXNoSGVpZ2h0S2V5BQAAAAR0eElkAAAAAWkBAAAAEXRyYW5zZmVyT3duZXJzaGlwAAAAAgAAAAdhc3NldElkAAAACG5ld093bmVyAwkBAAAAASEAAAABCQEAAAAKY2hlY2tBZG1pbgAAAAEIBQAAAAFpAAAABmNhbGxlcgkAAAIAAAABAgAAAClPbmx5IHRoZSBhZG1pbiBjYW4gcGVyZm9ybSB0aGlzIG9wZXJhdGlvbgkABRQAAAACCQEAAAAZaW50ZXJuYWxUcmFzbmZlck93bmVyc2hpcAAAAAIFAAAAB2Fzc2V0SWQFAAAACG5ld093bmVyBQAAAAhuZXdPd25lcgAAAAFpAQAAABdkZXN0cm95QXNzZXRBbmRUcmFuc2ZlcgAAAAIAAAAHYXNzZXRJZAAAAAl0b0FkZHJlc3MEAAAABmNodW5rcwkBAAAAEWdldEFzc2V0VHlwZUxldmVsAAAAAQUAAAAHYXNzZXRJZAQAAAAMc3RyQXNzZXRUeXBlCAUAAAAGY2h1bmtzAAAAAl8xBAAAAAVsZXZlbAgFAAAABmNodW5rcwAAAAJfMgQAAAABawkBAAAACGdldEFMS2V5AAAAAgUAAAAMc3RyQXNzZXRUeXBlBQAAAAVsZXZlbAMJAQAAAAEhAAAAAQkBAAAACmNoZWNrQWRtaW4AAAABCAUAAAABaQAAAAZjYWxsZXIJAAACAAAAAQIAAAApT25seSB0aGUgYWRtaW4gY2FuIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24EAAAACG9sZE93bmVyCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQkBAAAAFmdldEFzc2V0T3duZXJLZXlTdHJpbmcAAAABBQAAAAdhc3NldElkBAAAAAphc3NldENvaW5zCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEFAAAAB2Fzc2V0SWQE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", "height": 2114945, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6Zs2KL3wx7DTg1GfkBK2n1U8Hsci1eA9d8qxpy5YKnfd Next: 8sX18uh244jTMgRJK7pBqyXMxpPnJXs2nTMR2XfgLw3K Diff:
OldNewDifferences
191191 }
192192 else {
193193 let aa = u((P + "_Power"))
194+ let ab = ((u((X + "_Cost")) * 20) / 100)
195+ if ((aa > 0))
196+ then {
197+ let ac = A((k + "_Power"))
198+ let ad = invoke(Address(f), "setUserPower", [k, (ac + aa)], nil)
199+ if ((ad == ad))
200+ then [IntegerEntry(U, ab), DeleteEntry(V), DeleteEntry(W)]
201+ else throw("Strict value is not equal to itself.")
202+ }
203+ else [IntegerEntry(U, ab), DeleteEntry(V), DeleteEntry(W)]
204+ }
205+ }
206+
207+
208+func ae (k,P,U,V,W,af) = {
209+ let Q = O(P)
210+ let R = Q._1
211+ let S = Q._2
212+ let Y = getIntegerValue(this, W)
213+ if ((Y > height))
214+ then throw((((("Building is not finished yet " + toString((Y - height))) + " blocks remaining, it will take around ") + toString((Y - height))) + " minutes"))
215+ else if ((take(R, 4) == "TECH"))
216+ then {
217+ let Z = invoke(Address(f), "setTecnhnologyDiscovered", [k, P], nil)
218+ if ((Z == true))
219+ then [DeleteEntry(V), DeleteEntry(W)]
220+ else throw("error discovering technology")
221+ }
222+ else {
223+ let aa = u((P + "_Power"))
194224 let ab = ((u((P + "_Cost")) * 20) / 100)
195- let ac = invoke(Address(b), "Pay", [k, ab], nil)
196- if ((ac == ac))
225+ let ag = invoke(Address(b), "Pay", [k, ab], nil)
226+ if ((ag == ag))
197227 then if ((aa > 0))
198228 then {
199- let ad = A((k + "_Power"))
200- let ae = invoke(Address(f), "setUserPower", [k, (ad + aa)], nil)
201- if ((ae == ae))
229+ let ac = A((k + "_Power"))
230+ let ad = invoke(Address(f), "setUserPower", [k, (ac + aa)], nil)
231+ if ((ad == ad))
202232 then if (w((P + "_Aggregated")))
203233 then {
204- let af = ((P + "_") + k)
205- let ag = l(af)
206- let ah = l((af + "_Qty"))
207-[DeleteEntry(K(X, P)), StringEntry((af + "_Owner"), k), IntegerEntry(af, (ag + ab)), IntegerEntry((af + "_Qty"), (ah + 1)), DeleteEntry(V), DeleteEntry(W)]
234+ let ah = ((P + "_") + k)
235+ let ai = l(ah)
236+ let aj = l((ah + "_Qty"))
237+[DeleteEntry(K(af, P)), StringEntry((ah + "_Owner"), k), IntegerEntry(ah, (ai + ab)), IntegerEntry((ah + "_Qty"), (aj + 1)), DeleteEntry(V), DeleteEntry(W)]
208238 }
209239 else [IntegerEntry(U, ab), DeleteEntry(V), DeleteEntry(W)]
210240 else throw("Strict value is not equal to itself.")
211241 }
212242 else if (w((P + "_Aggregated")))
213243 then {
214- let af = ((P + "_") + k)
215- let ag = l(af)
216- let ah = l((af + "_Qty"))
217-[DeleteEntry(K(X, P)), StringEntry((af + "_Owner"), k), IntegerEntry(af, (ag + ab)), IntegerEntry((af + "_Qty"), (ah + 1)), DeleteEntry(V), DeleteEntry(W)]
244+ let ah = ((P + "_") + k)
245+ let ai = l(ah)
246+ let aj = l((ah + "_Qty"))
247+[DeleteEntry(K(af, P)), StringEntry((ah + "_Owner"), k), IntegerEntry(ah, (ai + ab)), IntegerEntry((ah + "_Qty"), (aj + 1)), DeleteEntry(V), DeleteEntry(W)]
218248 }
219249 else [IntegerEntry(U, ab), DeleteEntry(V), DeleteEntry(W)]
220250 else throw("Strict value is not equal to itself.")
222252 }
223253
224254
225-func ai (k,U) = {
226- let aj = q(D(U))
227- (aj == k)
255+func ak (k,U) = {
256+ let al = q(D(U))
257+ (al == k)
228258 }
229259
230260
231-func ak (s,t) = {
232- let al = r(s, t)
233- w((al + "_NationReserved"))
261+func am (s,t) = {
262+ let an = r(s, t)
263+ w((an + "_NationReserved"))
234264 }
235265
236266
237-func am (E,an) = {
267+func ao (E,ap) = {
238268 let Q = O(E)
239269 let R = Q._1
240270 let S = Q._2
241- let al = r(R, S)
242- let ao = q(D(E))
243- let aa = u((al + "_Power"))
271+ let an = r(R, S)
272+ let aq = q(D(E))
273+ let aa = u((an + "_Power"))
244274 if ((aa > 0))
245275 then {
246- let ad = A((ao + "_Power"))
247- let ae = invoke(Address(f), "setUserPower", [ao, (ad - aa)], nil)
248- if ((ae == ae))
249- then if ((ae != (ad - aa)))
276+ let ac = A((aq + "_Power"))
277+ let ad = invoke(Address(f), "setUserPower", [aq, (ac - aa)], nil)
278+ if ((ad == ad))
279+ then if ((ad != (ac - aa)))
250280 then throw("Incorrect invoke result")
251281 else {
252- let ap = A((an + "_Power"))
253- let aq = invoke(Address(f), "setUserPower", [an, (ap + aa)], nil)
254- if ((aq == aq))
282+ let ar = A((ap + "_Power"))
283+ let as = invoke(Address(f), "setUserPower", [ap, (ar + aa)], nil)
284+ if ((as == as))
255285 then {
256- let n = aq
286+ let n = as
257287 if ($isInstanceOf(n, "Int"))
258288 then {
259- let ar = n
260-[StringEntry(D(E), an)]
289+ let at = n
290+[StringEntry(D(E), ap)]
261291 }
262292 else throw("Incorrect invoke result")
263293 }
265295 }
266296 else throw("Strict value is not equal to itself.")
267297 }
268- else [StringEntry(D(E), an)]
298+ else [StringEntry(D(E), ap)]
269299 }
270300
271301
272-func as (at,k,au) = {
273- let av = v((at + "_SacrificeAsset"))
274- let aw = u((at + "_SacrificeAssetLevel"))
275- if ((av == ""))
302+func au (av,k,aw) = {
303+ let ax = v((av + "_SacrificeAsset"))
304+ let ay = u((av + "_SacrificeAssetLevel"))
305+ if ((ax == ""))
276306 then true
277- else if (!(ai(k, au)))
307+ else if (!(ak(k, aw)))
278308 then throw("you are not the owner of the asset")
279309 else {
280- let Q = O(au)
281- if (if ((av != Q._1))
310+ let Q = O(aw)
311+ if (if ((ax != Q._1))
282312 then true
283- else (aw != Q._2))
313+ else (ay != Q._2))
284314 then throw("the sacrificeAsset has the wrong type or level")
285315 else true
286316 }
287317 }
288318
289319
290-func ax (s,t,ay,au) = {
291- let az = r(s, t)
292- let aA = v((az + "_Tecnhology_discovered"))
293- if ((aA != ""))
294- then if (B(((ay + "_") + aA)))
295- then as(az, ay, au)
320+func az (s,t,aA,aw) = {
321+ let aB = r(s, t)
322+ let aC = v((aB + "_Tecnhology_discovered"))
323+ if ((aC != ""))
324+ then if (B(((aA + "_") + aC)))
325+ then au(aB, aA, aw)
296326 else false
297- else as(az, ay, au)
327+ else au(aB, aA, aw)
298328 }
299329
300330
301-func aB (s,t,k,au) = {
302- let aC = r(s, t)
303- let aD = A(k)
304- if ((aD == 0))
331+func aD (s,t,k,aw) = {
332+ let aE = r(s, t)
333+ let aF = A(k)
334+ if ((aF == 0))
305335 then false
306336 else {
307- let aA = v((aC + "_Tecnhology_discovered"))
308- if ((aA != ""))
337+ let aC = v((aE + "_Tecnhology_discovered"))
338+ if ((aC != ""))
309339 then {
310- let ay = C(toString(aD))
311- if (B(((ay + "_") + aA)))
312- then as(aC, k, au)
340+ let aA = C(toString(aF))
341+ if (B(((aA + "_") + aC)))
342+ then au(aE, k, aw)
313343 else false
314344 }
315- else as(aC, k, au)
345+ else au(aE, k, aw)
316346 }
317347 }
318348
319349
320-func aE (s,t,aF,ay,au) = if ((ay != ""))
321- then ax(s, t, ay, au)
322- else aB(s, t, aF, au)
350+func aG (s,t,aH,aA,aw) = if ((aA != ""))
351+ then az(s, t, aA, aw)
352+ else aD(s, t, aH, aw)
323353
324354
325-@Callable(aG)
326-func StartBuild (R,t,ay,au) = if (!(aE(R, t, toString(aG.caller), ay, au)))
355+@Callable(aI)
356+func StartBuild (R,t,aA,aw) = if (!(aG(R, t, toString(aI.caller), aA, aw)))
327357 then throw("You cannot build this Item")
328358 else {
329- let az = r(R, t)
330- let aH = u((az + "_BuildTime"))
331- let aI = u((az + "_Cost"))
332- let aJ = ((aI * 5) / 100)
333- let aK = ((aI * 10) / 100)
334- let aL = ((aI * 65) / 100)
335- let aM = (((aI - aJ) - aK) - aL)
336- if (ak(R, t))
337- then if (if (!(ai(toString(aG.caller), ay)))
338- then !(j(aG.caller))
359+ let aB = r(R, t)
360+ let aJ = u((aB + "_BuildTime"))
361+ let aK = u((aB + "_Cost"))
362+ let aL = ((aK * 5) / 100)
363+ let aM = ((aK * 10) / 100)
364+ let aN = ((aK * 65) / 100)
365+ let aO = (((aK - aL) - aM) - aN)
366+ if (am(R, t))
367+ then if (if (!(ak(toString(aI.caller), aA)))
368+ then !(j(aI.caller))
339369 else false)
340370 then throw("You are not the owner of the nation")
341371 else {
342- let aN = z(x(ay))
343- if ((aI > aN))
372+ let aP = z(x(aA))
373+ if ((aK > aP))
344374 then throw("The nation hasn't enough funds")
345375 else {
346- let aO = invoke(Address(b), "decreaseNationWallet", [ay, aI], nil)
347- let n = aO
376+ let aQ = invoke(Address(b), "decreaseNationWallet", [aA, aK], nil)
377+ let n = aQ
348378 if ($isInstanceOf(n, "Int"))
349379 then {
350- let ar = n
351- let ae = invoke(Address(b), "arbitraryAddCoins", [ay, aM], nil)
352- let aP = ae
353- if ($isInstanceOf(aP, "Int"))
380+ let at = n
381+ let ad = invoke(Address(b), "arbitraryAddCoins", [aA, aO], nil)
382+ let aR = ad
383+ if ($isInstanceOf(aR, "Int"))
354384 then {
355- let o = aP
356- let aQ = invoke(Address(b), "distributeNationPayRewards", [aI], nil)
357- let aR = aQ
358- if ($isInstanceOf(aR, "Int"))
385+ let o = aR
386+ let aS = invoke(Address(b), "distributeNationPayRewards", [aK], nil)
387+ let aT = aS
388+ if ($isInstanceOf(aT, "Int"))
359389 then {
360- let aS = aR
361-[StringEntry(N(toString(aG.originCaller), aG.transactionId, az), F), StringEntry(K(aG.transactionId, az), ay), IntegerEntry(L(toString(aG.originCaller), aG.transactionId, az), (height + aH))]
390+ let aU = aT
391+[StringEntry(N(toString(aI.originCaller), aI.transactionId, aB), F), StringEntry(K(aI.transactionId, aB), aA), IntegerEntry(L(toString(aI.originCaller), aI.transactionId, aB), (height + aJ))]
362392 }
363393 else throw("Error Distributing asset rewards")
364394 }
368398 }
369399 }
370400 else {
371- let av = v((az + "_SacrificeAsset"))
372- if ((av != ""))
373- then {
374- let ae = invoke(Address(b), "NoPaymentDeposit", [toString(aG.caller), aM], nil)
375- let n = ae
376- if ($isInstanceOf(n, "Int"))
377- then {
378- let ar = n
379- let aQ = invoke(Address(b), "distributeNationPayRewards", [aI], nil)
380- let aP = aQ
381- if ($isInstanceOf(aP, "Int"))
382- then {
383- let aS = aP
384-[DeleteEntry(au), StringEntry(N(toString(aG.originCaller), aG.transactionId, az), F), StringEntry(K(aG.transactionId, az), ay), IntegerEntry(L(toString(aG.originCaller), aG.transactionId, az), (height + aH))]
385- }
386- else throw("Error Distributing asset rewards")
387- }
388- else throw("Error adding deposit")
389- }
401+ let ax = v((aB + "_SacrificeAsset"))
402+ if ((ax != ""))
403+ then [DeleteEntry(aw), StringEntry(N(toString(aI.originCaller), aI.transactionId, aB), F), StringEntry(K(aI.transactionId, aB), toString(aI.originCaller)), IntegerEntry(L(toString(aI.originCaller), aI.transactionId, aB), (height + aJ))]
390404 else {
391- let aT = value(aG.payments[0].amount)
392- if ((aI > aT))
405+ let aV = value(aI.payments[0].amount)
406+ if ((aK > aV))
393407 then throw(("You provided less $heg than the needed cost for building this " + R))
394- else if ((aG.payments[0].assetId != a))
408+ else if ((aI.payments[0].assetId != a))
395409 then throw("Only $HEG payments allowed")
396410 else {
397- let ae = invoke(Address(b), "Deposit", nil, [AttachedPayment(a, aM)])
398- let n = ae
411+ let ad = invoke(Address(b), "Deposit", nil, [AttachedPayment(a, aO)])
412+ let n = ad
399413 if ($isInstanceOf(n, "Int"))
400414 then {
401- let ar = n
402-[StringEntry(N(toString(aG.originCaller), aG.transactionId, az), F), StringEntry(K(aG.transactionId, az), toString(aG.originCaller)), IntegerEntry(L(toString(aG.originCaller), aG.transactionId, az), (height + aH)), ScriptTransfer(g, aJ, a), ScriptTransfer(h, aK, a), ScriptTransfer(i, aL, a)]
415+ let at = n
416+[StringEntry(N(toString(aI.originCaller), aI.transactionId, aB), F), StringEntry(K(aI.transactionId, aB), toString(aI.originCaller)), IntegerEntry(L(toString(aI.originCaller), aI.transactionId, aB), (height + aJ)), ScriptTransfer(g, aL, a), ScriptTransfer(h, aM, a), ScriptTransfer(i, aN, a)]
403417 }
404418 else throw("Incorrect invoke result")
405419 }
409423
410424
411425
412-@Callable(aG)
413-func FinishBuild (aU,P,t,ay) = {
414- let I = fromBase58String(aU)
415- let at = r(P, t)
416- let V = N(toString(aG.caller), I, at)
417- let W = L(toString(aG.caller), I, at)
418- let U = H(I, at)
419- let aj = q(K(I, at))
420- if (ak(P, t))
421- then if (if (!(ai(toString(aG.caller), ay)))
422- then !(j(aG.caller))
426+@Callable(aI)
427+func FinishBuild (aW,P,t,aA) = {
428+ let I = fromBase58String(aW)
429+ let av = r(P, t)
430+ let V = N(toString(aI.caller), I, av)
431+ let W = L(toString(aI.caller), I, av)
432+ let U = H(I, av)
433+ let al = q(K(I, av))
434+ if (am(P, t))
435+ then if (if (!(ak(toString(aI.caller), aA)))
436+ then !(j(aI.caller))
423437 else false)
424438 then throw("You are not authorized to perform this operation")
425- else T(ay, at, U, V, W, I)
426- else if ((aj != toString(aG.caller)))
439+ else ae(aA, av, U, V, W, I)
440+ else if ((al != toString(aI.caller)))
427441 then throw(("You cannot claim other's players " + P))
428442 else {
429- let aV = q(V)
430- if ((aV == ""))
443+ let aX = q(V)
444+ if ((aX == ""))
431445 then throw("No pending operations for this asset")
432- else T(toString(aG.caller), at, U, V, W, I)
446+ else {
447+ let ax = v((av + "_SacrificeAsset"))
448+ if ((ax != ""))
449+ then T(toString(aI.caller), av, U, V, W, ax)
450+ else ae(toString(aI.caller), av, U, V, W, I)
451+ }
433452 }
434453 }
435454
436455
437456
438-@Callable(aG)
439-func transferOwnership (E,an) = if (!(j(aG.caller)))
457+@Callable(aI)
458+func transferOwnership (E,ap) = if (!(j(aI.caller)))
440459 then throw("Only the admin can perform this operation")
441- else $Tuple2(am(E, an), an)
460+ else $Tuple2(ao(E, ap), ap)
442461
443462
444463
445-@Callable(aG)
446-func destroyAssetAndTransfer (E,aW) = {
464+@Callable(aI)
465+func destroyAssetAndTransfer (E,aY) = {
447466 let Q = O(E)
448467 let R = Q._1
449468 let S = Q._2
450- let al = r(R, S)
451- if (!(j(aG.caller)))
469+ let an = r(R, S)
470+ if (!(j(aI.caller)))
452471 then throw("Only the admin can perform this operation")
453472 else {
454- let ao = q(D(E))
473+ let aq = q(D(E))
455474 let ab = l(E)
456- let ac = invoke(Address(b), "adminTransfer", [addressFromStringValue(aW), ab], nil)
457- if ((ac == ac))
475+ let ag = invoke(Address(b), "adminTransfer", [addressFromStringValue(aY), ab], nil)
476+ if ((ag == ag))
458477 then {
459- let ad = A((ao + "_Power"))
460- let aa = u((al + "_Power"))
461- let ae = invoke(Address(f), "setUserPower", [toString(aG.caller), (ad - aa)], nil)
462- if ((ae == ae))
478+ let ac = A((aq + "_Power"))
479+ let aa = u((an + "_Power"))
480+ let ad = invoke(Address(f), "setUserPower", [toString(aI.caller), (ac - aa)], nil)
481+ if ((ad == ad))
463482 then {
464- let n = ae
483+ let n = ad
465484 if ($isInstanceOf(n, "Int"))
466485 then {
467- let ar = n
486+ let at = n
468487 [DeleteEntry(E)]
469488 }
470489 else throw("Error setting user power")
477496
478497
479498
480-@Callable(aG)
481-func destroyAssetFromUser (E,ah) = {
499+@Callable(aI)
500+func destroyAssetFromUser (E,aj) = {
482501 let Q = O(E)
483502 let R = Q._1
484503 let S = Q._2
485- let al = r(R, S)
486- if (!(ai(toString(aG.caller), E)))
504+ let an = r(R, S)
505+ if (!(ak(toString(aI.caller), E)))
487506 then throw("You don't own this asset")
488507 else {
489508 let ab = l(E)
490- let ad = A((toString(aG.caller) + "_Power"))
491- let aa = u((al + "_Power"))
492- if (w((al + "_Aggregated")))
509+ let ac = A((toString(aI.caller) + "_Power"))
510+ let aa = u((an + "_Power"))
511+ if (w((an + "_Aggregated")))
493512 then {
494- let aX = ((u((al + "_Cost")) * 20) / 100)
495- let aY = l((al + "_Qty"))
496- if ((0 > (aY - ah)))
513+ let aZ = ((u((an + "_Cost")) * 20) / 100)
514+ let ba = l((an + "_Qty"))
515+ if ((0 > (ba - aj)))
497516 then throw(("you don't have enough " + R))
498517 else {
499- let ae = invoke(Address(f), "setUserPower", [toString(aG.caller), (ad - (aa * ah))], nil)
500- let n = ae
518+ let ad = invoke(Address(f), "setUserPower", [toString(aI.caller), (ac - (aa * aj))], nil)
519+ let n = ad
501520 if ($isInstanceOf(n, "Int"))
502521 then {
503- let ar = n
504- let aZ = invoke(Address(b), "adminTransfer", [toString(aG.caller), (aX * ah)], nil)
505- let aP = aZ
506- if ($isInstanceOf(aP, "Int"))
522+ let at = n
523+ let bb = invoke(Address(b), "adminTransfer", [toString(aI.caller), (aZ * aj)], nil)
524+ let aR = bb
525+ if ($isInstanceOf(aR, "Int"))
507526 then {
508- let aS = aP
509- if (((aY - ah) > 0))
510- then [IntegerEntry((al + "_Qty"), (aY - ah))]
527+ let aU = aR
528+ if (((ba - aj) > 0))
529+ then [IntegerEntry((an + "_Qty"), (ba - aj))]
511530 else [DeleteEntry(E)]
512531 }
513532 else throw("Error transferring coins")
516535 }
517536 }
518537 else {
519- let ae = invoke(Address(f), "setUserPower", [toString(aG.caller), (ad - aa)], nil)
520- let n = ae
538+ let ad = invoke(Address(f), "setUserPower", [toString(aI.caller), (ac - aa)], nil)
539+ let n = ad
521540 if ($isInstanceOf(n, "Int"))
522541 then {
523- let ar = n
524- let aZ = invoke(Address(b), "adminTransfer", [toString(aG.caller), ab], nil)
525- let aP = aZ
526- if ($isInstanceOf(aP, "Int"))
542+ let at = n
543+ let bb = invoke(Address(b), "adminTransfer", [toString(aI.caller), ab], nil)
544+ let aR = bb
545+ if ($isInstanceOf(aR, "Int"))
527546 then {
528- let aS = aP
547+ let aU = aR
529548 [DeleteEntry(E)]
530549 }
531550 else throw("Error transferring coins")
537556
538557
539558
540-@Callable(aG)
541-func setNationOwner (ba,an) = if (j(aG.caller))
542- then $Tuple2([StringEntry((ba + "_Owner"), an)], true)
559+@Callable(aI)
560+func setNationOwner (bc,ap) = if (j(aI.caller))
561+ then $Tuple2([StringEntry((bc + "_Owner"), ap)], true)
543562 else {
544- let bb = q((ba + "_Owner"))
545- if ((bb != toString(aG.caller)))
563+ let bd = q((bc + "_Owner"))
564+ if ((bd != toString(aI.caller)))
546565 then throw("You are not the nation owner")
547- else [StringEntry((ba + "_Owner"), an)]
566+ else [StringEntry((bc + "_Owner"), ap)]
548567 }
549568
550569
551570
552-@Callable(aG)
553-func buyNationItem (E,ay) = {
571+@Callable(aI)
572+func buyNationItem (E,aA) = {
554573 let Q = O(E)
555574 let R = Q._1
556575 let S = Q._2
557- let al = r(R, S)
558- let bc = A(toString(aG.caller))
559- let bd = A(ay)
560- if ((bc != bd))
576+ let an = r(R, S)
577+ let be = A(toString(aI.caller))
578+ let bf = A(aA)
579+ if ((be != bf))
561580 then throw("you can buy assets only from your nation")
562- else if (!(ai(ay, E)))
581+ else if (!(ak(aA, E)))
563582 then throw("The asset does not belong to the nation")
564- else if (!(ak(R, S)))
583+ else if (!(am(R, S)))
565584 then throw("this asset cannot be sold by the nation")
566585 else {
567- let be = u((r(R, S) + "_SellPrice"))
568- let aT = value(aG.payments[0].amount)
569- if ((be > aT))
586+ let bg = u((r(R, S) + "_SellPrice"))
587+ let aV = value(aI.payments[0].amount)
588+ if ((bg > aV))
570589 then throw(("You provided less $heg than the needed cost for buying this " + R))
571- else if ((aG.payments[0].assetId != a))
590+ else if ((aI.payments[0].assetId != a))
572591 then throw("Only $HEG payments allowed")
573592 else {
574- let bf = invoke(Address(b), "increaseNationWallet", [ay, aT], nil)
575- let n = bf
593+ let bh = invoke(Address(b), "increaseNationWallet", [aA, aV], nil)
594+ let n = bh
576595 if ($isInstanceOf(n, "Int"))
577596 then {
578597 let o = n
579- (am(E, toString(aG.caller)) :+ ScriptTransfer(Address(b), aT, a))
598+ (ao(E, toString(aI.caller)) :+ ScriptTransfer(Address(b), aV, a))
580599 }
581600 else throw("Error transferring SHEG to nations wallet")
582601 }
585604
586605
587606
588-@Callable(aG)
589-func AddAssetFromMarkeplace (E,ao,bg) = if (!(j(aG.caller)))
607+@Callable(aI)
608+func AddAssetFromMarkeplace (E,aq,bi) = if (!(j(aI.caller)))
590609 then throw("You are not allowed to perform this operation")
591- else $Tuple2([StringEntry(D(E), ao), IntegerEntry(E, bg)], ao)
610+ else $Tuple2([StringEntry(D(E), aq), IntegerEntry(E, bi)], aq)
592611
593612
594613
595-@Callable(aG)
596-func TransferAssetToMarketplace (E,bh) = if (!(ai(toString(aG.caller), E)))
614+@Callable(aI)
615+func TransferAssetToMarketplace (E,bj) = if (!(ak(toString(aI.caller), E)))
597616 then throw("You are not the owner of this asset")
598617 else {
599- let bg = l(E)
600- let aZ = invoke(Address(d), "putOnSale", [E, bg, bh], nil)
601- let n = aZ
618+ let bi = l(E)
619+ let bb = invoke(Address(d), "putOnSale", [E, bi, bj], nil)
620+ let n = bb
602621 if ($isInstanceOf(n, "Int"))
603622 then {
604- let aS = n
623+ let aU = n
605624 [DeleteEntry(D(E)), DeleteEntry(E)]
606625 }
607626 else throw("Error putting the item on the marketplace")
609628
610629
611630
612-@Callable(aG)
613-func DelKey (m) = if (!(j(aG.caller)))
631+@Callable(aI)
632+func DelKey (m) = if (!(j(aI.caller)))
614633 then throw("")
615634 else [DeleteEntry(m)]
616635
617636
618637
619-@Callable(aG)
620-func UpdKey (m,bi) = if (!(j(aG.caller)))
638+@Callable(aI)
639+func UpdKey (m,bk) = if (!(j(aI.caller)))
621640 then throw("")
622- else [StringEntry(m, bi)]
641+ else [StringEntry(m, bk)]
623642
624643
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'3N8WDKbqGox5Eky326PHHT7rUyrby5MXdmb'
99
1010 let d = base58'3Mra7mjPipcQd5sJaRmXK8xgS4scb8gPF4A'
1111
1212 let e = base58'3N9tj3b2djcaZozn97VkYchL9S1i6cdEbC1'
1313
1414 let f = base58'3MvyzDtzWWV5MZ1GP8JfQhhQqiGU4Nbifdy'
1515
1616 let g = addressFromStringValue("3MpNtiPSRSq6NnaQYk38BfWSzZcgAYTyrQ9")
1717
1818 let h = addressFromStringValue("3MuSrXTTiwo9bdoD6FeaBpMUYMiU5saDv2U")
1919
2020 let i = addressFromStringValue("3Mv3mr3uNXdpgkVPApbGEJjMQXqau37DY5i")
2121
2222 func j (k) = if (if (if (if (if ((k == g))
2323 then true
2424 else (k == this))
2525 then true
2626 else (k.bytes == c))
2727 then true
2828 else (k.bytes == b))
2929 then true
3030 else (k.bytes == d))
3131 then true
3232 else (k.bytes == f)
3333
3434
3535 func l (m) = {
3636 let n = getInteger(this, m)
3737 if ($isInstanceOf(n, "Int"))
3838 then {
3939 let o = n
4040 o
4141 }
4242 else 0
4343 }
4444
4545
4646 func p (m) = {
4747 let n = getBoolean(this, m)
4848 if ($isInstanceOf(n, "Boolean"))
4949 then {
5050 let o = n
5151 o
5252 }
5353 else false
5454 }
5555
5656
5757 func q (m) = {
5858 let n = getString(this, m)
5959 if ($isInstanceOf(n, "String"))
6060 then {
6161 let o = n
6262 o
6363 }
6464 else ""
6565 }
6666
6767
6868 func r (s,t) = ((s + "_lvl") + toString(t))
6969
7070
7171 func u (m) = {
7272 let n = getInteger(Address(e), m)
7373 if ($isInstanceOf(n, "Int"))
7474 then {
7575 let o = n
7676 o
7777 }
7878 else 0
7979 }
8080
8181
8282 func v (m) = {
8383 let n = getString(Address(e), m)
8484 if ($isInstanceOf(n, "String"))
8585 then {
8686 let o = n
8787 o
8888 }
8989 else ""
9090 }
9191
9292
9393 func w (m) = {
9494 let n = getBoolean(Address(e), m)
9595 if ($isInstanceOf(n, "Boolean"))
9696 then {
9797 let o = n
9898 o
9999 }
100100 else false
101101 }
102102
103103
104104 func x (y) = (y + "_Treasury")
105105
106106
107107 func z (m) = {
108108 let n = getInteger(Address(b), m)
109109 if ($isInstanceOf(n, "Int"))
110110 then {
111111 let o = n
112112 o
113113 }
114114 else 0
115115 }
116116
117117
118118 func A (m) = {
119119 let n = getInteger(Address(f), m)
120120 if ($isInstanceOf(n, "Int"))
121121 then {
122122 let o = n
123123 o
124124 }
125125 else 0
126126 }
127127
128128
129129 func B (m) = {
130130 let n = getBoolean(Address(f), m)
131131 if ($isInstanceOf(n, "Boolean"))
132132 then {
133133 let o = n
134134 o
135135 }
136136 else false
137137 }
138138
139139
140140 func C (m) = {
141141 let n = getString(Address(f), m)
142142 if ($isInstanceOf(n, "String"))
143143 then {
144144 let o = n
145145 o
146146 }
147147 else ""
148148 }
149149
150150
151151 func D (E) = (E + "_Owner")
152152
153153
154154 let F = "BUILD_STARTED"
155155
156156 let G = "BUILD_FINISHED"
157157
158158 func H (I,J) = ((J + "_") + toBase58String(I))
159159
160160
161161 func K (I,J) = (H(I, J) + "_Owner")
162162
163163
164164 func L (M,I,J) = (((M + "_") + H(I, J)) + "_fh")
165165
166166
167167 func N (M,I,J) = (((M + "_") + H(I, J)) + "_status")
168168
169169
170170 func O (P) = {
171171 let Q = split(P, "_")
172172 let R = Q[0]
173173 let S = parseIntValue(drop(Q[1], 3))
174174 $Tuple2(R, S)
175175 }
176176
177177
178178 func T (k,P,U,V,W,X) = {
179179 let Q = O(P)
180180 let R = Q._1
181181 let S = Q._2
182182 let Y = getIntegerValue(this, W)
183183 if ((Y > height))
184184 then throw((((("Building is not finished yet " + toString((Y - height))) + " blocks remaining, it will take around ") + toString((Y - height))) + " minutes"))
185185 else if ((take(R, 4) == "TECH"))
186186 then {
187187 let Z = invoke(Address(f), "setTecnhnologyDiscovered", [k, P], nil)
188188 if ((Z == true))
189189 then [DeleteEntry(V), DeleteEntry(W)]
190190 else throw("error discovering technology")
191191 }
192192 else {
193193 let aa = u((P + "_Power"))
194+ let ab = ((u((X + "_Cost")) * 20) / 100)
195+ if ((aa > 0))
196+ then {
197+ let ac = A((k + "_Power"))
198+ let ad = invoke(Address(f), "setUserPower", [k, (ac + aa)], nil)
199+ if ((ad == ad))
200+ then [IntegerEntry(U, ab), DeleteEntry(V), DeleteEntry(W)]
201+ else throw("Strict value is not equal to itself.")
202+ }
203+ else [IntegerEntry(U, ab), DeleteEntry(V), DeleteEntry(W)]
204+ }
205+ }
206+
207+
208+func ae (k,P,U,V,W,af) = {
209+ let Q = O(P)
210+ let R = Q._1
211+ let S = Q._2
212+ let Y = getIntegerValue(this, W)
213+ if ((Y > height))
214+ then throw((((("Building is not finished yet " + toString((Y - height))) + " blocks remaining, it will take around ") + toString((Y - height))) + " minutes"))
215+ else if ((take(R, 4) == "TECH"))
216+ then {
217+ let Z = invoke(Address(f), "setTecnhnologyDiscovered", [k, P], nil)
218+ if ((Z == true))
219+ then [DeleteEntry(V), DeleteEntry(W)]
220+ else throw("error discovering technology")
221+ }
222+ else {
223+ let aa = u((P + "_Power"))
194224 let ab = ((u((P + "_Cost")) * 20) / 100)
195- let ac = invoke(Address(b), "Pay", [k, ab], nil)
196- if ((ac == ac))
225+ let ag = invoke(Address(b), "Pay", [k, ab], nil)
226+ if ((ag == ag))
197227 then if ((aa > 0))
198228 then {
199- let ad = A((k + "_Power"))
200- let ae = invoke(Address(f), "setUserPower", [k, (ad + aa)], nil)
201- if ((ae == ae))
229+ let ac = A((k + "_Power"))
230+ let ad = invoke(Address(f), "setUserPower", [k, (ac + aa)], nil)
231+ if ((ad == ad))
202232 then if (w((P + "_Aggregated")))
203233 then {
204- let af = ((P + "_") + k)
205- let ag = l(af)
206- let ah = l((af + "_Qty"))
207-[DeleteEntry(K(X, P)), StringEntry((af + "_Owner"), k), IntegerEntry(af, (ag + ab)), IntegerEntry((af + "_Qty"), (ah + 1)), DeleteEntry(V), DeleteEntry(W)]
234+ let ah = ((P + "_") + k)
235+ let ai = l(ah)
236+ let aj = l((ah + "_Qty"))
237+[DeleteEntry(K(af, P)), StringEntry((ah + "_Owner"), k), IntegerEntry(ah, (ai + ab)), IntegerEntry((ah + "_Qty"), (aj + 1)), DeleteEntry(V), DeleteEntry(W)]
208238 }
209239 else [IntegerEntry(U, ab), DeleteEntry(V), DeleteEntry(W)]
210240 else throw("Strict value is not equal to itself.")
211241 }
212242 else if (w((P + "_Aggregated")))
213243 then {
214- let af = ((P + "_") + k)
215- let ag = l(af)
216- let ah = l((af + "_Qty"))
217-[DeleteEntry(K(X, P)), StringEntry((af + "_Owner"), k), IntegerEntry(af, (ag + ab)), IntegerEntry((af + "_Qty"), (ah + 1)), DeleteEntry(V), DeleteEntry(W)]
244+ let ah = ((P + "_") + k)
245+ let ai = l(ah)
246+ let aj = l((ah + "_Qty"))
247+[DeleteEntry(K(af, P)), StringEntry((ah + "_Owner"), k), IntegerEntry(ah, (ai + ab)), IntegerEntry((ah + "_Qty"), (aj + 1)), DeleteEntry(V), DeleteEntry(W)]
218248 }
219249 else [IntegerEntry(U, ab), DeleteEntry(V), DeleteEntry(W)]
220250 else throw("Strict value is not equal to itself.")
221251 }
222252 }
223253
224254
225-func ai (k,U) = {
226- let aj = q(D(U))
227- (aj == k)
255+func ak (k,U) = {
256+ let al = q(D(U))
257+ (al == k)
228258 }
229259
230260
231-func ak (s,t) = {
232- let al = r(s, t)
233- w((al + "_NationReserved"))
261+func am (s,t) = {
262+ let an = r(s, t)
263+ w((an + "_NationReserved"))
234264 }
235265
236266
237-func am (E,an) = {
267+func ao (E,ap) = {
238268 let Q = O(E)
239269 let R = Q._1
240270 let S = Q._2
241- let al = r(R, S)
242- let ao = q(D(E))
243- let aa = u((al + "_Power"))
271+ let an = r(R, S)
272+ let aq = q(D(E))
273+ let aa = u((an + "_Power"))
244274 if ((aa > 0))
245275 then {
246- let ad = A((ao + "_Power"))
247- let ae = invoke(Address(f), "setUserPower", [ao, (ad - aa)], nil)
248- if ((ae == ae))
249- then if ((ae != (ad - aa)))
276+ let ac = A((aq + "_Power"))
277+ let ad = invoke(Address(f), "setUserPower", [aq, (ac - aa)], nil)
278+ if ((ad == ad))
279+ then if ((ad != (ac - aa)))
250280 then throw("Incorrect invoke result")
251281 else {
252- let ap = A((an + "_Power"))
253- let aq = invoke(Address(f), "setUserPower", [an, (ap + aa)], nil)
254- if ((aq == aq))
282+ let ar = A((ap + "_Power"))
283+ let as = invoke(Address(f), "setUserPower", [ap, (ar + aa)], nil)
284+ if ((as == as))
255285 then {
256- let n = aq
286+ let n = as
257287 if ($isInstanceOf(n, "Int"))
258288 then {
259- let ar = n
260-[StringEntry(D(E), an)]
289+ let at = n
290+[StringEntry(D(E), ap)]
261291 }
262292 else throw("Incorrect invoke result")
263293 }
264294 else throw("Strict value is not equal to itself.")
265295 }
266296 else throw("Strict value is not equal to itself.")
267297 }
268- else [StringEntry(D(E), an)]
298+ else [StringEntry(D(E), ap)]
269299 }
270300
271301
272-func as (at,k,au) = {
273- let av = v((at + "_SacrificeAsset"))
274- let aw = u((at + "_SacrificeAssetLevel"))
275- if ((av == ""))
302+func au (av,k,aw) = {
303+ let ax = v((av + "_SacrificeAsset"))
304+ let ay = u((av + "_SacrificeAssetLevel"))
305+ if ((ax == ""))
276306 then true
277- else if (!(ai(k, au)))
307+ else if (!(ak(k, aw)))
278308 then throw("you are not the owner of the asset")
279309 else {
280- let Q = O(au)
281- if (if ((av != Q._1))
310+ let Q = O(aw)
311+ if (if ((ax != Q._1))
282312 then true
283- else (aw != Q._2))
313+ else (ay != Q._2))
284314 then throw("the sacrificeAsset has the wrong type or level")
285315 else true
286316 }
287317 }
288318
289319
290-func ax (s,t,ay,au) = {
291- let az = r(s, t)
292- let aA = v((az + "_Tecnhology_discovered"))
293- if ((aA != ""))
294- then if (B(((ay + "_") + aA)))
295- then as(az, ay, au)
320+func az (s,t,aA,aw) = {
321+ let aB = r(s, t)
322+ let aC = v((aB + "_Tecnhology_discovered"))
323+ if ((aC != ""))
324+ then if (B(((aA + "_") + aC)))
325+ then au(aB, aA, aw)
296326 else false
297- else as(az, ay, au)
327+ else au(aB, aA, aw)
298328 }
299329
300330
301-func aB (s,t,k,au) = {
302- let aC = r(s, t)
303- let aD = A(k)
304- if ((aD == 0))
331+func aD (s,t,k,aw) = {
332+ let aE = r(s, t)
333+ let aF = A(k)
334+ if ((aF == 0))
305335 then false
306336 else {
307- let aA = v((aC + "_Tecnhology_discovered"))
308- if ((aA != ""))
337+ let aC = v((aE + "_Tecnhology_discovered"))
338+ if ((aC != ""))
309339 then {
310- let ay = C(toString(aD))
311- if (B(((ay + "_") + aA)))
312- then as(aC, k, au)
340+ let aA = C(toString(aF))
341+ if (B(((aA + "_") + aC)))
342+ then au(aE, k, aw)
313343 else false
314344 }
315- else as(aC, k, au)
345+ else au(aE, k, aw)
316346 }
317347 }
318348
319349
320-func aE (s,t,aF,ay,au) = if ((ay != ""))
321- then ax(s, t, ay, au)
322- else aB(s, t, aF, au)
350+func aG (s,t,aH,aA,aw) = if ((aA != ""))
351+ then az(s, t, aA, aw)
352+ else aD(s, t, aH, aw)
323353
324354
325-@Callable(aG)
326-func StartBuild (R,t,ay,au) = if (!(aE(R, t, toString(aG.caller), ay, au)))
355+@Callable(aI)
356+func StartBuild (R,t,aA,aw) = if (!(aG(R, t, toString(aI.caller), aA, aw)))
327357 then throw("You cannot build this Item")
328358 else {
329- let az = r(R, t)
330- let aH = u((az + "_BuildTime"))
331- let aI = u((az + "_Cost"))
332- let aJ = ((aI * 5) / 100)
333- let aK = ((aI * 10) / 100)
334- let aL = ((aI * 65) / 100)
335- let aM = (((aI - aJ) - aK) - aL)
336- if (ak(R, t))
337- then if (if (!(ai(toString(aG.caller), ay)))
338- then !(j(aG.caller))
359+ let aB = r(R, t)
360+ let aJ = u((aB + "_BuildTime"))
361+ let aK = u((aB + "_Cost"))
362+ let aL = ((aK * 5) / 100)
363+ let aM = ((aK * 10) / 100)
364+ let aN = ((aK * 65) / 100)
365+ let aO = (((aK - aL) - aM) - aN)
366+ if (am(R, t))
367+ then if (if (!(ak(toString(aI.caller), aA)))
368+ then !(j(aI.caller))
339369 else false)
340370 then throw("You are not the owner of the nation")
341371 else {
342- let aN = z(x(ay))
343- if ((aI > aN))
372+ let aP = z(x(aA))
373+ if ((aK > aP))
344374 then throw("The nation hasn't enough funds")
345375 else {
346- let aO = invoke(Address(b), "decreaseNationWallet", [ay, aI], nil)
347- let n = aO
376+ let aQ = invoke(Address(b), "decreaseNationWallet", [aA, aK], nil)
377+ let n = aQ
348378 if ($isInstanceOf(n, "Int"))
349379 then {
350- let ar = n
351- let ae = invoke(Address(b), "arbitraryAddCoins", [ay, aM], nil)
352- let aP = ae
353- if ($isInstanceOf(aP, "Int"))
380+ let at = n
381+ let ad = invoke(Address(b), "arbitraryAddCoins", [aA, aO], nil)
382+ let aR = ad
383+ if ($isInstanceOf(aR, "Int"))
354384 then {
355- let o = aP
356- let aQ = invoke(Address(b), "distributeNationPayRewards", [aI], nil)
357- let aR = aQ
358- if ($isInstanceOf(aR, "Int"))
385+ let o = aR
386+ let aS = invoke(Address(b), "distributeNationPayRewards", [aK], nil)
387+ let aT = aS
388+ if ($isInstanceOf(aT, "Int"))
359389 then {
360- let aS = aR
361-[StringEntry(N(toString(aG.originCaller), aG.transactionId, az), F), StringEntry(K(aG.transactionId, az), ay), IntegerEntry(L(toString(aG.originCaller), aG.transactionId, az), (height + aH))]
390+ let aU = aT
391+[StringEntry(N(toString(aI.originCaller), aI.transactionId, aB), F), StringEntry(K(aI.transactionId, aB), aA), IntegerEntry(L(toString(aI.originCaller), aI.transactionId, aB), (height + aJ))]
362392 }
363393 else throw("Error Distributing asset rewards")
364394 }
365395 else throw("Error Depositing nation funds")
366396 }
367397 else throw("Error Depositing nation funds")
368398 }
369399 }
370400 else {
371- let av = v((az + "_SacrificeAsset"))
372- if ((av != ""))
373- then {
374- let ae = invoke(Address(b), "NoPaymentDeposit", [toString(aG.caller), aM], nil)
375- let n = ae
376- if ($isInstanceOf(n, "Int"))
377- then {
378- let ar = n
379- let aQ = invoke(Address(b), "distributeNationPayRewards", [aI], nil)
380- let aP = aQ
381- if ($isInstanceOf(aP, "Int"))
382- then {
383- let aS = aP
384-[DeleteEntry(au), StringEntry(N(toString(aG.originCaller), aG.transactionId, az), F), StringEntry(K(aG.transactionId, az), ay), IntegerEntry(L(toString(aG.originCaller), aG.transactionId, az), (height + aH))]
385- }
386- else throw("Error Distributing asset rewards")
387- }
388- else throw("Error adding deposit")
389- }
401+ let ax = v((aB + "_SacrificeAsset"))
402+ if ((ax != ""))
403+ then [DeleteEntry(aw), StringEntry(N(toString(aI.originCaller), aI.transactionId, aB), F), StringEntry(K(aI.transactionId, aB), toString(aI.originCaller)), IntegerEntry(L(toString(aI.originCaller), aI.transactionId, aB), (height + aJ))]
390404 else {
391- let aT = value(aG.payments[0].amount)
392- if ((aI > aT))
405+ let aV = value(aI.payments[0].amount)
406+ if ((aK > aV))
393407 then throw(("You provided less $heg than the needed cost for building this " + R))
394- else if ((aG.payments[0].assetId != a))
408+ else if ((aI.payments[0].assetId != a))
395409 then throw("Only $HEG payments allowed")
396410 else {
397- let ae = invoke(Address(b), "Deposit", nil, [AttachedPayment(a, aM)])
398- let n = ae
411+ let ad = invoke(Address(b), "Deposit", nil, [AttachedPayment(a, aO)])
412+ let n = ad
399413 if ($isInstanceOf(n, "Int"))
400414 then {
401- let ar = n
402-[StringEntry(N(toString(aG.originCaller), aG.transactionId, az), F), StringEntry(K(aG.transactionId, az), toString(aG.originCaller)), IntegerEntry(L(toString(aG.originCaller), aG.transactionId, az), (height + aH)), ScriptTransfer(g, aJ, a), ScriptTransfer(h, aK, a), ScriptTransfer(i, aL, a)]
415+ let at = n
416+[StringEntry(N(toString(aI.originCaller), aI.transactionId, aB), F), StringEntry(K(aI.transactionId, aB), toString(aI.originCaller)), IntegerEntry(L(toString(aI.originCaller), aI.transactionId, aB), (height + aJ)), ScriptTransfer(g, aL, a), ScriptTransfer(h, aM, a), ScriptTransfer(i, aN, a)]
403417 }
404418 else throw("Incorrect invoke result")
405419 }
406420 }
407421 }
408422 }
409423
410424
411425
412-@Callable(aG)
413-func FinishBuild (aU,P,t,ay) = {
414- let I = fromBase58String(aU)
415- let at = r(P, t)
416- let V = N(toString(aG.caller), I, at)
417- let W = L(toString(aG.caller), I, at)
418- let U = H(I, at)
419- let aj = q(K(I, at))
420- if (ak(P, t))
421- then if (if (!(ai(toString(aG.caller), ay)))
422- then !(j(aG.caller))
426+@Callable(aI)
427+func FinishBuild (aW,P,t,aA) = {
428+ let I = fromBase58String(aW)
429+ let av = r(P, t)
430+ let V = N(toString(aI.caller), I, av)
431+ let W = L(toString(aI.caller), I, av)
432+ let U = H(I, av)
433+ let al = q(K(I, av))
434+ if (am(P, t))
435+ then if (if (!(ak(toString(aI.caller), aA)))
436+ then !(j(aI.caller))
423437 else false)
424438 then throw("You are not authorized to perform this operation")
425- else T(ay, at, U, V, W, I)
426- else if ((aj != toString(aG.caller)))
439+ else ae(aA, av, U, V, W, I)
440+ else if ((al != toString(aI.caller)))
427441 then throw(("You cannot claim other's players " + P))
428442 else {
429- let aV = q(V)
430- if ((aV == ""))
443+ let aX = q(V)
444+ if ((aX == ""))
431445 then throw("No pending operations for this asset")
432- else T(toString(aG.caller), at, U, V, W, I)
446+ else {
447+ let ax = v((av + "_SacrificeAsset"))
448+ if ((ax != ""))
449+ then T(toString(aI.caller), av, U, V, W, ax)
450+ else ae(toString(aI.caller), av, U, V, W, I)
451+ }
433452 }
434453 }
435454
436455
437456
438-@Callable(aG)
439-func transferOwnership (E,an) = if (!(j(aG.caller)))
457+@Callable(aI)
458+func transferOwnership (E,ap) = if (!(j(aI.caller)))
440459 then throw("Only the admin can perform this operation")
441- else $Tuple2(am(E, an), an)
460+ else $Tuple2(ao(E, ap), ap)
442461
443462
444463
445-@Callable(aG)
446-func destroyAssetAndTransfer (E,aW) = {
464+@Callable(aI)
465+func destroyAssetAndTransfer (E,aY) = {
447466 let Q = O(E)
448467 let R = Q._1
449468 let S = Q._2
450- let al = r(R, S)
451- if (!(j(aG.caller)))
469+ let an = r(R, S)
470+ if (!(j(aI.caller)))
452471 then throw("Only the admin can perform this operation")
453472 else {
454- let ao = q(D(E))
473+ let aq = q(D(E))
455474 let ab = l(E)
456- let ac = invoke(Address(b), "adminTransfer", [addressFromStringValue(aW), ab], nil)
457- if ((ac == ac))
475+ let ag = invoke(Address(b), "adminTransfer", [addressFromStringValue(aY), ab], nil)
476+ if ((ag == ag))
458477 then {
459- let ad = A((ao + "_Power"))
460- let aa = u((al + "_Power"))
461- let ae = invoke(Address(f), "setUserPower", [toString(aG.caller), (ad - aa)], nil)
462- if ((ae == ae))
478+ let ac = A((aq + "_Power"))
479+ let aa = u((an + "_Power"))
480+ let ad = invoke(Address(f), "setUserPower", [toString(aI.caller), (ac - aa)], nil)
481+ if ((ad == ad))
463482 then {
464- let n = ae
483+ let n = ad
465484 if ($isInstanceOf(n, "Int"))
466485 then {
467- let ar = n
486+ let at = n
468487 [DeleteEntry(E)]
469488 }
470489 else throw("Error setting user power")
471490 }
472491 else throw("Strict value is not equal to itself.")
473492 }
474493 else throw("Strict value is not equal to itself.")
475494 }
476495 }
477496
478497
479498
480-@Callable(aG)
481-func destroyAssetFromUser (E,ah) = {
499+@Callable(aI)
500+func destroyAssetFromUser (E,aj) = {
482501 let Q = O(E)
483502 let R = Q._1
484503 let S = Q._2
485- let al = r(R, S)
486- if (!(ai(toString(aG.caller), E)))
504+ let an = r(R, S)
505+ if (!(ak(toString(aI.caller), E)))
487506 then throw("You don't own this asset")
488507 else {
489508 let ab = l(E)
490- let ad = A((toString(aG.caller) + "_Power"))
491- let aa = u((al + "_Power"))
492- if (w((al + "_Aggregated")))
509+ let ac = A((toString(aI.caller) + "_Power"))
510+ let aa = u((an + "_Power"))
511+ if (w((an + "_Aggregated")))
493512 then {
494- let aX = ((u((al + "_Cost")) * 20) / 100)
495- let aY = l((al + "_Qty"))
496- if ((0 > (aY - ah)))
513+ let aZ = ((u((an + "_Cost")) * 20) / 100)
514+ let ba = l((an + "_Qty"))
515+ if ((0 > (ba - aj)))
497516 then throw(("you don't have enough " + R))
498517 else {
499- let ae = invoke(Address(f), "setUserPower", [toString(aG.caller), (ad - (aa * ah))], nil)
500- let n = ae
518+ let ad = invoke(Address(f), "setUserPower", [toString(aI.caller), (ac - (aa * aj))], nil)
519+ let n = ad
501520 if ($isInstanceOf(n, "Int"))
502521 then {
503- let ar = n
504- let aZ = invoke(Address(b), "adminTransfer", [toString(aG.caller), (aX * ah)], nil)
505- let aP = aZ
506- if ($isInstanceOf(aP, "Int"))
522+ let at = n
523+ let bb = invoke(Address(b), "adminTransfer", [toString(aI.caller), (aZ * aj)], nil)
524+ let aR = bb
525+ if ($isInstanceOf(aR, "Int"))
507526 then {
508- let aS = aP
509- if (((aY - ah) > 0))
510- then [IntegerEntry((al + "_Qty"), (aY - ah))]
527+ let aU = aR
528+ if (((ba - aj) > 0))
529+ then [IntegerEntry((an + "_Qty"), (ba - aj))]
511530 else [DeleteEntry(E)]
512531 }
513532 else throw("Error transferring coins")
514533 }
515534 else throw("Error setting user power")
516535 }
517536 }
518537 else {
519- let ae = invoke(Address(f), "setUserPower", [toString(aG.caller), (ad - aa)], nil)
520- let n = ae
538+ let ad = invoke(Address(f), "setUserPower", [toString(aI.caller), (ac - aa)], nil)
539+ let n = ad
521540 if ($isInstanceOf(n, "Int"))
522541 then {
523- let ar = n
524- let aZ = invoke(Address(b), "adminTransfer", [toString(aG.caller), ab], nil)
525- let aP = aZ
526- if ($isInstanceOf(aP, "Int"))
542+ let at = n
543+ let bb = invoke(Address(b), "adminTransfer", [toString(aI.caller), ab], nil)
544+ let aR = bb
545+ if ($isInstanceOf(aR, "Int"))
527546 then {
528- let aS = aP
547+ let aU = aR
529548 [DeleteEntry(E)]
530549 }
531550 else throw("Error transferring coins")
532551 }
533552 else throw("Error setting user power")
534553 }
535554 }
536555 }
537556
538557
539558
540-@Callable(aG)
541-func setNationOwner (ba,an) = if (j(aG.caller))
542- then $Tuple2([StringEntry((ba + "_Owner"), an)], true)
559+@Callable(aI)
560+func setNationOwner (bc,ap) = if (j(aI.caller))
561+ then $Tuple2([StringEntry((bc + "_Owner"), ap)], true)
543562 else {
544- let bb = q((ba + "_Owner"))
545- if ((bb != toString(aG.caller)))
563+ let bd = q((bc + "_Owner"))
564+ if ((bd != toString(aI.caller)))
546565 then throw("You are not the nation owner")
547- else [StringEntry((ba + "_Owner"), an)]
566+ else [StringEntry((bc + "_Owner"), ap)]
548567 }
549568
550569
551570
552-@Callable(aG)
553-func buyNationItem (E,ay) = {
571+@Callable(aI)
572+func buyNationItem (E,aA) = {
554573 let Q = O(E)
555574 let R = Q._1
556575 let S = Q._2
557- let al = r(R, S)
558- let bc = A(toString(aG.caller))
559- let bd = A(ay)
560- if ((bc != bd))
576+ let an = r(R, S)
577+ let be = A(toString(aI.caller))
578+ let bf = A(aA)
579+ if ((be != bf))
561580 then throw("you can buy assets only from your nation")
562- else if (!(ai(ay, E)))
581+ else if (!(ak(aA, E)))
563582 then throw("The asset does not belong to the nation")
564- else if (!(ak(R, S)))
583+ else if (!(am(R, S)))
565584 then throw("this asset cannot be sold by the nation")
566585 else {
567- let be = u((r(R, S) + "_SellPrice"))
568- let aT = value(aG.payments[0].amount)
569- if ((be > aT))
586+ let bg = u((r(R, S) + "_SellPrice"))
587+ let aV = value(aI.payments[0].amount)
588+ if ((bg > aV))
570589 then throw(("You provided less $heg than the needed cost for buying this " + R))
571- else if ((aG.payments[0].assetId != a))
590+ else if ((aI.payments[0].assetId != a))
572591 then throw("Only $HEG payments allowed")
573592 else {
574- let bf = invoke(Address(b), "increaseNationWallet", [ay, aT], nil)
575- let n = bf
593+ let bh = invoke(Address(b), "increaseNationWallet", [aA, aV], nil)
594+ let n = bh
576595 if ($isInstanceOf(n, "Int"))
577596 then {
578597 let o = n
579- (am(E, toString(aG.caller)) :+ ScriptTransfer(Address(b), aT, a))
598+ (ao(E, toString(aI.caller)) :+ ScriptTransfer(Address(b), aV, a))
580599 }
581600 else throw("Error transferring SHEG to nations wallet")
582601 }
583602 }
584603 }
585604
586605
587606
588-@Callable(aG)
589-func AddAssetFromMarkeplace (E,ao,bg) = if (!(j(aG.caller)))
607+@Callable(aI)
608+func AddAssetFromMarkeplace (E,aq,bi) = if (!(j(aI.caller)))
590609 then throw("You are not allowed to perform this operation")
591- else $Tuple2([StringEntry(D(E), ao), IntegerEntry(E, bg)], ao)
610+ else $Tuple2([StringEntry(D(E), aq), IntegerEntry(E, bi)], aq)
592611
593612
594613
595-@Callable(aG)
596-func TransferAssetToMarketplace (E,bh) = if (!(ai(toString(aG.caller), E)))
614+@Callable(aI)
615+func TransferAssetToMarketplace (E,bj) = if (!(ak(toString(aI.caller), E)))
597616 then throw("You are not the owner of this asset")
598617 else {
599- let bg = l(E)
600- let aZ = invoke(Address(d), "putOnSale", [E, bg, bh], nil)
601- let n = aZ
618+ let bi = l(E)
619+ let bb = invoke(Address(d), "putOnSale", [E, bi, bj], nil)
620+ let n = bb
602621 if ($isInstanceOf(n, "Int"))
603622 then {
604- let aS = n
623+ let aU = n
605624 [DeleteEntry(D(E)), DeleteEntry(E)]
606625 }
607626 else throw("Error putting the item on the marketplace")
608627 }
609628
610629
611630
612-@Callable(aG)
613-func DelKey (m) = if (!(j(aG.caller)))
631+@Callable(aI)
632+func DelKey (m) = if (!(j(aI.caller)))
614633 then throw("")
615634 else [DeleteEntry(m)]
616635
617636
618637
619-@Callable(aG)
620-func UpdKey (m,bi) = if (!(j(aG.caller)))
638+@Callable(aI)
639+func UpdKey (m,bk) = if (!(j(aI.caller)))
621640 then throw("")
622- else [StringEntry(m, bi)]
641+ else [StringEntry(m, bk)]
623642
624643

github/deemru/w8io/169f3d6 
179.33 ms