@baking-bad/tezos-etherlink-bridge-sdk
Version:
SDK designed for building token bridge applications between Tezos (L1) and Etherlink (L2)
48 lines (47 loc) • 4.41 kB
TypeScript
import { Schema } from '@taquito/michelson-encoder';
import type { TezosToolkit, Wallet, ContractProvider, ContractMethod } from '@taquito/taquito';
import type { FA12Contract, FA2Contract, NativeTokenTicketHelper, NonNativeTokenTicketHelper } from './contracts';
import { fa12helper, fa2helper } from './helpers';
import type { FA12TezosToken, FA2TezosToken } from '../../tokens';
import type { TezosBridgeBlockchainService, DepositNativeTokenParams, DepositNonNativeTokensParams, FinishWithdrawParams, DepositNativeTokenResult, DepositNonNativeTokenResult, FinishWithdrawResult, CreateDepositNativeTokenOperationParams, CreateDepositNonNativeTokenOperationParams } from '../tezosBridgeBlockchainService';
export interface TaquitoTezosBridgeBlockchainServiceOptions {
tezosToolkit: TezosToolkit;
smartRollupAddress: string;
}
export declare abstract class TaquitoTezosBridgeBlockchainService<TApi extends ContractProvider | Wallet> implements TezosBridgeBlockchainService<DepositNativeTokenResult & {
operation: Awaited<ReturnType<ContractMethod<TApi>['send']>>;
}, DepositNonNativeTokenResult & {
operation: Awaited<ReturnType<ReturnType<TApi['batch']>['send']>>;
}, FinishWithdrawResult & {
operation: Awaited<ReturnType<ContractProvider['smartRollupExecuteOutboxMessage']>>;
}, ContractMethod<TApi>, ContractMethod<TApi>> {
readonly smartRollupAddress: string;
protected readonly tezosToolkit: TezosToolkit;
protected readonly tezosTicketerContentSchema: Schema;
constructor(options: TaquitoTezosBridgeBlockchainServiceOptions);
getSignerAddress(): Promise<string | undefined>;
abstract depositNativeToken(params: DepositNativeTokenParams): Promise<DepositNativeTokenResult & {
operation: Awaited<ReturnType<ContractMethod<TApi>['send']>>;
}>;
abstract depositNonNativeToken(params: DepositNonNativeTokensParams): Promise<DepositNonNativeTokenResult & {
operation: Awaited<ReturnType<ReturnType<TApi['batch']>['send']>>;
}>;
abstract finishWithdraw(params: FinishWithdrawParams): Promise<FinishWithdrawResult & {
operation: Awaited<ReturnType<ContractProvider['smartRollupExecuteOutboxMessage']>>;
}>;
createDepositNativeTokenOperation(params: CreateDepositNativeTokenOperationParams): Promise<ContractMethod<TApi>>;
createDepositNonNativeTokenOperation(params: CreateDepositNonNativeTokenOperationParams): Promise<ContractMethod<TApi>>;
getTezosTicketerContent(tezosTicketerAddress: string): Promise<string>;
protected depositNativeTokenInternal(params: DepositNativeTokenParams): Promise<TApi extends Wallet ? import("@taquito/taquito").TransactionWalletOperation : import("@taquito/taquito").TransactionOperation>;
protected depositNonNativeTokenInternal(params: DepositNonNativeTokensParams): Promise<Awaited<ReturnType<ReturnType<TApi['batch']>['send']>>>;
protected finishWithdrawInternal(params: FinishWithdrawParams): Promise<import("@taquito/taquito/dist/types/operations/smart-rollup-execute-outbox-message-operation").SmartRollupExecuteOutboxMessageOperation>;
protected getCurrentOperationTimestamp(): string;
protected wrapContractCallsWithFA12TokenApprove(batch: ReturnType<TApi['batch']>, contractCalls: Parameters<typeof fa12helper.wrapContractCallsWithApprove>[0]['contractCalls'], amount: bigint, token: FA12TezosToken, ticketHelperContractAddress: string, isNeedToReset: boolean): Promise<ReturnType<TApi['batch']>>;
protected wrapContractCallsWithFA2TokenApprove(batch: ReturnType<TApi['batch']>, contractCalls: Parameters<typeof fa2helper.wrapContractCallsWithApprove>[0]['contractCalls'], token: FA2TezosToken, ticketHelperContractAddress: string): Promise<ReturnType<TApi['batch']>>;
protected packDepositRoutingInfo(etherlinkReceiverAddress: string): string;
protected abstract createBatch(params?: Parameters<TApi['batch']>[0]): ReturnType<TApi['batch']>;
protected abstract getNativeTokenTicketHelperContract(ticketHelperContractAddress: string): Promise<NativeTokenTicketHelper<TApi>>;
protected abstract getNonNativeTokenTicketHelperContract(ticketHelperContractAddress: string): Promise<NonNativeTokenTicketHelper<TApi>>;
protected abstract getFA12TokenContract(fa12TokenContractAddress: string): Promise<FA12Contract<TApi>>;
protected abstract getFA2TokenContract(fa2TokenContractAddress: string): Promise<FA2Contract<TApi>>;
}