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