@keccak256-evg/passport-sdk
Version:
T-REX Passport SDK for interacting with Passport and Registry contracts
56 lines (55 loc) • 2.75 kB
TypeScript
import { Address } from './common';
export interface PassportRequest {
to: Address;
validityStartTimestamp: bigint;
validityEndTimestamp: bigint;
}
export interface PassportInfo {
passportId: number;
passportAddress: Address;
boundWallets: readonly Address[];
walletCount: number;
}
export interface WalletPassportResult {
hasPassport: boolean;
passportId?: number;
passportAddress?: Address;
}
export interface PendingBindRequest {
exists: boolean;
requester: Address;
timestamp: number;
expired: boolean;
}
export interface RegistryMethods {
createPassport(request: PassportRequest, signature: `0x${string}`): Promise<any>;
checkWalletHasPassport(walletAddress: Address): Promise<WalletPassportResult>;
getPassportInfo(passportAddress: Address): Promise<PassportInfo>;
predictPassportAddress(walletAddress: Address): Promise<Address>;
upgradeMyPassport(): Promise<any>;
getPassportImplementation(): Promise<Address>;
getPassportIdCounter(): Promise<number>;
getPassportAddressById(passportId: number): Promise<Address>;
isWalletAbolished(walletAddress: Address): Promise<boolean>;
isWalletUnboundFromPassport(passportId: number, walletAddress: Address): Promise<boolean>;
hasPassport(walletAddress: Address, passportContractAddress: Address): Promise<boolean>;
}
export interface PassportMethods {
unbindWallet(passportAddress: Address): Promise<any>;
requestBindWallet(passportAddress: Address, walletAddress: Address): Promise<any>;
getPendingBindRequest(passportAddress: Address, walletAddress: Address): Promise<PendingBindRequest>;
cancelBindRequest(passportAddress: Address, walletAddress: Address): Promise<any>;
acceptBindRequest(passportAddress: Address): Promise<any>;
rejectBindRequest(passportAddress: Address): Promise<any>;
getPendingBindWallets(passportAddress: Address, account: Address): Promise<readonly Address[]>;
checkPassportUpgrade(passportAddress: Address): Promise<boolean>;
getPassportImplementationAddress(passportAddress: Address): Promise<Address>;
getPassportId(passportAddress: Address): Promise<number>;
getRegistryAddress(passportAddress: Address): Promise<Address>;
isWalletBound(passportAddress: Address, walletAddress: Address): Promise<boolean>;
getBoundWallets(passportAddress: Address): Promise<readonly Address[]>;
getWalletCount(passportAddress: Address): Promise<number>;
getBoundWalletByIndex(passportAddress: Address, index: number): Promise<Address>;
hasPendingBindRequest(passportAddress: Address, walletAddress: Address): Promise<boolean>;
cancelExpiredBindRequest(passportAddress: Address, walletAddress: Address): Promise<any>;
}