@cenoa/waas-js-sdk
Version:
Official Cenoa Wallet as a Service SDK
120 lines (119 loc) • 3.35 kB
TypeScript
import { BytesLike } from 'ethers';
declare namespace Types {
enum SigningType {
APPROVE = "APPROVE",
PERMIT = "PERMIT",
DEPOSIT = "DEPOSIT",
WITHDRAW = "WITHDRAW",
DEPOSIT_V2 = "DEPOSIT_V2",
WITHDRAW_V2 = "WITHDRAW_V2",
TRANSFER = "TRANSFER",
META_TRANSACTION = "META_TRANSACTION",
META_TRANSACTION_V2 = "META_TRANSACTION_V2",
SIGN_HASH = "SIGN_HASH"
}
interface ApproveTxSigningParams {
from: string;
spender: string;
value: string;
validAfter: number;
validBefore: number;
nonce: string;
}
interface PermitTxSigningParams {
owner: string;
spender: string;
value: string;
deadline: number;
nonce: number;
}
interface DepositTxSigningParams {
from: string;
token: string;
amount: string;
receiver: string;
validAfter: number;
validBefore: number;
nonce: string;
}
interface WithdrawTxSigningParams {
from: string;
amount: string;
tokenAddress: string;
receiver: string;
validAfter: number;
validBefore: number;
nonce: string;
}
interface TransferTxSigningParams {
from: string;
to: string;
value: string;
validAfter: number;
validBefore: number;
nonce: string;
}
interface MetaTransactionParams {
nonce: string;
from: string;
functionSignature: string;
}
interface ReinvestParams {
nonce: string;
from: string;
managedAccountId: number;
tokenAddress: string;
newPool: string;
validAfter: number;
validBefore: number;
}
interface SignHashParams {
request: ReinvestParams | ApproveTxSigningParams | PermitTxSigningParams | DepositTxSigningParams | WithdrawTxSigningParams | TransferTxSigningParams | MetaTransactionParams;
hash: string;
}
interface PaymasterConfigDto {
rpcUrl: string;
context: {
type: string;
};
}
type PaymentOptions = {
fiatAmount: number;
fiatCurrency: string;
diaFiatAmount: number;
diaFiatCurrency: string;
estimatedConversionPrice?: number;
};
type SignCredentialPayload = ApproveTxSigningParams | PermitTxSigningParams | DepositTxSigningParams | WithdrawTxSigningParams | TransferTxSigningParams | MetaTransactionParams | SignHashParams;
type Signature = {
v: number;
r: string;
s: string;
signature: BytesLike;
};
interface SignCredential {
type: SigningType;
network: string;
url: string;
groupId?: string;
contractAddress: string;
currency?: string;
payload: SignCredentialPayload;
paymentOptions?: PaymentOptions;
}
type SignCredentials = {
signs: SignCredential[];
};
type SignedCredential = {
amount?: string;
currency?: string;
contractAddress: string;
groupId?: string;
paymentOptions?: PaymentOptions;
request: {
type: SigningType;
} & SignCredentialPayload;
signature: Signature;
};
}
export default Types;