diff --git a/src/_docs.ts b/src/_docs.ts index 539c1c27..ecffb542 100644 --- a/src/_docs.ts +++ b/src/_docs.ts @@ -7,7 +7,5 @@ export * from "./account"; export * from "./address"; export * from "./nonce"; export * from "./balance"; -export * from "./networkConfig"; -export * from "./networkStake"; export * from "./networkParams"; export * from "./utils"; diff --git a/src/apiProvider.ts b/src/apiProvider.ts index e52d1986..ed5fd849 100644 --- a/src/apiProvider.ts +++ b/src/apiProvider.ts @@ -2,13 +2,11 @@ import axios, { AxiosRequestConfig } from "axios"; import { IApiProvider, IHash } from "./interface"; import * as errors from "./errors"; import { Logger } from "./logger"; -import { NetworkStake } from "./networkStake"; -import { Stats } from "./stats"; import { Token } from "./token"; import { NFTToken } from "./nftToken"; import { defaultConfig } from "./constants"; import { ApiNetworkProvider } from "./networkProvider/apiNetworkProvider"; -import { ITransactionOnNetwork, ITransactionStatus } from "./interfaceOfNetwork"; +import { INetworkStake, INetworkStats, ITransactionOnNetwork, ITransactionStatus } from "./interfaceOfNetwork"; /** * This is a temporary change, this will be the only provider used, ProxyProvider will be deprecated @@ -35,15 +33,15 @@ export class ApiProvider implements IApiProvider { /** * Fetches the Network Stake. */ - async getNetworkStake(): Promise { - return this.doGetGeneric("stake", (response) => NetworkStake.fromHttpResponse(response)); + async getNetworkStake(): Promise { + return await this.backingProvider.getNetworkStakeStatistics(); } /** * Fetches the Network Stats. */ - async getNetworkStats(): Promise { - return this.doGetGeneric("stats", (response) => Stats.fromHttpResponse(response)); + async getNetworkStats(): Promise { + return await this.backingProvider.getNetworkGeneralStatistics(); } /** diff --git a/src/index.ts b/src/index.ts index dca656e9..e935f85e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -14,8 +14,6 @@ export * from "./balanceBuilder"; export * from "./boundaryAdapters"; export * from "./interactive"; export * from "./logger"; -export * from "./networkConfig"; -export * from "./networkStake"; export * from "./networkParams"; export * from "./signableMessage"; export * from "./utils"; diff --git a/src/interface.ts b/src/interface.ts index 5fa6fcfb..42520e4e 100644 --- a/src/interface.ts +++ b/src/interface.ts @@ -1,14 +1,10 @@ import { Transaction } from "./transaction"; -import { NetworkConfig } from "./networkConfig"; import { Signature } from "./signature"; import { Query } from "./smartcontracts"; import { QueryResponse } from "./smartcontracts"; -import { NetworkStake } from "./networkStake"; -import { Stats } from "./stats"; -import { NetworkStatus } from "./networkStatus"; import { Token } from "./token"; import BigNumber from "bignumber.js"; -import { IAccountOnNetwork, IFungibleTokenOfAccountOnNetwork, ITransactionOnNetwork, ITransactionStatus } from "./interfaceOfNetwork"; +import { IAccountOnNetwork, IFungibleTokenOfAccountOnNetwork, INetworkConfig, INetworkStake, INetworkStats, INetworkStatus, ITransactionOnNetwork, ITransactionStatus } from "./interfaceOfNetwork"; export interface ITransactionFetcher { /** @@ -29,12 +25,12 @@ export interface IProvider extends ITransactionFetcher { /** * Fetches the Network configuration. */ - getNetworkConfig(): Promise; + getNetworkConfig(): Promise; /** * Fetches the Network status. */ - getNetworkStatus(): Promise; + getNetworkStatus(): Promise; /** * Fetches the state of an {@link Account}. @@ -89,11 +85,11 @@ export interface IApiProvider extends ITransactionFetcher { /** * Fetches the Network Stake. */ - getNetworkStake(): Promise; + getNetworkStake(): Promise; /** * Fetches the Network Stats. */ - getNetworkStats(): Promise; + getNetworkStats(): Promise; getToken(tokenIdentifier: string): Promise; @@ -149,3 +145,6 @@ export interface ITransactionValue { toString(): string; } export interface IAccountBalance { toString(): string; } export interface ITransactionPayload { encoded(): string; } export interface INonce { valueOf(): number; } +export interface IChainID { valueOf(): string; } +export interface IGasLimit { valueOf(): number; } +export interface IGasPrice { valueOf(): number; } diff --git a/src/interfaceOfNetwork.ts b/src/interfaceOfNetwork.ts index 1fab8282..c237ff7c 100644 --- a/src/interfaceOfNetwork.ts +++ b/src/interfaceOfNetwork.ts @@ -1,4 +1,4 @@ -import { IAccountBalance, IBech32Address, IHash, INonce, ITransactionPayload, ITransactionValue } from "./interface"; +import { IAccountBalance, IBech32Address, IChainID, IGasLimit, IHash, INonce, ITransactionPayload, ITransactionValue } from "./interface"; /** * @deprecated This interface will be removed upon the extraction of networkProvider package. @@ -14,6 +14,30 @@ export interface IAccountOnNetwork { export interface IFungibleTokenOfAccountOnNetwork { } +/** + * @deprecated This interface will be removed upon the extraction of networkProvider package. + */ +export interface INetworkStatus { + Nonce: number; +} + +/** + * @deprecated This interface will be removed upon the extraction of networkProvider package. + */ +export interface INetworkStake { +} + +/** + * @deprecated This interface will be removed upon the extraction of networkProvider package. + */ +export interface INetworkStats { +} + +export interface INetworkConfig { + MinGasLimit: IGasLimit; + ChainID: IChainID; +} + export interface ITransactionOnNetwork { hash: IHash; type: string; diff --git a/src/networkProvider/apiNetworkProvider.ts b/src/networkProvider/apiNetworkProvider.ts index 4be146c4..e25a2679 100644 --- a/src/networkProvider/apiNetworkProvider.ts +++ b/src/networkProvider/apiNetworkProvider.ts @@ -1,11 +1,10 @@ import axios, { AxiosRequestConfig } from "axios"; import { AccountOnNetwork } from "./accounts"; import { IAddress, IContractQueryResponse, IDefinitionOfFungibleTokenOnNetwork, IDefinitionOfTokenCollectionOnNetwork, IFungibleTokenOfAccountOnNetwork, IHash, INetworkProvider, INonce, INonFungibleTokenOfAccountOnNetwork, ITransaction, Pagination } from "./interface"; -import { NetworkConfig } from "../networkConfig"; -import { NetworkStake } from "../networkStake"; -import { NetworkStatus } from "../networkStatus"; +import { NetworkConfig } from "./networkConfig"; +import { NetworkStake } from "./networkStake"; import { Query } from "../smartcontracts"; -import { Stats } from "../stats"; +import { Stats } from "./stats"; import { ContractQueryResponse } from "./contractResults"; import { ProxyNetworkProvider } from "./proxyNetworkProvider"; import { DefinitionOfFungibleTokenOnNetwork, DefinitionOfTokenCollectionOnNetwork } from "./tokenDefinitions"; @@ -15,6 +14,7 @@ import { TransactionStatus } from "./transactionStatus"; import { Hash } from "./primitives"; import { ErrNetworkProvider } from "./errors"; import { defaultAxiosConfig } from "./config"; +import { NetworkStatus } from "./networkStatus"; // TODO: Find & remove duplicate code between "ProxyNetworkProvider" and "ApiNetworkProvider". export class ApiNetworkProvider implements INetworkProvider { diff --git a/src/networkProvider/interface.ts b/src/networkProvider/interface.ts index 6bd5232e..bfbc8a26 100644 --- a/src/networkProvider/interface.ts +++ b/src/networkProvider/interface.ts @@ -1,12 +1,12 @@ import { BigNumber } from "bignumber.js"; import { AccountOnNetwork } from "./accounts"; -import { NetworkConfig } from "../networkConfig"; -import { NetworkStake } from "../networkStake"; -import { NetworkStatus } from "../networkStatus"; +import { NetworkConfig } from "./networkConfig"; +import { NetworkStake } from "./networkStake"; import { Query } from "../smartcontracts"; -import { Stats } from "../stats"; +import { Stats } from "./stats"; import { TransactionOnNetwork } from "./transactions"; import { TransactionStatus } from "./transactionStatus"; +import { NetworkStatus } from "./networkStatus"; /** * An interface that defines the endpoints of an HTTP API Provider. @@ -195,4 +195,7 @@ export interface INonce extends IHexable { valueOf(): number; } export interface ITransactionPayload { encoded(): string; } export interface IGasLimit { valueOf(): number; } export interface IGasPrice { valueOf(): number; } +export interface IChainID { valueOf(): string; } +export interface IGasPriceModifier { valueOf(): number; } +export interface ITransactionVersion { valueOf(): number; } export interface IAccountBalance { toString(): string; } diff --git a/src/networkConfig.ts b/src/networkProvider/networkConfig.ts similarity index 63% rename from src/networkConfig.ts rename to src/networkProvider/networkConfig.ts index 96daf9c5..690609c4 100644 --- a/src/networkConfig.ts +++ b/src/networkProvider/networkConfig.ts @@ -1,5 +1,5 @@ import BigNumber from "bignumber.js"; -import { GasPrice, GasLimit, TransactionVersion, ChainID, GasPriceModifier } from "./networkParams"; +import { IChainID, IGasLimit, IGasPrice, IGasPriceModifier, ITransactionVersion } from "./interface"; /** * An object holding Network configuration parameters. @@ -8,7 +8,7 @@ export class NetworkConfig { /** * The chain ID. E.g. "1" for the Mainnet. */ - public ChainID: ChainID; + public ChainID: IChainID; /** * The gas required by the Network to process a byte of the {@link TransactionPayload}. @@ -36,34 +36,34 @@ export class NetworkConfig { /** * */ - public GasPriceModifier: GasPriceModifier; + public GasPriceModifier: IGasPriceModifier; /** * The minimum gas limit required to be set when broadcasting a {@link Transaction}. */ - public MinGasLimit: GasLimit; + public MinGasLimit: IGasLimit; /** * The minimum gas price required to be set when broadcasting a {@link Transaction}. */ - public MinGasPrice: GasPrice; + public MinGasPrice: IGasPrice; /** - * The oldest {@link TransactionVersion} accepted by the Network. + * The oldest transaction version accepted by the Network. */ - public MinTransactionVersion: TransactionVersion; + public MinTransactionVersion: ITransactionVersion; constructor() { - this.ChainID = new ChainID("T"); + this.ChainID = "T"; this.GasPerDataByte = 1500; this.TopUpFactor = 0; this.RoundDuration = 0; this.RoundsPerEpoch = 0; this.TopUpRewardsGradientPoint = new BigNumber(0); - this.MinGasLimit = new GasLimit(50000); - this.MinGasPrice = new GasPrice(1000000000); - this.GasPriceModifier = new GasPriceModifier(1); - this.MinTransactionVersion = new TransactionVersion(1); + this.MinGasLimit = 50000; + this.MinGasPrice = 1000000000; + this.GasPriceModifier = 1; + this.MinTransactionVersion = 1; } /** @@ -72,16 +72,16 @@ export class NetworkConfig { static fromHttpResponse(payload: any): NetworkConfig { let networkConfig = new NetworkConfig(); - networkConfig.ChainID = new ChainID(payload["erd_chain_id"]); + networkConfig.ChainID = String(payload["erd_chain_id"]); networkConfig.GasPerDataByte = Number(payload["erd_gas_per_data_byte"]); networkConfig.TopUpFactor = Number(payload["erd_top_up_factor"]); networkConfig.RoundDuration = Number(payload["erd_round_duration"]); networkConfig.RoundsPerEpoch = Number(payload["erd_rounds_per_epoch"]); networkConfig.TopUpRewardsGradientPoint = new BigNumber(payload["erd_rewards_top_up_gradient_point"]); - networkConfig.MinGasLimit = new GasLimit(payload["erd_min_gas_limit"]); - networkConfig.MinGasPrice = new GasPrice(payload["erd_min_gas_price"]); - networkConfig.MinTransactionVersion = new TransactionVersion(payload["erd_min_transaction_version"]); - networkConfig.GasPriceModifier = new GasPriceModifier(payload["erd_gas_price_modifier"]); + networkConfig.MinGasLimit = Number(payload["erd_min_gas_limit"]); + networkConfig.MinGasPrice = Number(payload["erd_min_gas_price"]); + networkConfig.MinTransactionVersion = Number(payload["erd_min_transaction_version"]); + networkConfig.GasPriceModifier = Number(payload["erd_gas_price_modifier"]); return networkConfig; } diff --git a/src/networkStake.ts b/src/networkProvider/networkStake.ts similarity index 100% rename from src/networkStake.ts rename to src/networkProvider/networkStake.ts diff --git a/src/networkStatus.ts b/src/networkProvider/networkStatus.ts similarity index 100% rename from src/networkStatus.ts rename to src/networkProvider/networkStatus.ts diff --git a/src/networkProvider/proxyNetworkProvider.ts b/src/networkProvider/proxyNetworkProvider.ts index 1d7ab16d..07318e17 100644 --- a/src/networkProvider/proxyNetworkProvider.ts +++ b/src/networkProvider/proxyNetworkProvider.ts @@ -1,11 +1,10 @@ import axios, { AxiosRequestConfig } from "axios"; import { AccountOnNetwork } from "./accounts"; import { IAddress, IContractQueryResponse, IDefinitionOfFungibleTokenOnNetwork, IDefinitionOfTokenCollectionOnNetwork, IFungibleTokenOfAccountOnNetwork, IHash, INetworkProvider, INonce, INonFungibleTokenOfAccountOnNetwork, ITransaction, Pagination } from "./interface"; -import { NetworkConfig } from "../networkConfig"; -import { NetworkStake } from "../networkStake"; -import { NetworkStatus } from "../networkStatus"; +import { NetworkConfig } from "./networkConfig"; +import { NetworkStake } from "./networkStake"; import { Query } from "../smartcontracts"; -import { Stats } from "../stats"; +import { Stats } from "./stats"; import { ContractQueryResponse } from "./contractResults"; import { FungibleTokenOfAccountOnNetwork, NonFungibleTokenOfAccountOnNetwork } from "./tokens"; import { TransactionOnNetwork } from "./transactions"; @@ -13,6 +12,7 @@ import { TransactionStatus } from "./transactionStatus"; import { Hash } from "./primitives"; import { ErrNetworkProvider } from "./errors"; import { defaultAxiosConfig } from "./config"; +import { NetworkStatus } from "./networkStatus"; // TODO: Find & remove duplicate code between "ProxyNetworkProvider" and "ApiNetworkProvider". export class ProxyNetworkProvider implements INetworkProvider { diff --git a/src/stats.ts b/src/networkProvider/stats.ts similarity index 100% rename from src/stats.ts rename to src/networkProvider/stats.ts diff --git a/src/proxyProvider.ts b/src/proxyProvider.ts index b15564b3..711185ef 100644 --- a/src/proxyProvider.ts +++ b/src/proxyProvider.ts @@ -3,21 +3,14 @@ import BigNumber from "bignumber.js"; import { IProvider } from "./interface"; import { Transaction, TransactionHash } from "./transaction"; -import { NetworkConfig } from "./networkConfig"; import { Address } from "./address"; import * as errors from "./errors"; import { Query } from "./smartcontracts/query"; import { QueryResponse } from "./smartcontracts/queryResponse"; import { Logger } from "./logger"; -import { NetworkStatus } from "./networkStatus"; import { defaultConfig } from "./constants"; import { ProxyNetworkProvider } from "./networkProvider/proxyNetworkProvider"; -import { IAccountOnNetwork, IFungibleTokenOfAccountOnNetwork, ITransactionOnNetwork, ITransactionStatus } from "./interfaceOfNetwork"; - -/** - * This will be deprecated once all the endpoints move to ApiProvider - */ - +import { IAccountOnNetwork, IFungibleTokenOfAccountOnNetwork, INetworkConfig, INetworkStatus, ITransactionOnNetwork, ITransactionStatus } from "./interfaceOfNetwork"; export class ProxyProvider implements IProvider { private url: string; @@ -112,17 +105,15 @@ export class ProxyProvider implements IProvider { /** * Fetches the Network configuration. */ - async getNetworkConfig(): Promise { - return this.doGetGeneric("network/config", (response) => NetworkConfig.fromHttpResponse(response.config)); + async getNetworkConfig(): Promise { + return await this.backingProvider.getNetworkConfig(); } /** * Fetches the network status configuration. */ - async getNetworkStatus(): Promise { - return this.doGetGeneric("network/status/4294967295", (response) => - NetworkStatus.fromHttpResponse(response.status) - ); + async getNetworkStatus(): Promise { + return await this.backingProvider.getNetworkStatus(); } /** diff --git a/src/smartcontracts/interaction.ts b/src/smartcontracts/interaction.ts index 9abf0bae..8001bafe 100644 --- a/src/smartcontracts/interaction.ts +++ b/src/smartcontracts/interaction.ts @@ -9,6 +9,7 @@ import { Nonce } from "../nonce"; import { ESDTNFT_TRANSFER_FUNCTION_NAME, ESDT_TRANSFER_FUNCTION_NAME, MULTI_ESDTNFT_TRANSFER_FUNCTION_NAME } from "../constants"; import { Account } from "../account"; import { CallArguments } from "./interface"; +import { IChainID, IGasLimit, IGasPrice } from "../interface"; /** * Internal interface: the smart contract, as seen from the perspective of an {@link Interaction}. @@ -32,9 +33,9 @@ export class Interaction { private nonce: Nonce = new Nonce(0); private value: Balance = Balance.Zero(); - private gasLimit: GasLimit = new GasLimit(0); - private gasPrice: GasPrice | undefined = undefined; - private chainID: ChainID = ChainID.unspecified(); + private gasLimit: IGasLimit = new GasLimit(0); + private gasPrice: IGasPrice | undefined = undefined; + private chainID: IChainID = ChainID.unspecified(); private querent: Address = new Address(); private isWithSingleESDTTransfer: boolean = false; @@ -76,7 +77,7 @@ export class Interaction { return this.tokenTransfers.getTransfers(); } - getGasLimit(): GasLimit { + getGasLimit(): IGasLimit { return this.gasLimit; } @@ -185,7 +186,7 @@ export class Interaction { return this.withNonce(account.getNonceThenIncrement()); } - withChainID(chainID: ChainID): Interaction { + withChainID(chainID: IChainID): Interaction { this.chainID = chainID; return this; } diff --git a/src/smartcontracts/interface.ts b/src/smartcontracts/interface.ts index c8fae891..5ebfb01c 100644 --- a/src/smartcontracts/interface.ts +++ b/src/smartcontracts/interface.ts @@ -1,7 +1,7 @@ import { Address } from "../address"; import { Balance } from "../balance"; +import { IChainID, IGasLimit, IGasPrice } from "../interface"; import { ITransactionOnNetwork } from "../interfaceOfNetwork"; -import { ChainID, GasLimit, GasPrice } from "../networkParams"; import { Transaction } from "../transaction"; import { Code } from "./code"; import { CodeMetadata } from "./codeMetadata"; @@ -41,9 +41,9 @@ export interface DeployArguments { codeMetadata?: CodeMetadata; initArguments?: TypedValue[]; value?: Balance; - gasLimit: GasLimit; - gasPrice?: GasPrice; - chainID: ChainID; + gasLimit: IGasLimit; + gasPrice?: IGasPrice; + chainID: IChainID; } export interface UpgradeArguments { @@ -51,19 +51,19 @@ export interface UpgradeArguments { codeMetadata?: CodeMetadata; initArguments?: TypedValue[]; value?: Balance; - gasLimit: GasLimit; - gasPrice?: GasPrice; - chainID: ChainID; + gasLimit: IGasLimit; + gasPrice?: IGasPrice; + chainID: IChainID; } export interface CallArguments { func: ContractFunction; args?: TypedValue[]; value?: Balance; - gasLimit: GasLimit; + gasLimit: IGasLimit; receiver?: Address; - gasPrice?: GasPrice; - chainID: ChainID; + gasPrice?: IGasPrice; + chainID: IChainID; } export interface QueryArguments { diff --git a/src/smartcontracts/wrapper/contractLogger.ts b/src/smartcontracts/wrapper/contractLogger.ts index be789374..066b9d73 100644 --- a/src/smartcontracts/wrapper/contractLogger.ts +++ b/src/smartcontracts/wrapper/contractLogger.ts @@ -1,6 +1,5 @@ import { Address } from "../../address"; -import { NetworkConfig } from "../../networkConfig"; -import { IContractResults } from "../../interfaceOfNetwork"; +import { IContractResults, INetworkConfig } from "../../interfaceOfNetwork"; import { Transaction } from "../../transaction"; import { Query } from "../query"; import { QueryResponse } from "../queryResponse"; @@ -11,7 +10,7 @@ import { findImmediateResult, findResultingCalls, TypedResult } from "./deprecat */ export class ContractLogger { - synchronizedNetworkConfig(networkConfig: NetworkConfig) { + synchronizedNetworkConfig(networkConfig: INetworkConfig) { console.log(`Synchronized network config - chainID: ${networkConfig.ChainID.valueOf()}`); } diff --git a/src/smartcontracts/wrapper/sendContext.ts b/src/smartcontracts/wrapper/sendContext.ts index 4a921686..18cead61 100644 --- a/src/smartcontracts/wrapper/sendContext.ts +++ b/src/smartcontracts/wrapper/sendContext.ts @@ -1,11 +1,11 @@ -import { ChainID, GasLimit } from "../../networkParams"; -import { IProvider } from "../../interface"; +import { GasLimit } from "../../networkParams"; +import { IChainID, IProvider } from "../../interface"; import { ContractLogger } from "./contractLogger"; import { TestWallet } from "../../testutils"; import { Balance } from "../../balance"; import { Err } from "../../errors"; import { getGasFromValue } from "./systemWrapper"; -import { NetworkConfig } from "../../networkConfig"; +import { INetworkConfig } from "../../interfaceOfNetwork"; /** * Stores contextual information which is needed when preparing a transaction. @@ -16,9 +16,9 @@ export class SendContext { private gas_: GasLimit | null; private logger_: ContractLogger | null; private value_: Balance | null; - private networkConfig: NetworkConfig; + private networkConfig: INetworkConfig; - constructor(provider: IProvider, networkConfig: NetworkConfig) { + constructor(provider: IProvider, networkConfig: INetworkConfig) { this.sender_ = null; this.provider_ = provider; this.gas_ = null; @@ -84,7 +84,7 @@ export class SendContext { throw new Err("gas limit not set"); } - getChainID(): ChainID { + getChainID(): IChainID { return this.networkConfig.ChainID; } diff --git a/src/testutils/mockProvider.ts b/src/testutils/mockProvider.ts index de3dc245..f9169dc4 100644 --- a/src/testutils/mockProvider.ts +++ b/src/testutils/mockProvider.ts @@ -1,6 +1,6 @@ import { IBech32Address, IHash, IProvider } from "../interface"; import { Transaction, TransactionHash } from "../transaction"; -import { NetworkConfig } from "../networkConfig"; +import { NetworkConfig } from "../networkProvider/networkConfig"; import { Address } from "../address"; import { Nonce } from "../nonce"; import { AsyncTimer } from "../asyncTimer"; @@ -8,15 +8,15 @@ import { Balance } from "../balance"; import * as errors from "../errors"; import { Query } from "../smartcontracts/query"; import { QueryResponse } from "../smartcontracts/queryResponse"; -import { NetworkStatus } from "../networkStatus"; import { TypedEvent } from "../events"; import { BalanceBuilder } from "../balanceBuilder"; import BigNumber from "bignumber.js"; import { ContractResultItem, ContractResults } from "../networkProvider/contractResults"; import { TransactionOnNetwork } from "../networkProvider/transactions"; -import { ITransactionOnNetwork, ITransactionStatus } from "../interfaceOfNetwork"; +import { INetworkConfig, ITransactionOnNetwork, ITransactionStatus } from "../interfaceOfNetwork"; import { TransactionStatus } from "../networkProvider/transactionStatus"; import { AccountOnNetwork } from "../networkProvider/accounts"; +import { NetworkStatus } from "../networkProvider/networkStatus"; const DummyHyperblockNonce = 42; const DummyHyperblockHash = "a".repeat(32); @@ -208,7 +208,7 @@ export class MockProvider implements IProvider { return transaction.status; } - async getNetworkConfig(): Promise { + async getNetworkConfig(): Promise { return new NetworkConfig(); } diff --git a/src/transaction.spec.ts b/src/transaction.spec.ts index 3c1e48ba..4ee143d3 100644 --- a/src/transaction.spec.ts +++ b/src/transaction.spec.ts @@ -5,7 +5,7 @@ import { ChainID, GasLimit, GasPrice, GasPriceModifier, TransactionOptions, Tran import { TransactionPayload } from "./transactionPayload"; import { Balance } from "./balance"; import { loadTestWallets, TestWallet } from "./testutils"; -import { NetworkConfig } from "./networkConfig"; +import { NetworkConfig } from "./networkProvider/networkConfig"; describe("test transaction construction", async () => { diff --git a/src/transaction.ts b/src/transaction.ts index 82bee8de..8b073ec2 100644 --- a/src/transaction.ts +++ b/src/transaction.ts @@ -1,5 +1,5 @@ import { BigNumber } from "bignumber.js"; -import { IBech32Address, ISignable, ISignature } from "./interface"; +import { IBech32Address, IChainID, IGasLimit, IGasPrice, ISignable, ISignature } from "./interface"; import { Address } from "./address"; import { Balance } from "./balance"; import { @@ -9,7 +9,7 @@ import { TransactionOptions, TransactionVersion, } from "./networkParams"; -import { NetworkConfig } from "./networkConfig"; +import { NetworkConfig } from "./networkProvider/networkConfig"; import { Nonce } from "./nonce"; import { Signature } from "./signature"; import { guardNotEmpty } from "./utils"; @@ -54,12 +54,12 @@ export class Transaction implements ISignable { /** * The gas price to be used. */ - private gasPrice: GasPrice; + private gasPrice: IGasPrice; /** * The maximum amount of gas to be consumed when processing the transaction. */ - private gasLimit: GasLimit; + private gasLimit: IGasLimit; /** * The payload of the transaction. @@ -69,7 +69,7 @@ export class Transaction implements ISignable { /** * The chain ID of the Network (e.g. "1" for Mainnet). */ - private chainID: ChainID; + private chainID: IChainID; /** * The version, required by the Network in order to correctly interpret the contents of the transaction. @@ -110,10 +110,10 @@ export class Transaction implements ISignable { value?: Balance; receiver: Address; sender?: Address; - gasPrice?: GasPrice; - gasLimit: GasLimit; + gasPrice?: IGasPrice; + gasLimit: IGasLimit; data?: TransactionPayload; - chainID: ChainID; + chainID: IChainID; version?: TransactionVersion; options?: TransactionOptions; }) { @@ -174,19 +174,19 @@ export class Transaction implements ISignable { return this.receiver; } - getGasPrice(): GasPrice { + getGasPrice(): IGasPrice { return this.gasPrice; } - setGasPrice(gasPrice: GasPrice) { + setGasPrice(gasPrice: IGasPrice) { this.gasPrice = gasPrice; } - getGasLimit(): GasLimit { + getGasLimit(): IGasLimit { return this.gasLimit; } - setGasLimit(gasLimit: GasLimit) { + setGasLimit(gasLimit: IGasLimit) { this.gasLimit = gasLimit; } @@ -194,11 +194,11 @@ export class Transaction implements ISignable { return this.data; } - getChainID(): ChainID { + getChainID(): IChainID { return this.chainID; } - setChainID(chainID: ChainID) { + setChainID(chainID: IChainID) { this.chainID = chainID; }