@0xsplits/splits-sdk
Version:
SDK for the 0xSplits protocol
642 lines (641 loc) • 21.5 kB
TypeScript
import { Dictionary } from 'lodash';
import { SupportedChainId } from './constants';
import { Address } from 'viem';
/** All built-in and custom scalars, mapped to their actual values */
type Scalars = {
ID: string;
String: string;
Boolean: boolean;
Int: number;
Float: number;
DateTime: string;
};
export type GqlRecipient = {
id: Scalars['ID'];
account: GqlAccount;
ownership: Scalars['String'];
idx: Scalars['String'];
};
type GqlAccountSharedFields = {
chainId: Scalars['String'];
distributions: GqlTokenBalance[];
latestBlock: Scalars['Int'];
latestActivity: Scalars['String'];
parentEntityType?: Scalars['String'];
internalBalances: GqlTokenBalance[];
warehouseBalances: GqlTokenBalance[];
contractEarnings: GqlContractEarnings[];
warehouseWithdrawConfig: GqlWarehouseWithdrawConfig;
};
export type GqlSplit = GqlAccountSharedFields & {
__typename: 'Split';
id: Scalars['ID'];
recipients: GqlRecipient[];
type: 'split' | 'splitV2' | 'splitV2o1' | 'splitV2o2';
distributorFee: Scalars['String'];
distributeDirection: 'push' | 'pull';
distributionsPaused: Scalars['Boolean'];
controller?: {
id: Scalars['String'];
};
newPotentialController?: {
id: Scalars['String'];
};
liquidSplit?: GqlLiquidSplit;
createdBlock: Scalars['Int'];
withdrawals: GqlTokenBalance[];
};
type GqlContractEarningsBalance = GqlTokenBalanceSharedData & {
contract: GqlAccount;
};
export type GqlContractEarnings = {
contract: GqlAccount;
internalBalances: GqlContractEarningsBalance[];
withdrawals: GqlContractEarningsBalance[];
};
export type GqlUser = GqlAccountSharedFields & {
__typename: 'User';
id: Scalars['ID'];
withdrawals: GqlTokenBalance[];
contractEarnings: GqlContractEarnings[];
};
export type GqlVestingModule = GqlAccountSharedFields & {
__typename: 'VestingModule';
id: Scalars['ID'];
vestingPeriod: Scalars['String'];
beneficiary: GqlAccount;
streams?: GqlVestingStream[];
};
export type GqlVestingStream = {
id: Scalars['ID'];
streamId: Scalars['String'];
token: GqlToken;
startTime: Scalars['String'];
totalAmount: Scalars['Int'];
claimedAmount: Scalars['Int'];
account: GqlVestingModule;
};
export type GqlWaterfallModule = GqlAccountSharedFields & {
__typename: 'WaterfallModule';
id: Scalars['ID'];
token: GqlToken;
tranches: GqlWaterfallTranche[];
distributions: GqlTokenBalance[];
nonWaterfallRecipient: GqlAccount;
};
export type GqlWaterfallTranche = {
id: Scalars['ID'];
startAmount: Scalars['Int'];
size?: Scalars['Int'];
claimedAmount: Scalars['Int'];
account: GqlWaterfallModule;
recipient: GqlAccount;
};
export type GqlLiquidSplit = GqlAccountSharedFields & {
__typename: 'LiquidSplit';
id: Scalars['ID'];
distributorFee: Scalars['String'];
holders: GqlHolder[];
split: GqlSplit;
isFactoryGenerated: Scalars['Boolean'];
};
export type GqlHolder = {
id: Scalars['ID'];
ownership: Scalars['String'];
};
type GqlUniswapV3TWAPPairDetail = {
base: GqlToken;
quote: GqlToken;
pool: Scalars['String'];
fee: Scalars['Int'];
period: Scalars['String'];
};
type GqlChainlinkFeed = {
aggregatorV3: Scalars['String'];
decimals: Scalars['Int'];
staleAfter: Scalars['Int'];
mul: Scalars['Boolean'];
};
type GqlChainlinkPairDetail = {
base: GqlToken;
quote: GqlToken;
inverted: Scalars['Boolean'];
feeds: GqlChainlinkFeed[];
};
type GqlUnknownOracle = {
id: Scalars['ID'];
type: 'unknown';
};
type GqlUniswapV3TWAPOracle = {
id: Scalars['ID'];
type: 'uniswapV3TWAP';
createdBlock: Scalars['Int'];
latestBlock: Scalars['Int'];
latestActivity: Scalars['String'];
owner: GqlAccount;
paused: Scalars['Boolean'];
defaultPeriod: Scalars['String'];
pairDetails: GqlUniswapV3TWAPPairDetail[];
};
type GqlChainlinkOracle = {
id: Scalars['ID'];
type: 'chainlink';
createdBlock: Scalars['Int'];
latestBlock: Scalars['Int'];
latestActivity: Scalars['String'];
owner: GqlAccount;
paused: Scalars['Boolean'];
sequencerFeed: Scalars['String'];
chainlinkPairDetails: GqlChainlinkPairDetail[];
};
export type GqlOracle = GqlUnknownOracle | GqlUniswapV3TWAPOracle | GqlChainlinkOracle;
export type GqlSwapBalance = {
inputToken: GqlToken;
inputAmount: Scalars['String'];
outputToken: GqlToken;
outputAmount: Scalars['String'];
};
type GqlSwapperScaledOfferFactorOverride = {
base: GqlToken;
quote: GqlToken;
scaledOfferFactor: Scalars['String'];
};
export type GqlSwapper = GqlAccountSharedFields & {
__typename: 'Swapper';
id: Scalars['ID'];
owner: GqlAccount;
paused: Scalars['Boolean'];
beneficiary: GqlAccount;
tokenToBeneficiary: GqlToken;
oracle: GqlOracle;
defaultScaledOfferFactor: Scalars['String'];
scaledOfferFactorPairOverrides: GqlSwapperScaledOfferFactorOverride[];
swapperSwapBalances: GqlSwapBalance[];
};
export type GqlPassThroughBalance = {
id: Scalars['ID'];
amount: Scalars['Int'];
token: GqlToken;
account: GqlAccount;
};
export type GqlPassThroughWalletSwapBalanceOutput = {
id: Scalars['ID'];
token: GqlToken;
amount: Scalars['Int'];
passThroughWalletSwapBalance: GqlPassThroughWalletSwapBalance;
};
export type GqlPassThroughWalletSwapBalance = {
id: Scalars['ID'];
inputToken: GqlToken;
inputAmount: Scalars['Int'];
outputs: GqlPassThroughWalletSwapBalanceOutput[];
passThroughWallet: GqlPassThroughWallet;
};
export type GqlPassThroughWallet = GqlAccountSharedFields & {
__typename: 'PassThroughWallet';
id: Scalars['ID'];
owner: GqlAccount;
paused: Scalars['Boolean'];
passThroughAccount: GqlAccount;
passThroughSwapBalances: GqlPassThroughWalletSwapBalance[];
};
type GqlToken = {
id: Scalars['ID'];
symbol: Scalars['String'];
decimals: Scalars['Int'];
withdrawals: GqlTokenBalance[];
internalBalances: GqlTokenBalance[];
};
export type GqlTokenBalanceSharedData = {
id: Scalars['ID'];
amount: Scalars['Int'];
token: GqlToken;
};
export type GqlTokenBalance = GqlTokenBalanceSharedData & {
account: GqlAccount;
};
export type GqlWarehouseWithdrawConfig = {
paused: Scalars['Boolean'];
incentive: Scalars['Int'];
};
type GqlTransaction = {
id: Scalars['ID'];
};
type GqlBaseEventData = {
id: Scalars['ID'];
timestamp: Scalars['Int'];
logIndex: Scalars['Int'];
account: GqlAccount;
};
type GqlRecieveDistributionEvent = GqlBaseEventData & {
__typename: 'ReceiveDistributionEvent';
token: GqlToken;
amount: Scalars['Int'];
distributionEvent: GqlDistributionEvent;
};
type GqlDistributeDistributionEvent = GqlBaseEventData & {
__typename: 'DistributeDistributionEvent';
token: GqlToken;
amount: Scalars['Int'];
distributionEvent: GqlDistributionEvent;
};
type GqlDistributionEvent = GqlBaseEventData & {
__typename: 'DistributionEvent';
amount: Scalars['Int'];
token: GqlToken;
transaction: GqlTransaction;
receiveDistributionEvents: GqlRecieveDistributionEvent[];
distributeDistributionEvent: GqlDistributeDistributionEvent;
};
type GqlWithdrawalEvent = GqlBaseEventData & {
__typename: 'WithdrawalEvent';
transaction: GqlTransaction;
tokenWithdrawalEvents: GqlTokenWithdrawalEvent[];
};
type GqlTokenWithdrawalEvent = GqlBaseEventData & {
__typename: 'TokenWithdrawalEvent';
token: GqlToken;
amount: Scalars['Int'];
withdrawalEvent: GqlWithdrawalEvent;
};
type GqlControlTransferEvent = GqlBaseEventData & {
__typename: 'ControlTransferEvent';
controlTransferType: 'initiate' | 'cancel' | 'transfer';
transaction: GqlTransaction;
fromUserEvent: GqlFromUserGqlControlTransferEvent;
toUserEvent?: GqlToUserGqlControlTransferEvent;
};
type GqlFromUserGqlControlTransferEvent = GqlBaseEventData & {
__typename: 'FromUserControlTransferEvent';
controlTransferEvent: GqlControlTransferEvent;
};
type GqlToUserGqlControlTransferEvent = GqlBaseEventData & {
__typename: 'ToUserControlTransferEvent';
controlTransferEvent: GqlControlTransferEvent;
};
type GqlSetSplitEvent = GqlBaseEventData & {
__typename: 'SetSplitEvent';
transaction: GqlTransaction;
setSplitType: 'create' | 'update';
recipientAddedEvents: GqlRecipientAddedEvent[];
recipientRemovedEvents: GqlRecipientRemovedEvent[];
};
type GqlRecipientAddedEvent = GqlBaseEventData & {
__typename: 'RecipientAddedEvent';
setSplitEvent: GqlSetSplitEvent;
ownership: Scalars['Int'];
};
type GqlRecipientRemovedEvent = GqlBaseEventData & {
__typename: 'RecipientRemovedEvent';
setSplitEvent: GqlSetSplitEvent;
};
type GqlCreateVestingModuleEvent = GqlBaseEventData & {
__typename: 'CreateVestingModuleEvent';
transaction: GqlTransaction;
};
type GqlCreateVestingStreamEvent = GqlBaseEventData & {
__typename: 'CreateVestingStreamEvent';
transaction: GqlTransaction;
token: GqlToken;
amount: Scalars['Int'];
};
type GqlReleaseVestingFundsEvent = GqlBaseEventData & {
__typename: 'ReleaseVestingFundsEvent';
account: GqlVestingModule;
transaction: GqlTransaction;
token: GqlToken;
amount: Scalars['Int'];
};
type GqlReceiveVestedFundsEvent = GqlBaseEventData & {
__typename: 'ReceiveVestedFundsEvent';
releaseVestingFundsEvent: GqlReleaseVestingFundsEvent;
};
type GqlCreateWaterfallModuleEvent = GqlBaseEventData & {
__typename: 'CreateWaterfallModuleEvent';
transaction: GqlTransaction;
recipientAddedEvents: GqlWaterfallRecipientAddedEvent[];
};
type GqlWaterfallRecipientAddedEvent = GqlBaseEventData & {
__typename: 'WaterfallRecipientAddedEvent';
createWaterfallEvent: GqlCreateWaterfallModuleEvent;
};
type GqlWaterfallFundsEvent = GqlBaseEventData & {
__typename: 'WaterfallFundsEvent';
account: GqlWaterfallModule;
transaction: GqlTransaction;
amount: Scalars['Int'];
receiveFundsEvents: GqlReceiveWaterfallFundsEvent[];
};
type GqlReceiveWaterfallFundsEvent = GqlBaseEventData & {
__typename: 'ReceiveWaterfallFundsEvent';
amount: Scalars['Int'];
waterfallFundsEvent: GqlWaterfallFundsEvent;
};
type GqlRecoverNonWaterfallFundsEvent = GqlBaseEventData & {
__typename: 'RecoverNonWaterfallFundsEvent';
account: GqlWaterfallModule;
transaction: GqlTransaction;
amount: Scalars['Int'];
nonWaterfallToken: GqlToken;
receiveNonWaterfallFundsEvent: GqlReceiveNonWaterfallFundsEvent;
};
type GqlReceiveNonWaterfallFundsEvent = GqlBaseEventData & {
__typename: 'ReceiveNonWaterfallFundsEvent';
recoverNonWaterfallFundsEvent: GqlRecoverNonWaterfallFundsEvent;
};
type GqlCreateLiquidSplitEvent = GqlBaseEventData & {
__typename: 'CreateLiquidSplitEvent';
transaction: GqlTransaction;
};
type GqlLiquidSplitNFTTransferEvent = GqlBaseEventData & {
__typename: 'LiquidSplitNFTTransferEvent';
transaction: GqlTransaction;
nftTransferAmount?: Scalars['String'];
transferType: Scalars['String'];
nftAddedEvent?: GqlLiquidSplitNFTAddedEvent;
nftRemovedEvent?: GqlLiquidSplitNFTRemovedEvent;
};
type GqlLiquidSplitNFTAddedEvent = GqlBaseEventData & {
__typename: 'LiquidSplitNFTAddedEvent';
nftTransferEvent: GqlLiquidSplitNFTTransferEvent;
};
type GqlLiquidSplitNFTRemovedEvent = GqlBaseEventData & {
__typename: 'LiquidSplitNFTRemovedEvent';
nftTransferEvent: GqlLiquidSplitNFTTransferEvent;
};
type GqlCreateSwapperEvent = GqlBaseEventData & {
__typename: 'CreateSwapperEvent';
transaction: GqlTransaction;
token: GqlToken;
beneficiaryAddedEvent: GqlSwapperBeneficiaryAddedEvent;
};
type GqlSwapperBeneficiaryAddedEvent = GqlBaseEventData & {
__typename: 'SwapperBeneficiaryAddedEvent';
createSwapperEvent: GqlCreateSwapperEvent;
addedUpdateSwapperEvent: GqlUpdatePassThroughAccountEvent;
};
type GqlSwapperBeneficiaryRemovedEvent = GqlBaseEventData & {
__typename: 'SwapperBeneficiaryRemovedEvent';
removedUpdateSwapperEvent: GqlUpdatePassThroughAccountEvent;
};
type GqlUpdateSwapperBeneficiaryEvent = GqlBaseEventData & {
__typename: 'UpdateSwapperBeneficiaryEvent';
transaction: GqlTransaction;
beneficiaryAddedEvent: GqlSwapperBeneficiaryAddedEvent;
beneficiaryRemovedEvent: GqlSwapperBeneficiaryRemovedEvent;
};
type GqlUpdateSwapperTokenEvent = GqlBaseEventData & {
__typename: 'UpdateSwapperTokenEvent';
transaction: GqlTransaction;
oldToken: GqlToken;
newToken: GqlToken;
};
type GqlSwapFundsEvent = GqlBaseEventData & {
__typename: 'SwapFundsEvent';
transaction: GqlTransaction;
inputAmount: Scalars['String'];
inputToken: GqlToken;
outputAmount: Scalars['String'];
outputToken: GqlToken;
recipient: GqlReceiveSwappedFundsEvent;
};
type GqlReceiveSwappedFundsEvent = GqlBaseEventData & {
__typename: 'ReceiveSwappedFundsEvent';
swapFundsEvent: GqlSwapFundsEvent;
};
type GqlCreatePassThroughWalletEvent = GqlBaseEventData & {
__typename: 'CreatePassThroughWalletEvent';
transaction: GqlTransaction;
passThroughAccount: GqlAccount;
};
type GqlUpdatePassThroughAccountEvent = GqlBaseEventData & {
__typename: 'UpdatePassThroughAccountEvent';
transaction: GqlTransaction;
oldPassThroughAccount: GqlAccount;
newPassThroughAccount: GqlAccount;
};
type GqlPassThroughFundsBalance = {
token: GqlToken;
amount: Scalars['String'];
};
type GqlPassThroughFundsEvent = GqlBaseEventData & {
__typename: 'PassThroughFundsEvent';
transaction: GqlTransaction;
passThroughBalances: GqlPassThroughFundsBalance[];
recipient: GqlReceivePassThroughFundsEvent;
};
type GqlReceivePassThroughFundsEvent = GqlBaseEventData & {
__typename: 'ReceivePassThroughFundsEvent';
passThroughFundsEvent: GqlPassThroughFundsEvent;
};
type GqlReceiveOwnerSwappedDiversifierFundsEvent = GqlBaseEventData & {
__typename: 'ReceiveOwnerSwappedDiversifierFundsEvent';
swapDiversifierFundsBalance: GqlSwapDiversifierFundsBalance;
};
type GqlSwapDiversifierFundsBalance = {
inputToken: GqlToken;
inputAmount: Scalars['String'];
outputToken: GqlToken;
outputAmount: Scalars['String'];
ownerSwapDiversifierFundsEvent: GqlOwnerSwapDiversifierFundsEvent;
};
type GqlOwnerSwapDiversifierFundsEvent = GqlBaseEventData & {
__typename: 'OwnerSwapDiversifierFundsEvent';
transaction: GqlTransaction;
swapDiversifierFundsBalances: GqlSwapDiversifierFundsBalance[];
};
export type GqlAccountEvent = GqlDistributionEvent | GqlRecieveDistributionEvent | GqlDistributeDistributionEvent | GqlWithdrawalEvent | GqlControlTransferEvent | GqlToUserGqlControlTransferEvent | GqlFromUserGqlControlTransferEvent | GqlSetSplitEvent | GqlRecipientAddedEvent | GqlRecipientRemovedEvent | GqlCreateVestingModuleEvent | GqlCreateVestingStreamEvent | GqlReleaseVestingFundsEvent | GqlReceiveVestedFundsEvent | GqlCreateWaterfallModuleEvent | GqlWaterfallRecipientAddedEvent | GqlWaterfallFundsEvent | GqlReceiveWaterfallFundsEvent | GqlRecoverNonWaterfallFundsEvent | GqlReceiveNonWaterfallFundsEvent | GqlCreateLiquidSplitEvent | GqlLiquidSplitNFTTransferEvent | GqlLiquidSplitNFTAddedEvent | GqlLiquidSplitNFTRemovedEvent | GqlCreateSwapperEvent | GqlSwapperBeneficiaryAddedEvent | GqlSwapperBeneficiaryRemovedEvent | GqlUpdateSwapperBeneficiaryEvent | GqlUpdateSwapperTokenEvent | GqlSwapFundsEvent | GqlReceiveSwappedFundsEvent | GqlCreatePassThroughWalletEvent | GqlUpdatePassThroughAccountEvent | GqlPassThroughFundsEvent | GqlReceivePassThroughFundsEvent | GqlOwnerSwapDiversifierFundsEvent | GqlReceiveOwnerSwappedDiversifierFundsEvent;
export type GqlAccountEventName = GqlAccountEvent['__typename'];
export type GqlAccount = GqlUser | GqlSplit | GqlVestingModule | GqlWaterfallModule | GqlLiquidSplit | GqlSwapper | GqlPassThroughWallet;
export type GqlAccountType = GqlAccount['__typename'];
export type IBalance = Dictionary<{
amount: bigint;
symbol: string;
decimals: number;
}>;
export type ISplitType = 'immutable' | 'mutable' | 'liquid';
export type IContractEarnings = Dictionary<{
total: IBalance;
withdrawals: IBalance;
internalBalances: IBalance;
}>;
export type IAccount = {
address: Address;
chainId: SupportedChainId;
};
type IAccountSharedFields = IAccount & {
distributions: IBalance;
splitmainBalances: IBalance;
warehouseBalances: IBalance;
latestBlock: number;
latestActivity: number;
parentEntityType?: string;
controllingSplits?: Address[];
pendingControlSplits?: Address[];
ownedSwappers?: Address[];
ownedPassThroughWallets?: Address[];
upstreamSplits?: Address[];
upstreamWaterfalls?: Address[];
upstreamLiquidSplits?: Address[];
upstreamSwappers?: Address[];
upstreamPassThroughWallets?: Address[];
upstreamVesting?: Address[];
contractEarnings: IContractEarnings;
warehouseWithdrawConfig?: {
paused: boolean;
incentive: number;
};
};
export type SplitV2Versions = 'splitV2' | 'splitV2o1' | 'splitV2o2';
export type ISplit = IAccountSharedFields & {
type: 'split' | SplitV2Versions;
balances: IBalance;
distributed: IBalance;
withdrawn: IBalance;
recipients: IRecipient[];
distributorFee: number;
distributionsPaused: boolean;
distributeDirection: 'push' | 'pull';
controller: Address;
newPotentialController: Address;
hash: string;
liquidSplitId?: Address;
createdBlock: number;
};
export type IRecipient = {
address: Address;
ownership: bigint;
idx: number;
ens?: string;
};
export type IUser = IAccountSharedFields & {
type: 'user';
withdrawn: IBalance;
};
export type IVestingStream = {
streamId: number;
startTime: number;
totalAmount: bigint;
claimedAmount: bigint;
token: Address;
};
export type IVestingModule = IAccountSharedFields & {
type: 'vesting';
balances: IBalance;
beneficiary: Address;
vestingPeriod: number;
streams?: IVestingStream[];
};
export type IWaterfallTranche = {
startAmount: bigint;
size?: bigint;
fundedAmount: bigint;
claimedAmount: bigint;
recipient: Address;
};
export type IWaterfallModule = IAccountSharedFields & {
type: 'waterfall';
balances: IBalance;
distributed: IBalance;
token: Address;
tranches: IWaterfallTranche[];
nonWaterfallRecipient: Address;
};
export type IHolder = {
address: Address;
ownership: bigint;
};
export type ILiquidSplit = IAccountSharedFields & {
type: 'liquidSplit';
balances: IBalance;
distributed: IBalance;
splitId: Address;
distributorFee: number;
holders: IHolder[];
isFactoryGenerated: boolean;
encodedSvgLogo?: string;
};
export type IUniswapV3TWAPPairDetails = Dictionary<{
base: Address;
quote: Address;
pool: string;
fee: number;
period: number;
}>;
export type IChainlinkPairDetails = Dictionary<{
base: Address;
quote: Address;
}>;
type IBaseOracle = {
address: Address;
};
type IUnknownOracle = IBaseOracle & {
type: 'unknown';
};
export type IUniswapV3TWAPOracle = IBaseOracle & {
type: 'uniswapV3TWAP';
defaultPeriod: number;
pairDetails: IUniswapV3TWAPPairDetails;
};
type IChainlinkOracle = IBaseOracle & {
type: 'chainlink';
sequencerFeed?: string;
chainlinkPairDetails: IChainlinkPairDetails;
};
export type IOracle = IUnknownOracle | IUniswapV3TWAPOracle | IChainlinkOracle;
export type ISwapBalance = Dictionary<{
inputAmount: bigint;
outputAmount: bigint;
}>;
export type ISwapperScaledOfferFactorOverrides = Dictionary<{
base: Address;
quote: Address;
scaledOfferFactor: number;
}>;
export type ISwapper = IAccountSharedFields & {
type: 'swapper';
balances: IBalance;
balanceQuoteAmounts: ISwapBalance;
swapBalances: ISwapBalance;
owner: Address;
beneficiary: Address;
tokenToBeneficiary: Address;
defaultScaledOfferFactor: number;
scaledOfferFactorOverrides: ISwapperScaledOfferFactorOverrides;
oracle: IOracle;
paused: boolean;
};
export type IDiversifierSwapBalance = Dictionary<Dictionary<{
inputAmount: bigint;
outputToken: Address;
outputAmount: bigint;
}>>;
export type IPassThroughWalletSwapBalance = Dictionary<{
inputAmount: bigint;
outputs: IBalance;
}>;
export type IPassThroughWallet = IAccountSharedFields & {
type: 'passThroughWallet';
balances: IBalance;
passThroughBalances: IBalance;
owner: Address;
passThroughAccount: Address;
balanceQuoteAmounts: IDiversifierSwapBalance;
paused: boolean;
swapBalances: IPassThroughWalletSwapBalance;
};
export type IAccountType = ISplit | IWaterfallModule | IVestingModule | ILiquidSplit | ISwapper | IPassThroughWallet | IUser;
export type ISubgraphAccount = {
account?: IAccountType;
upstreamSplits?: ISplit[];
upstreamWaterfalls?: IWaterfallModule[];
upstreamVesting?: IVestingModule[];
upstreamLiquidSplits?: ILiquidSplit[];
upstreamSwappers?: ISwapper[];
upstreamPassThroughWallets?: IPassThroughWallet[];
controllingSplits?: ISplit[];
pendingControlSplits?: ISplit[];
ownedSwappers?: ISwapper[];
ownedPassThroughWallets?: IPassThroughWallet[];
};
export {};