UNPKG

@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
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>>; }