Skip to content
Merged
32 changes: 19 additions & 13 deletions packages/extension-base/src/background/KoniTypes.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright 2019-2022 @polkadot/extension-koni authors & contributors
// SPDX-License-Identifier: Apache-2.0

import type { Psbt, PsbtTxInput, PsbtTxOutput } from 'bitcoinjs-lib';
import type { Psbt } from 'bitcoinjs-lib';

import { _AssetRef, _AssetType, _ChainAsset, _ChainInfo, _FundStatus, _MultiChainAsset } from '@subwallet/chain-list/types';
import { TransactionError } from '@subwallet/extension-base/background/errors/TransactionError';
Expand All @@ -13,7 +13,7 @@ import { _BitcoinApi, _ChainState, _EvmApi, _NetworkUpsertParams, _SubstrateApi,
import { CrowdloanContributionsResponse } from '@subwallet/extension-base/services/subscan-service/types';
import { BitcoinTransactionData, SWTransactionResponse, SWTransactionResult } from '@subwallet/extension-base/services/transaction-service/types';
import { WalletConnectNotSupportRequest, WalletConnectSessionRequest } from '@subwallet/extension-base/services/wallet-connect-service/types';
import { BalanceJson, BitcoinFeeDetail, BuyServiceInfo, BuyTokenInfo, EarningRewardHistoryItem, EarningRewardJson, EarningStatus, HandleYieldStepParams, LeavePoolAdditionalData, NominationPoolInfo, OptimalYieldPath, OptimalYieldPathParams, RequestEarlyValidateYield, RequestGetYieldPoolTargets, RequestStakeCancelWithdrawal, RequestStakeClaimReward, RequestSubmitTransfer, RequestSubmitTransferWithId, RequestSubscribeTransfer, RequestUnlockDotCheckCanMint, RequestUnlockDotSubscribeMintedData, RequestYieldLeave, RequestYieldStepSubmit, RequestYieldWithdrawal, ResponseEarlyValidateYield, ResponseGetYieldPoolTargets, ResponseSubscribeTransfer, SubmitYieldStepData, TokenApproveData, UnlockDotTransactionNft, UnstakingStatus, UtxoResponseItem, ValidateYieldProcessParams, YieldPoolInfo, YieldPositionInfo, YieldValidationStatus } from '@subwallet/extension-base/types';
import { BalanceJson, BuyServiceInfo, BuyTokenInfo, EarningRewardHistoryItem, EarningRewardJson, EarningStatus, HandleYieldStepParams, LeavePoolAdditionalData, NominationPoolInfo, OptimalYieldPath, OptimalYieldPathParams, RequestEarlyValidateYield, RequestGetYieldPoolTargets, RequestStakeCancelWithdrawal, RequestStakeClaimReward, RequestSubmitSignPsbtTransfer, RequestSubmitTransfer, RequestSubmitTransferWithId, RequestSubscribeTransfer, RequestUnlockDotCheckCanMint, RequestUnlockDotSubscribeMintedData, RequestYieldLeave, RequestYieldStepSubmit, RequestYieldWithdrawal, ResponseEarlyValidateYield, ResponseGetYieldPoolTargets, ResponseSubscribeTransfer, ResponseSubscribeTransferConfirmation, SubmitYieldStepData, TokenApproveData, UnlockDotTransactionNft, UnstakingStatus, ValidateYieldProcessParams, YieldPoolInfo, YieldPositionInfo, YieldValidationStatus } from '@subwallet/extension-base/types';
import { InjectedAccount, InjectedAccountWithMeta, MetadataDefBase } from '@subwallet/extension-inject/types';
import { KeypairType, KeyringPair$Json, KeyringPair$Meta } from '@subwallet/keyring/types';
import { KeyringOptions } from '@subwallet/ui-keyring/options/types';
Expand Down Expand Up @@ -1344,10 +1344,18 @@ export interface BitcoinSendTransactionParams {
recipients: BitcoinRecipientTransactionParams[]
}

export interface PsbtTransactionArg {
address?: string;
amount?: string;
}

export interface BitcoinSignPsbtPayload extends Omit<BitcoinSignPsbtRawRequest, 'psbt'>{
txInput: PsbtTxInput[];
txOutput: PsbtTxOutput[];
psbt: Psbt
txInput: PsbtTransactionArg[];
txOutput: PsbtTransactionArg[];
to: string;
value: string;
psbt: Psbt;
tokenSlug: string;
}

enum SignatureHash {
Expand All @@ -1363,7 +1371,7 @@ export interface BitcoinSignPsbtRawRequest {
allowedSighash?: SignatureHash[];
signAtIndex?: number | number[];
broadcast?: boolean;
network: 'mainnet' | 'testnet';
network: string;
account: string;
}

Expand Down Expand Up @@ -1391,10 +1399,7 @@ export interface EvmSendTransactionRequest extends TransactionConfig, EvmSignReq
isToContract: boolean;
}

export interface BitcoinSendTransactionRequest extends BitcoinSignRequest, BitcoinTransactionConfig {
outputs?: BitcoinOutputUtox[],
inputs?: UtxoResponseItem[],
}
export interface BitcoinSendTransactionRequest extends BitcoinSignRequest, BitcoinTransactionConfig {}

export type EvmWatchTransactionRequest = EvmSendTransactionRequest;
export type BitcoinWatchTransactionRequest = BitcoinSendTransactionRequest;
Expand All @@ -1416,11 +1421,10 @@ export interface BitcoinOutputUtox {
export interface BitcoinTransactionConfig{
id?: string,
from?: string | number;
to?: string;
to?: BitcoinRecipientTransactionParams[];
value?: number | string | BN;
networkKey?: string;
tokenSlug?: string;
fee?: BitcoinFeeDetail;
}

export interface SignMessageBitcoinResult {
Expand Down Expand Up @@ -2563,14 +2567,16 @@ export interface KoniRequestSignatures {
'pri(transfer.getExistentialDeposit)': [RequestTransferExistentialDeposit, string];
'pri(transfer.getMaxTransferable)': [RequestMaxTransferable, AmountData];
'pri(transfer.subscribe)': [RequestSubscribeTransfer, ResponseSubscribeTransfer, ResponseSubscribeTransfer];
'pri(transfer.confirmation.subscribe)': [RequestSubscribeTransfer, ResponseSubscribeTransferConfirmation, ResponseSubscribeTransferConfirmation];
'pri(subscription.cancel)': [string, boolean];
'pri(freeBalance.get)': [RequestFreeBalance, AmountData];
'pri(freeBalance.subscribe)': [RequestFreeBalance, AmountDataWithId, AmountDataWithId];

// Transfer
'pri(accounts.checkTransfer)': [RequestCheckTransfer, ValidateTransactionResponse];
'pri(accounts.transfer)': [RequestSubmitTransfer, SWTransactionResponse];
'pri(accounts.transfer.after.confirmation)': [RequestSubmitTransferWithId, SWTransactionResponse];
'pri(accounts.bitcoin.dapp.transfer.confirmation)': [RequestSubmitTransferWithId, SWTransactionResponse];
'pri(accounts.psbt.transfer.confirmation)': [RequestSubmitSignPsbtTransfer, SWTransactionResponse];
'pri(accounts.getBitcoinTransactionData)': [RequestSubmitTransfer, BitcoinTransactionData];

'pri(accounts.checkCrossChainTransfer)': [RequestCheckCrossChainTransfer, ValidateTransactionResponse];
Expand Down
Loading