///
///
import { BigNumberish, ethers, Wallet as HDNodeWallet } from "ethers";
import { NETWORKS } from "../endpoints";
import Wallet from "../wallet";
import DecimalContractEVM from "./contract";
import { NFTCollectionReserveless } from "./call";
import { TypeNFT, Token, NFTCollection, ValidotorStake } from "./call";
import { TokenType, NFTStake } from "./interfaces/delegation";
import { ValidatorMeta, ValidatorStatus } from "./interfaces/validator";
import { SafeSignature, SafeTransaction } from "./multisig/execution";
import { Blob } from "buffer";
export default class DecimalEVM {
private readonly network;
private readonly wallet;
private readonly apiUrl;
private readonly subgraph;
private readonly ipfs;
private call?;
private contractAddesses?;
provider: ethers.providers.JsonRpcProvider;
account: HDNodeWallet;
providerETH?: ethers.providers.JsonRpcProvider;
accountETH?: HDNodeWallet;
providerBSC?: ethers.providers.JsonRpcProvider;
accountBSC?: HDNodeWallet;
private contracts;
private abis;
multisig: {
create: (ownersData: {
owner: string;
weight: number;
}[], weightThreshold?: number, estimateGas?: boolean) => Promise<{
tx: any;
multisigAddress: any;
estimateGas: any;
}>;
buildTxSendDEL: (safeAddress: string, to: string, amount: string | number | bigint, nonce?: BigNumberish) => Promise;
buildTxSendToken: (safeAddress: string, tokenAddress: string, to: string, amount: string | number | bigint, nonce?: BigNumberish) => Promise;
buildTxBurnToken: (safeAddress: string, tokenAddress: string, amount: string | number | bigint, nonce?: BigNumberish) => Promise;
buildTxSendNFT: (safeAddress: string, tokenAddress: string, to: string, tokenId: string | number | bigint, amount?: string | number | bigint, nonce?: BigNumberish) => Promise;
buildTxDelegateDEL: (safeAddress: string, validator: string, amount: string | number | bigint, nonce?: BigNumberish) => Promise;
buildTxDelegateToken: (safeAddress: string, validator: string, tokenAddress: string, amount: string | number | bigint, nonce?: BigNumberish) => Promise;
buildTxDelegateDRC721: (safeAddress: string, validator: string, nftAddress: string, tokenId: string | number | bigint, nonce?: BigNumberish) => Promise;
buildTxDelegateDRC1155: (safeAddress: string, validator: string, nftAddress: string, tokenId: string | number | bigint, amount: string | number | bigint, nonce?: BigNumberish) => Promise;
buildTxTransferStakeToken: (safeAddress: string, validator: string, tokenAddress: string, amount: string | number | bigint, newValidator: string, nonce?: BigNumberish) => Promise;
buildTxTransferStakeNFT: (safeAddress: string, validator: string, nftAddress: string, tokenId: string | number | bigint, amount: string | number | bigint, newValidator: string, nonce?: BigNumberish) => Promise;
buildTxWithdrawStakeToken: (safeAddress: string, validator: string, tokenAddress: string, amount: string | number | bigint, nonce?: BigNumberish) => Promise;
buildTxWithdrawStakeNFT: (safeAddress: string, validator: string, nftAddress: string, tokenId: string | number | bigint, amount: string | number | bigint, nonce?: BigNumberish) => Promise;
buildTxDelegateDELHold: (safeAddress: string, validator: string, amount: string | number | bigint, holdTimestamp: number, nonce?: BigNumberish) => Promise;
buildTxDelegateTokenHold: (safeAddress: string, validator: string, tokenAddress: string, amount: string | number | bigint, holdTimestamp: number, nonce?: BigNumberish) => Promise;
buildTxTransferStakeTokenHold: (safeAddress: string, validator: string, tokenAddress: string, amount: string | number | bigint, holdTimestamp: number, newValidator: string, nonce?: BigNumberish) => Promise;
buildTxWithdrawStakeTokenHold: (safeAddress: string, validator: string, tokenAddress: string, amount: string | number | bigint, holdTimestamp: number, nonce?: BigNumberish) => Promise;
buildTxDelegateNFT: (safeAddress: string, validator: string, nftAddress: string, tokenId: string | number | bigint, nonce?: BigNumberish) => Promise;
buildTxDelegateNFT1155: (safeAddress: string, validator: string, nftAddress: string, tokenId: string | number | bigint, amount: string | number | bigint, nonce?: BigNumberish) => Promise;
buildTxWithdrawNFT: (safeAddress: string, validator: string, nftAddress: string, tokenId: string | number | bigint, nonce?: BigNumberish) => Promise;
buildTxWithdrawNFT1155: (safeAddress: string, validator: string, nftAddress: string, tokenId: string | number | bigint, nonce?: BigNumberish) => Promise;
buildTxTransferNFTStake: (safeAddress: string, oldValidator: string, nftAddress: string, tokenId: string | number | bigint, newValidator: string, nonce?: BigNumberish) => Promise;
buildTxTransferNFT1155Stake: (safeAddress: string, oldValidator: string, nftAddress: string, tokenId: string | number | bigint, newValidator: string, nonce?: BigNumberish) => Promise;
buildTxSetFallbackHandler: (safeAddress: string, handlerAddress?: string, nonce?: BigNumberish) => Promise;
signTx: (safeAddress: string, safeTx: SafeTransaction) => Promise;
approveHash: (safeAddress: string, safeTx: SafeTransaction) => Promise<{
safeTransaction: SafeSignature;
tx: any;
}>;
approveHashEstimateGas: (safeAddress: string, safeTx: SafeTransaction) => Promise;
executeTx: (safeAddress: string, safeTx: SafeTransaction, signatures: SafeSignature[], estimateGas?: boolean) => Promise;
getNonce: (safeAddress: string) => Promise;
getCurrentApproveTransactions: (safeAddress: string) => Promise<{
transactions: SafeTransaction[];
approvers: string[];
}>;
getExpiredApproveTransactions: (safeAddress: string) => Promise<{
transactions: SafeTransaction[];
approvers: string[];
}>;
getSignatureForParticipant: (participantAddress: string) => Promise;
decodeTransaction: (safeTx: SafeTransaction) => {
action: string;
tokenType: string;
token: string;
to: string;
tokenId?: string;
amount?: string;
newValidator?: string;
holdTimestamp?: string;
};
};
constructor(wallet: Wallet, network: NETWORKS);
private getContract;
connect(contractName?: string): Promise;
private checkConnect;
private initFromImplementation;
parseMemo(txHash: string): Promise;
multiCall(callData: {
target: string;
value: string | number | bigint | BigNumberish;
iface: string;
params: any;
}[], memo?: string, estimateGas?: boolean): Promise;
multiSendToken(multiData: {
token: string;
to: string;
amount: any;
}[], memo?: string, estimateGas?: boolean): Promise;
sendDEL(address: string, amount: string | number | bigint | BigNumberish, estimateGas?: boolean): Promise;
burnDEL(amount: string | number | bigint | BigNumberish, estimateGas?: boolean): Promise;
createToken(payload: Token, reserve: string | number | bigint, estimateGas?: boolean): Promise;
createTokenReserveless(name: string, symbol: string, mintable: boolean, burnable: boolean, initialMint: string | number | bigint, cap: string | number | bigint | undefined | null, identity: string, estimateGas?: boolean): Promise;
convertToken(tokenIn: string, tokenOut: string, amountIn: string | number | bigint, amountOutMin: string | number | bigint, recipient: string, sign?: ethers.Signature, estimateGas?: boolean): Promise;
approveToken(tokenAddress: string, spender: string, amount: string | number | bigint, estimateGas?: boolean): Promise;
transferToken(tokenAddress: string, to: string, amount: string | number | bigint, estimateGas?: boolean): Promise;
transferFromToken(tokenAddress: string, from: string, to: string, amount: string | number | bigint, estimateGas?: boolean): Promise;
burnToken(tokenAddress: string, amount: string | number | bigint, estimateGas?: boolean): Promise;
mintTokenReserveless(tokenAddress: string, amount: string | number | bigint, recipient: string, estimateGas?: boolean): Promise;
convertToDEL(owner: string, token: string, amount: string | number | bigint, estimateGas: string | number | bigint, sign: ethers.Signature, estimateGasUsage?: boolean): Promise;
buyTokenForExactDEL(tokenAddress: string, amountDel: string | number | bigint, amountOutMin: string | number | bigint, recipient: string, estimateGas?: boolean): Promise;
buyExactTokenForDEL(tokenAddress: string, amountDel: string | number | bigint, amountOut: string | number | bigint, recipient: string, estimateGas?: boolean): Promise;
sellTokensForExactDEL(tokenAddress: string, amountOut: string | number | bigint, amountInMax: string | number | bigint, recipient: string, estimateGas?: boolean): Promise;
sellExactTokensForDEL(tokenAddress: string, amountIn: string | number | bigint, amountOutMin: string | number | bigint, recipient: string, estimateGas?: boolean): Promise;
updateTokenIdentity(tokenAddress: string, newIdentity: string, estimateGas?: boolean): Promise;
updateTokenMaxTotalSupply(tokenAddress: string, newMaxTotalSupply: string | number | bigint, estimateGas?: boolean): Promise;
updateTokenMinTotalSupply(tokenAddress: string, newMinTotalSupply: string | number | bigint, estimateGas?: boolean): Promise;
permitToken(tokenAddress: string, owner: string, spender: string, amount: string | number | bigint, sign: ethers.Signature, estimateGas?: boolean): Promise;
createCollectionDRC721(payload: NFTCollection, estimateGas?: boolean): Promise;
createCollectionDRC1155(payload: NFTCollection, estimateGas?: boolean): Promise;
createCollectionDRC721Reserveless(payload: NFTCollectionReserveless, estimateGas?: boolean): Promise;
createCollectionDRC1155Reserveless(payload: NFTCollectionReserveless, estimateGas?: boolean): Promise;
approveNFT721(nftCollectionAddress: string, to: string, tokenId: string | number | bigint, estimateGas?: boolean): Promise;
approveForAllNFT(nftCollectionAddress: string, to: string, approved: boolean, estimateGas?: boolean): Promise;
mintReserveless(nftCollectionAddress: string, to: string, tokenURI: string, tokenId?: string | number | bigint, amount?: string | number | bigint, estimateGas?: boolean): Promise;
mintNFTWithDELReserve(nftCollectionAddress: string, to: string, tokenURI: string, reserve: string | number | bigint, tokenId?: string | number | bigint, amount?: string | number | bigint, estimateGas?: boolean): Promise;
mintNFTWithTokenReserve(nftCollectionAddress: string, to: string, tokenURI: string, reserveAmount: string | number | bigint, reserveToken: string, sign?: ethers.Signature, tokenId?: string | number | bigint, amount?: string | number | bigint, estimateGas?: boolean): Promise;
addDELReserveNFT(nftCollectionAddress: string, tokenId: string | number | bigint, amountReserve: string | number | bigint, estimateGas?: boolean): Promise;
addTokenReserveNFT(nftCollectionAddress: string, tokenId: string | number | bigint, amountReserve: string | number | bigint, sign?: ethers.Signature, estimateGas?: boolean): Promise;
transferNFT(nftCollectionAddress: string, from: string, to: string, tokenId: string | number | bigint, amount?: string | number | bigint, estimateGas?: boolean): Promise;
transferBatchNFT1155(nftCollectionAddress: string, from: string, to: string, tokenIds: string[] | number[], amounts: string[] | number[], estimateGas?: boolean): Promise;
disableMintNFT(nftCollectionAddress: string, estimateGas?: boolean): Promise;
burnNFT(nftCollectionAddress: string, tokenId: string | number | bigint, amount?: string | number | bigint, estimateGas?: boolean): Promise;
setTokenURINFT(nftCollectionAddress: string, tokenId: string | number | bigint, tokenURI: string, estimateGas?: boolean): Promise;
delegateDEL(validator: string, amount: string | number | bigint, estimateGas?: boolean): Promise;
delegateDELHold(validator: string, amount: string | number | bigint, holdTimestamp: number, estimateGas?: boolean): Promise;
delegateToken(validator: string, tokenAddress: string, amount: string | number | bigint, sign?: ethers.Signature, estimateGas?: boolean): Promise;
delegateTokenHold(validator: string, tokenAddress: string, amount: string | number | bigint, holdTimestamp: number, sign?: ethers.Signature, estimateGas?: boolean): Promise;
transferStakeToken(validator: string, tokenAddress: string, amount: string | number | bigint, newValidator: string, estimateGas?: boolean): Promise;
transferStakeTokenHold(validator: string, tokenAddress: string, amount: string | number | bigint, holdTimestamp: number, newValidator: string, estimateGas?: boolean): Promise;
withdrawStakeToken(validator: string, tokenAddress: string, amount: string | number | bigint, estimateGas?: boolean): Promise;
withdrawStakeTokenHold(validator: string, tokenAddress: string, amount: string | number | bigint, holdTimestamp: number, estimateGas?: boolean): Promise;
stakeTokenToHold(validator: string, tokenAddress: string, amount: string | number | bigint, oldHoldTimestamp: number, newHoldTimestamp: number, estimateGas?: boolean): Promise;
stakeTokenResetHold(validator: string, delegator: string, tokenAddress: string, holdTimestamp: number, estimateGas?: boolean): Promise;
stakeTokenResetHoldDEL(validator: string, delegator: string, holdTimestamp: number, estimateGas?: boolean): Promise;
withdrawTokenWithReset(validator: string, tokenAddress: string, amount: string | number | bigint, holdTimestampsToReset: number[], estimateGas?: boolean): Promise;
transferTokenWithReset(oldValidator: string, tokenAddress: string, amount: string | number | bigint, newValidator: string, holdTimestampsToReset: number[], estimateGas?: boolean): Promise;
holdTokenWithReset(validator: string, tokenAddress: string, amount: string | number | bigint, newHoldTimestamp: number, holdTimestampsToReset: number[], estimateGas?: boolean): Promise;
applyPenaltyToStakeToken(validator: string, delegator: string, tokenAddress: string, estimateGas?: boolean): Promise;
applyPenaltiesToStakeToken(validator: string, delegator: string, tokenAddress: string, estimateGas?: boolean): Promise;
completeStakeToken(indexes: string[] | number[], estimateGas?: boolean): Promise;
delegateNFT(validator: string, nftAddress: string, tokenId: string | number | bigint, estimateGas?: boolean): Promise;
delegateNFTHold(validator: string, nftAddress: string, tokenId: string | number | bigint, holdTimestamp: number, estimateGas?: boolean): Promise;
delegateNFTByPermit(validator: string, nftAddress: string, tokenId: string | number | bigint, sign: ethers.Signature, estimateGas?: boolean): Promise;
withdrawNFT(validator: string, nftAddress: string, tokenId: string | number | bigint, estimateGas?: boolean): Promise;
withdrawNFTHold(validator: string, nftAddress: string, tokenId: string | number | bigint, holdTimestamp: number, estimateGas?: boolean): Promise;
transferNFTStake(oldValidator: string, nftAddress: string, tokenId: string | number | bigint, newValidator: string, estimateGas?: boolean): Promise;
transferNFTStakeHold(oldValidator: string, nftAddress: string, tokenId: string | number | bigint, holdTimestamp: number, newValidator: string, estimateGas?: boolean): Promise;
delegateNFT1155(validator: string, nftAddress: string, tokenId: string | number | bigint, amount: string | number | bigint, estimateGas?: boolean): Promise;
delegateNFT1155Hold(validator: string, nftAddress: string, tokenId: string | number | bigint, amount: string | number | bigint, holdTimestamp: number, estimateGas?: boolean): Promise;
withdrawNFT1155(validator: string, nftAddress: string, tokenId: string | number | bigint, estimateGas?: boolean): Promise;
withdrawNFT1155Hold(validator: string, nftAddress: string, tokenId: string | number | bigint, holdTimestamp: number, estimateGas?: boolean): Promise;
transferNFT1155Stake(oldValidator: string, nftAddress: string, tokenId: string | number | bigint, newValidator: string, estimateGas?: boolean): Promise;
transferNFT1155StakeHold(oldValidator: string, nftAddress: string, tokenId: string | number | bigint, holdTimestamp: number, newValidator: string, estimateGas?: boolean): Promise;
delegateDRC721(validator: string, nftAddress: string, tokenId: string | number | bigint, sign?: ethers.Signature, estimateGas?: boolean): Promise;
delegateDRC721Hold(validator: string, nftAddress: string, tokenId: string | number | bigint, holdTimestamp: number, sign?: ethers.Signature, estimateGas?: boolean): Promise;
delegateDRC1155(validator: string, nftAddress: string, tokenId: string | number | bigint, amount: string | number | bigint, sign?: ethers.Signature, estimateGas?: boolean): Promise;
delegateDRC1155Hold(validator: string, nftAddress: string, tokenId: string | number | bigint, amount: string | number | bigint, holdTimestamp: number, sign?: ethers.Signature, estimateGas?: boolean): Promise;
transferStakeNFT(validator: string, nftAddress: string, tokenId: string | number | bigint, amount: string | number | bigint, newValidator: string, estimateGas?: boolean): Promise;
transferStakeNFTHold(validator: string, nftAddress: string, tokenId: string | number | bigint, amount: string | number | bigint, holdTimestamp: number, newValidator: string, estimateGas?: boolean): Promise;
withdrawStakeNFT(validator: string, nftAddress: string, tokenId: string | number | bigint, amount: string | number | bigint, estimateGas?: boolean): Promise;
withdrawStakeNFTHold(validator: string, nftAddress: string, tokenId: string | number | bigint, amount: string | number | bigint, holdTimestamp: number, estimateGas?: boolean): Promise;
stakeNFTToHold(validator: string, nftAddress: string, tokenId: string | number | bigint, amount: string | number | bigint, oldHoldTimestamp: number, newHoldTimestamp: number, estimateGas?: boolean): Promise;
stakeNFTResetHold(validator: string, delegator: string, nftAddress: string, tokenId: string | number | bigint, holdTimestamp: number, estimateGas?: boolean): Promise;
withdrawNFTWithReset(validator: string, nftAddress: string, tokenId: string | number | bigint, amount: string | number | bigint, holdTimestampsToReset: number[], estimateGas?: boolean): Promise;
transferNFTWithReset(oldValidator: string, nftAddress: string, tokenId: string | number | bigint, amount: string | number | bigint, newValidator: string, holdTimestampsToReset: number[], estimateGas?: boolean): Promise;
holdNFTWithReset(validator: string, nftAddress: string, tokenId: string | number | bigint, amountToHold: string | number | bigint, newHoldTimestamp: number, holdTimestampsToReset: number[], estimateGas?: boolean): Promise;
completeStakeNFT(indexes: string[] | number[], estimateGas?: boolean): Promise;
addValidatorWithToken(meta: ValidatorMeta, stake: ValidotorStake, sign?: ethers.Signature, estimateGas?: boolean): Promise;
addValidatorWithETH(meta: ValidatorMeta, amount: string | number | bigint, estimateGas?: boolean): Promise;
removeValidator(validator: string, estimateGas?: boolean): Promise;
pauseValidator(validator: string, estimateGas?: boolean): Promise;
unpauseValidator(validator: string, estimateGas?: boolean): Promise;
updateValidatorMeta(meta: ValidatorMeta, estimateGas?: boolean): Promise;
private buildMultiSigTxSendDEL;
private buildMultiSigTxSendToken;
private buildMultiSigTxBurnToken;
private buildMultiSigTxSendNFT;
private buildMultiSigTxDelegateDEL;
private buildMultiSigTxDelegateToken;
private buildMultiSigTxDelegateDRC721;
private buildMultiSigTxDelegateDRC1155;
private buildMultiSigTxTransferStakeToken;
private buildMultiSigTxTransferStakeNFT;
private buildMultiSigTxWithdrawStakeToken;
private buildMultiSigTxWithdrawStakeNFT;
private buildMultiSigTxDelegateDELHold;
private buildMultiSigTxDelegateTokenHold;
private buildMultiSigTxTransferStakeTokenHold;
private buildMultiSigTxWithdrawStakeTokenHold;
private buildMultiSigTxDelegateNFT;
private buildMultiSigTxDelegateNFT1155;
private buildMultiSigTxWithdrawNFT;
private buildMultiSigTxWithdrawNFT1155;
private buildMultiSigTxTransferNFTStake;
private buildMultiSigTxTransferNFT1155Stake;
private signMultiSigTx;
private approveHashMultiSig;
private approveHashMultiSigEstimateGas;
private getSignatureForParticipant;
private executeMultiSigTx;
private createMultiSig;
private buildMultiSigTxSetFallbackHandler;
private getNonceMultiSig;
private getCurrentApproveTransactions;
private getExpiredApproveTransactions;
private getApproveTransactions;
private decodeMultiSigSafeTransaction;
private decodeInnerTransaction;
private decodeMultiSend;
private decodeData;
bridgeTransferNative(to: string, amount: string | number | bigint, serviceFee: string | number | bigint, fromChainId: number, toChainId: number, estimateGas?: boolean): Promise;
bridgeTransferTokens(tokenAddress: string, to: string, amount: string | number | bigint, serviceFee: string | number | bigint, fromChainId: number, toChainId: number, estimateGas?: boolean): Promise;
bridgeCompleteTransfer(toChainId: number, encodedVM: string, unwrapWETH: boolean, estimateGas?: boolean): Promise;
private getAccountAndBridge;
private passwordToPrivateKey;
createChecksDEL(passwords: string[], amount: string | number | bigint, dueBlock: string | number | bigint, estimateGas?: boolean): Promise;
createChecksToken(passwords: string[], amount: string | number | bigint, dueBlock: string | number | bigint, tokenAddress: string, sign?: ethers.Signature, estimateGas?: boolean): Promise;
redeemChecks(passwords: string[], checks: string[], estimateGas?: boolean): Promise;
redeemChecksTest(passwords: string[], checks: string[]): Promise;
getBalance(address: string): Promise;
getBalanceETH(address: string): Promise;
getBalanceBNB(address: string): Promise;
getNftType(address: string): Promise;
getNftTypeFromContract(address: string): Promise;
getAddressTokenBySymbol(symbol: string): Promise;
checkTokenExists(address: string): Promise;
getCommissionSymbol(symbol: string): Promise;
calculateBuyOutput(address: string, amount: string | number | bigint): Promise;
calculateBuyInput(address: string, amount: string | number | bigint): Promise;
calculateSellInput(address: string, amount: string | number | bigint): Promise;
calculateSellOutput(address: string, amount: string | number | bigint): Promise;
getSignPermitToken(address: string, spender: string, amount: string | number | bigint): Promise;
allowanceToken(address: string, owner: string, spender: string): Promise;
balanceOfToken(address: string, account: string): Promise;
supportsInterfaceToken(address: string, interfaceId: string): Promise;
getApprovedNFT721(address: string, tokenId: string | number | bigint): Promise;
getAllowMintNFT(address: string): Promise;
isApprovedForAllNFT(address: string, owner: string, operator: string): Promise;
ownerOfNFT721(address: string, tokenId: string | number | bigint): Promise;
getTokenURINFT(address: string, tokenId: string | number | bigint): Promise;
balanceOfNFT(address: string, account: string, tokenId?: string | number | bigint): Promise;
supportsInterfaceNFT(address: string, interfaceId: string): Promise;
getRateNFT1155(address: string, tokenId: string | number | bigint): Promise;
calcReserveNFT1155(address: string, tokenId: string | number | bigint, quantity: string | number | bigint): Promise;
getReserveNFT(address: string, tokenId: string | number | bigint): Promise<{
token: any;
amount: any;
reserveType: TypeNFT;
}>;
getRefundableNFT(address: string): Promise;
getSupplyNFT1155(address: string, tokenId: string | number | bigint): Promise;
getTokenStakesByMember(account: string): Promise;
getTokenStakesPageByMember(account: string, size: string | number | bigint, offset: string | number | bigint): Promise;
getFrozenStakesQueueToken(): Promise;
getFreezeTimeToken(): Promise<{
Withdraw: any;
Transfer: any;
}>;
getStakeToken(validator: string, delegator: string, tokenAddress: string): Promise;
getStakeIdToken(validator: string, delegator: string, tokenAddress: string): Promise;
getNFTStake(nftAddress: string, tokenId: string | number | bigint, delegator: string, validator: string, holdTimestamp: number): Promise;
getNFTStakeId(nftAddress: string, tokenId: string | number | bigint, delegator: string, validator: string, holdTimestamp: number): Promise;
getAvailableCoinAmount(validator: string, delegator: string, token: string, holdTimestamp: number): Promise;
getNFTBackedAmount(validator: string, delegator: string, token: string, holdTimestamp: number): Promise;
getNFTStakesByMember(account: string): Promise;
getNFTStakesPageByMember(account: string, size: string | number | bigint, offset: string | number | bigint): Promise;
getFrozenStakesQueueNFT(): Promise;
getFreezeTimeNFT(): Promise<{
Withdraw: any;
Transfer: any;
}>;
getSignPermitDRC721(address: string, spender: string, tokenId: string | number | bigint): Promise;
getSignPermitDRC1155(address: string, spender: string): Promise;
getValidatorStatus(validator: string): Promise;
validatorIsActive(validator: string): Promise;
validatorIsMember(validator: string): Promise;
getBridgeServiceFees(toChainId: number): Promise;
parseEther(amount: string | number | bigint | BigNumberish): string;
formatEther(amount: string | number | bigint | BigNumberish): string;
getAddress(address: string): string;
getRandomPassword(count: number, length: number): string[];
private getNFTContract;
getDecimalContractAddress(contract: string): Promise;
getDecimalContract(contract: string): Promise;
getLatestBlock(): Promise;
getTokenTypes(): typeof TokenType;
connectToContract(address: string, abi?: ethers.ContractInterface): Promise;
verifyСontract(address: string, contract_code: string, compiler: string, optimizer: string, runs: string, evm_version: string): Promise;
private validationValidatorMeta;
getFeeData(): Promise;
uploadNFTBase64ToIPFS(base64: string, fileName: string, name: string, description: string): Promise;
uploadNFTBufferToIPFS(buffer: Buffer, fileName: string, name: string, description: string): Promise;
uploadTokenBufferToIPFS(buffer: Buffer, fileName: string): Promise<{
image: string;
}>;
getBlobMetadata(name: string, description: string): Promise;
uploadNFTFormToIPFS(form: any): Promise;
uploadTokenFormToIPFS(form: any): Promise;
getUrlFromCid(cid: string): string;
}