import type { Contract } from 'ethers'; import type { LiteralUnion } from 'type-fest'; import type { ArtifactId, EthAddress, LocationId, UnionId } from './identifier'; import type { WorldLocation } from './world'; export declare type ContractMethodName = 'revealLocation' | 'claimLocation' | 'initializePlayer' | 'move' | 'upgradePlanet' | 'buySkin' | 'transferPlanet' | 'findArtifact' | 'prospectPlanet' | 'depositArtifact' | 'withdrawArtifact' | 'activateArtifact' | 'deactivateArtifact' | 'changeArtifactImageType' | 'buyArtifact' | 'withdrawSilver' | 'useKey' | 'adminUseKey' | 'addKeys' | 'giveSpaceShips' | 'createLobby' | 'invadePlanet' | 'capturePlanet' | 'claimReward' | 'burnLocation' | 'pinkLocation' | 'kardashev' | 'blueLocation' | 'refreshPlanet' | 'buyPlanet' | 'buySpaceship' | 'donate' | 'addMemberByAdmin' | 'createUnion' | 'inviteMember' | 'cancelInvite' | 'acceptInvite' | 'sendApplication' | 'cancelApplication' | 'rejectApplication' | 'acceptApplication' | 'leaveUnion' | 'kickMember' | 'transferLeaderRole' | 'changeUnionName' | 'disbandUnion' | 'levelUpUnion'; export declare type EthTxStatus = 'Init' | 'Processing' | 'Prioritized' | 'Submit' | 'Confirm' | 'Fail' | 'Cancel'; /** * The intent of this type is to represent a transaction that will occur on the blockchain in a way * that the game understands. This should usually be accessed as a member of {@link Transaction}. * @hidden */ export declare type TxIntent = { contract: Contract; methodName: LiteralUnion; args: Promise; }; /** * @hidden */ export declare type UnconfirmedInit = TxIntent & { methodName: 'initializePlayer'; locationId: LocationId; location: WorldLocation; }; /** * @hidden */ export declare type UnconfirmedMove = TxIntent & { methodName: 'move'; from: LocationId; to: LocationId; forces: number; silver: number; abandoning: boolean; artifact?: ArtifactId; }; /** * @hidden */ export declare type UnconfirmedFindArtifact = TxIntent & { methodName: 'findArtifact'; planetId: LocationId; }; /** * @hidden */ export declare type UnconfirmedProspectPlanet = TxIntent & { methodName: 'prospectPlanet'; planetId: LocationId; }; /** * @hidden */ export declare type UnconfirmedPlanetTransfer = TxIntent & { methodName: 'transferPlanet'; planetId: LocationId; newOwner: EthAddress; }; /** * @hidden */ export declare type UnconfirmedClaimReward = TxIntent & { methodName: 'claimReward'; sortedPlayerAddresses: EthAddress[]; sortedScores: number[]; }; /** * @hidden */ export declare type UnconfirmedUpgrade = TxIntent & { methodName: 'upgradePlanet'; locationId: LocationId; upgradeBranch: number; }; /** * @hidden */ export declare type UnconfirmedRefreshPlanet = TxIntent & { methodName: 'refreshPlanet'; locationId: LocationId; }; /** * @hidden */ export declare type UnconfirmedBuyHat = TxIntent & { methodName: 'buySkin'; locationId: LocationId; hatType: number; }; /** * @hidden */ export declare type UnconfirmedDepositArtifact = TxIntent & { methodName: 'depositArtifact'; locationId: LocationId; artifactId: ArtifactId; }; /** * @hidden */ export declare type UnconfirmedWithdrawArtifact = TxIntent & { methodName: 'withdrawArtifact'; locationId: LocationId; artifactId: ArtifactId; }; /** * @hidden */ export declare type UnconfirmedActivateArtifact = TxIntent & { methodName: 'activateArtifact'; locationId: LocationId; artifactId: ArtifactId; linkTo?: LocationId; }; /** * @hidden */ export declare type UnconfirmedDeactivateArtifact = TxIntent & { methodName: 'deactivateArtifact'; locationId: LocationId; artifactId: ArtifactId; linkTo: LocationId | undefined; }; /** * @hidden */ export declare type UnconfirmedChangeArtifactImageType = TxIntent & { methodName: 'changeArtifactImageType'; locationId: LocationId; artifactId: ArtifactId; newImageType: number; }; /** * @hidden */ export declare type UnconfirmedBuyArtifact = TxIntent & { methodName: 'buyArtifact'; locationId: LocationId; artifactId: ArtifactId; }; /** * @hidden */ export declare type UnconfirmedWithdrawSilver = TxIntent & { methodName: 'withdrawSilver'; locationId: LocationId; amount: number; }; /** * @hidden */ export declare type UnconfirmedReveal = TxIntent & { methodName: 'revealLocation'; locationId: LocationId; location: WorldLocation; }; /** * @hidden */ export declare type UnconfirmedClaim = TxIntent & { methodName: 'claimLocation'; locationId: LocationId; location: WorldLocation; }; /** * @hidden */ export declare type UnconfirmedAddKeys = TxIntent & { methodName: 'addKeys'; }; /** * @hidden */ export declare type UnconfirmedUseKey = TxIntent & { methodName: 'useKey'; }; /** * @hidden */ export declare type UnconfirmedAdminUseKey = TxIntent & { methodName: 'adminUseKey'; }; /** * @hidden */ export declare type UnconfirmedGetShips = TxIntent & { methodName: 'giveSpaceShips'; locationId: LocationId; }; /** * @hidden */ export declare type UnconfirmedCreateLobby = TxIntent & { methodName: 'createLobby'; }; /** * @hidden */ export declare type UnconfirmedInvadePlanet = TxIntent & { methodName: 'invadePlanet'; locationId: LocationId; }; /** * @hidden */ export declare type UnconfirmedCapturePlanet = TxIntent & { methodName: 'capturePlanet'; locationId: LocationId; }; /** * @hidden */ export declare type UnconfirmedBurn = TxIntent & { methodName: 'burnLocation'; locationId: LocationId; location: WorldLocation; }; /** * @hidden */ export declare type UnconfirmedPink = TxIntent & { methodName: 'pinkLocation'; locationId: LocationId; location: WorldLocation; }; /** * @hidden */ export declare type UnconfirmedKardashev = TxIntent & { methodName: 'kardashev'; locationId: LocationId; location: WorldLocation; }; /** * @hidden */ export declare type UnconfirmedBlue = TxIntent & { methodName: 'blueLocation'; locationId: LocationId; location: WorldLocation; }; /** * @hidden */ export declare type UnconfirmedBuyPlanet = TxIntent & { methodName: 'buyPlanet'; locationId: LocationId; location: WorldLocation; }; /** * @hidden */ export declare type UnconfirmedBuySpaceship = TxIntent & { methodName: 'buySpaceship'; locationId: LocationId; location: WorldLocation; }; /** * @hidden */ export declare type UnconfirmedDonate = TxIntent & { methodName: 'donate'; amount: number; }; /** * @hidden */ export declare type UnconfirmedAddMemberByAdmin = TxIntent & { methodName: 'addMemberByAdmin'; unionId: UnionId; member: EthAddress; }; /** * @hidden * */ export declare type UnconfirmedCreateUnion = TxIntent & { methodName: 'createUnion'; name: string; }; /** * @hidden */ export declare type UnconfirmedInviteMember = TxIntent & { methodName: 'inviteMember'; unionId: UnionId; invitee: EthAddress; }; /** * @hidden */ export declare type UnconfirmedCancelInvite = TxIntent & { methodName: 'cancelInvite'; unionId: UnionId; invitee: EthAddress; }; /** * @hidden */ export declare type UnconfirmedSendApplication = TxIntent & { methodName: 'sendApplication'; unionId: UnionId; }; /** * @hidden */ export declare type UnconfirmedCancelApplication = TxIntent & { methodName: 'cancelApplication'; unionId: UnionId; }; /** * @hidden */ export declare type UnconfirmedRejectApplication = TxIntent & { methodName: 'rejectApplication'; unionId: UnionId; applicant: EthAddress; }; /** * @hidden */ export declare type UnconfirmedAcceptApplication = TxIntent & { methodName: 'acceptApplication'; unionId: UnionId; applicant: EthAddress; }; /** * @hidden */ export declare type UnconfirmedAcceptInvite = TxIntent & { methodName: 'acceptInvite'; unionId: UnionId; }; /** * @hidden */ export declare type UnconfirmedLeaveUnion = TxIntent & { methodName: 'leaveUnion'; unionId: UnionId; }; /** * @hidden */ export declare type UnconfirmedKickMember = TxIntent & { methodName: 'kickMember'; unionId: UnionId; member: EthAddress; }; /** * @hidden */ export declare type UnconfirmedTransferLeaderRole = TxIntent & { methodName: 'transferLeaderRole'; unionId: UnionId; newLeader: EthAddress; }; /** * @hidden */ export declare type UnconfirmedChangeUnionName = TxIntent & { methodName: 'changeUnionName'; unionId: UnionId; newName: string; }; /** * @hidden */ export declare type UnconfirmedDisbandUnion = TxIntent & { methodName: 'disbandUnion'; unionId: UnionId; }; /** * @hidden */ export declare type UnconfirmedLevelUpUnion = TxIntent & { methodName: 'levelUpUnion'; unionId: UnionId; };