1
0
mirror of https://github.com/oceanprotocol/ocean.js.git synced 2024-11-26 20:39:05 +01:00

Merge pull request #1430 from oceanprotocol/issue-1425-use-proper-config-in-constructors

Issue-#1425: Use proper config in constructors
This commit is contained in:
Miquel A. Cabot 2022-05-03 16:08:04 +02:00 committed by GitHub
commit 9cb1ea51a8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 58 additions and 30 deletions

View File

@ -10,9 +10,9 @@ import {
getFreCreationParams, getFreCreationParams,
getErcCreationParams, getErcCreationParams,
getPoolCreationParams, getPoolCreationParams,
configHelperNetworks,
setContractDefaults, setContractDefaults,
ZERO_ADDRESS ZERO_ADDRESS,
ConfigHelper
} from '../utils' } from '../utils'
import { Config } from '../models/index.js' import { Config } from '../models/index.js'
import { import {
@ -66,13 +66,14 @@ export class NftFactory {
constructor( constructor(
factory721Address: string, factory721Address: string,
web3: Web3, web3: Web3,
network?: string | number,
factory721Abi?: AbiItem | AbiItem[], factory721Abi?: AbiItem | AbiItem[],
config?: Config config?: Config
) { ) {
this.factory721Address = factory721Address this.factory721Address = factory721Address
this.factory721Abi = factory721Abi || (defaultFactory721Abi.abi as AbiItem[]) this.factory721Abi = factory721Abi || (defaultFactory721Abi.abi as AbiItem[])
this.web3 = web3 this.web3 = web3
this.config = config || configHelperNetworks[0] this.config = config || new ConfigHelper().getConfig(network || 'unknown')
this.factory721 = setContractDefaults( this.factory721 = setContractDefaults(
new this.web3.eth.Contract(this.factory721Abi, this.factory721Address), new this.web3.eth.Contract(this.factory721Abi, this.factory721Address),
this.config this.config

View File

@ -3,7 +3,7 @@ import Web3 from 'web3'
import { TransactionReceipt } from 'web3-core' import { TransactionReceipt } from 'web3-core'
import { AbiItem } from 'web3-utils' import { AbiItem } from 'web3-utils'
import defaultRouter from '@oceanprotocol/contracts/artifacts/contracts/pools/FactoryRouter.sol/FactoryRouter.json' import defaultRouter from '@oceanprotocol/contracts/artifacts/contracts/pools/FactoryRouter.sol/FactoryRouter.json'
import { getFairGasPrice, setContractDefaults, configHelperNetworks } from '../utils' import { getFairGasPrice, setContractDefaults, ConfigHelper } from '../utils'
import { Operation } from '../@types/Router' import { Operation } from '../@types/Router'
import { Config } from '../models/index.js' import { Config } from '../models/index.js'
@ -27,13 +27,14 @@ export class Router {
constructor( constructor(
routerAddress: string, routerAddress: string,
web3: Web3, web3: Web3,
network?: string | number,
RouterAbi?: AbiItem | AbiItem[], RouterAbi?: AbiItem | AbiItem[],
config?: Config config?: Config
) { ) {
this.routerAddress = routerAddress this.routerAddress = routerAddress
this.RouterAbi = RouterAbi || (defaultRouter.abi as AbiItem[]) this.RouterAbi = RouterAbi || (defaultRouter.abi as AbiItem[])
this.web3 = web3 this.web3 = web3
this.config = config || configHelperNetworks[0] this.config = config || new ConfigHelper().getConfig(network || 'unknown')
this.router = setContractDefaults( this.router = setContractDefaults(
new this.web3.eth.Contract(this.RouterAbi, this.routerAddress), new this.web3.eth.Contract(this.RouterAbi, this.routerAddress),
this.config this.config

View File

@ -4,11 +4,11 @@ import { TransactionReceipt } from 'web3-core'
import { Contract } from 'web3-eth-contract' import { Contract } from 'web3-eth-contract'
import { import {
getFairGasPrice, getFairGasPrice,
configHelperNetworks,
setContractDefaults, setContractDefaults,
unitsToAmount, unitsToAmount,
amountToUnits, amountToUnits,
LoggerInstance LoggerInstance,
ConfigHelper
} from '../../utils' } from '../../utils'
import BigNumber from 'bignumber.js' import BigNumber from 'bignumber.js'
import PoolTemplate from '@oceanprotocol/contracts/artifacts/contracts/pools/balancer/BPool.sol/BPool.json' import PoolTemplate from '@oceanprotocol/contracts/artifacts/contracts/pools/balancer/BPool.sol/BPool.json'
@ -40,11 +40,16 @@ export class Pool {
public GASLIMIT_DEFAULT = 1000000 public GASLIMIT_DEFAULT = 1000000
private config: Config private config: Config
constructor(web3: Web3, poolAbi: AbiItem | AbiItem[] = null, config?: Config) { constructor(
web3: Web3,
network?: string | number,
poolAbi: AbiItem | AbiItem[] = null,
config?: Config
) {
if (poolAbi) this.poolAbi = poolAbi if (poolAbi) this.poolAbi = poolAbi
else this.poolAbi = PoolTemplate.abi as AbiItem[] else this.poolAbi = PoolTemplate.abi as AbiItem[]
this.web3 = web3 this.web3 = web3
this.config = config || configHelperNetworks[0] this.config = config || new ConfigHelper().getConfig(network || 'unknown')
} }
/** /**

View File

@ -7,8 +7,8 @@ import defaultDispenserAbi from '@oceanprotocol/contracts/artifacts/contracts/po
import { import {
LoggerInstance as logger, LoggerInstance as logger,
getFairGasPrice, getFairGasPrice,
configHelperNetworks, setContractDefaults,
setContractDefaults ConfigHelper
} from '../../utils/' } from '../../utils/'
import { Datatoken } from '../../tokens' import { Datatoken } from '../../tokens'
import { Config } from '../../models/index.js' import { Config } from '../../models/index.js'
@ -39,6 +39,7 @@ export class Dispenser {
*/ */
constructor( constructor(
web3: Web3, web3: Web3,
network?: string | number,
dispenserAddress: string = null, dispenserAddress: string = null,
dispenserAbi: AbiItem | AbiItem[] = null, dispenserAbi: AbiItem | AbiItem[] = null,
config?: Config config?: Config
@ -46,7 +47,7 @@ export class Dispenser {
this.web3 = web3 this.web3 = web3
this.dispenserAddress = dispenserAddress this.dispenserAddress = dispenserAddress
this.dispenserAbi = dispenserAbi || (defaultDispenserAbi.abi as AbiItem[]) this.dispenserAbi = dispenserAbi || (defaultDispenserAbi.abi as AbiItem[])
this.config = config || configHelperNetworks[0] this.config = config || new ConfigHelper().getConfig(network || 'unknown')
if (web3) if (web3)
this.dispenserContract = setContractDefaults( this.dispenserContract = setContractDefaults(
new this.web3.eth.Contract(this.dispenserAbi, this.dispenserAddress), new this.web3.eth.Contract(this.dispenserAbi, this.dispenserAddress),

View File

@ -6,11 +6,11 @@ import Web3 from 'web3'
import { import {
LoggerInstance, LoggerInstance,
getFairGasPrice, getFairGasPrice,
configHelperNetworks,
setContractDefaults, setContractDefaults,
amountToUnits, amountToUnits,
unitsToAmount, unitsToAmount,
ZERO_ADDRESS ZERO_ADDRESS,
ConfigHelper
} from '../../utils' } from '../../utils'
import { Config } from '../../models/index.js' import { Config } from '../../models/index.js'
import { PriceAndFees } from '../..' import { PriceAndFees } from '../..'
@ -75,12 +75,13 @@ export class FixedRateExchange {
constructor( constructor(
web3: Web3, web3: Web3,
fixedRateAddress: string, fixedRateAddress: string,
network?: string | number,
fixedRateExchangeAbi: AbiItem | AbiItem[] = null, fixedRateExchangeAbi: AbiItem | AbiItem[] = null,
oceanAddress: string = null, oceanAddress: string = null,
config?: Config config?: Config
) { ) {
this.web3 = web3 this.web3 = web3
this.config = config || configHelperNetworks[0] this.config = config || new ConfigHelper().getConfig(network || 'unknown')
this.fixedRateExchangeAbi = this.fixedRateExchangeAbi =
fixedRateExchangeAbi || (defaultFixedRateExchangeAbi.abi as AbiItem[]) fixedRateExchangeAbi || (defaultFixedRateExchangeAbi.abi as AbiItem[])
this.oceanAddress = oceanAddress this.oceanAddress = oceanAddress

View File

@ -2,7 +2,7 @@ import Web3 from 'web3'
import { AbiItem } from 'web3-utils/types' import { AbiItem } from 'web3-utils/types'
import { TransactionReceipt } from 'web3-core' import { TransactionReceipt } from 'web3-core'
import { Contract } from 'web3-eth-contract' import { Contract } from 'web3-eth-contract'
import { LoggerInstance, getFairGasPrice, configHelperNetworks } from '../../utils' import { LoggerInstance, getFairGasPrice, ConfigHelper } from '../../utils'
import BigNumber from 'bignumber.js' import BigNumber from 'bignumber.js'
import SideStakingTemplate from '@oceanprotocol/contracts/artifacts/contracts/pools/ssContracts/SideStaking.sol/SideStaking.json' import SideStakingTemplate from '@oceanprotocol/contracts/artifacts/contracts/pools/ssContracts/SideStaking.sol/SideStaking.json'
import defaultErc20Abi from '@oceanprotocol/contracts/artifacts/contracts/templates/ERC20Template.sol/ERC20Template.json' import defaultErc20Abi from '@oceanprotocol/contracts/artifacts/contracts/templates/ERC20Template.sol/ERC20Template.json'
@ -14,11 +14,16 @@ export class SideStaking {
public GASLIMIT_DEFAULT = 1000000 public GASLIMIT_DEFAULT = 1000000
public config: Config public config: Config
constructor(web3: Web3, ssAbi: AbiItem | AbiItem[] = null, config?: Config) { constructor(
web3: Web3,
network?: string | number,
ssAbi: AbiItem | AbiItem[] = null,
config?: Config
) {
if (ssAbi) this.ssAbi = ssAbi if (ssAbi) this.ssAbi = ssAbi
else this.ssAbi = SideStakingTemplate.abi as AbiItem[] else this.ssAbi = SideStakingTemplate.abi as AbiItem[]
this.web3 = web3 this.web3 = web3
this.config = config || configHelperNetworks[0] this.config = config || new ConfigHelper().getConfig(network || 'unknown')
} }
async amountToUnits(token: string, amount: string): Promise<string> { async amountToUnits(token: string, amount: string): Promise<string> {

View File

@ -9,9 +9,9 @@ import {
LoggerInstance, LoggerInstance,
getFairGasPrice, getFairGasPrice,
setContractDefaults, setContractDefaults,
configHelperNetworks,
getFreOrderParams, getFreOrderParams,
ZERO_ADDRESS ZERO_ADDRESS,
ConfigHelper
} from '../utils' } from '../utils'
import { import {
ConsumeMarketFee, ConsumeMarketFee,
@ -61,6 +61,7 @@ export class Datatoken {
*/ */
constructor( constructor(
web3: Web3, web3: Web3,
network?: string | number,
datatokensAbi?: AbiItem | AbiItem[], datatokensAbi?: AbiItem | AbiItem[],
datatokensEnterpriseAbi?: AbiItem | AbiItem[], datatokensEnterpriseAbi?: AbiItem | AbiItem[],
config?: Config config?: Config
@ -69,7 +70,7 @@ export class Datatoken {
this.datatokensAbi = datatokensAbi || (defaultDatatokensAbi.abi as AbiItem[]) this.datatokensAbi = datatokensAbi || (defaultDatatokensAbi.abi as AbiItem[])
this.datatokensEnterpriseAbi = this.datatokensEnterpriseAbi =
datatokensEnterpriseAbi || (defaultDatatokensEnterpriseAbi.abi as AbiItem[]) datatokensEnterpriseAbi || (defaultDatatokensEnterpriseAbi.abi as AbiItem[])
this.config = config || configHelperNetworks[0] this.config = config || new ConfigHelper().getConfig(network || 'unknown')
this.nft = new Nft(this.web3) this.nft = new Nft(this.web3)
} }

View File

@ -7,7 +7,7 @@ import {
getFairGasPrice, getFairGasPrice,
generateDtName, generateDtName,
setContractDefaults, setContractDefaults,
configHelperNetworks ConfigHelper
} from '../utils' } from '../utils'
import { Contract } from 'web3-eth-contract' import { Contract } from 'web3-eth-contract'
import { MetadataProof } from '../../src/@types' import { MetadataProof } from '../../src/@types'
@ -33,10 +33,15 @@ export class Nft {
public startBlock: number public startBlock: number
public config: Config public config: Config
constructor(web3: Web3, nftAbi?: AbiItem | AbiItem[], config?: Config) { constructor(
web3: Web3,
network?: string | number,
nftAbi?: AbiItem | AbiItem[],
config?: Config
) {
this.nftAbi = nftAbi || (defaultNftAbi.abi as AbiItem[]) this.nftAbi = nftAbi || (defaultNftAbi.abi as AbiItem[])
this.web3 = web3 this.web3 = web3
this.config = config || configHelperNetworks[0] this.config = config || new ConfigHelper().getConfig(network || 'unknown')
} }
/** /**

View File

@ -54,7 +54,7 @@ describe('Pool unit test', () => {
contracts = await deployContracts(web3, factoryOwner) contracts = await deployContracts(web3, factoryOwner)
// initialize Pool instance // initialize Pool instance
pool = new Pool(web3, PoolTemplate.abi as AbiItem[]) pool = new Pool(web3, 8996, PoolTemplate.abi as AbiItem[])
assert(pool != null) assert(pool != null)
daiContract = new web3.eth.Contract(MockERC20.abi as AbiItem[], contracts.daiAddress) daiContract = new web3.eth.Contract(MockERC20.abi as AbiItem[], contracts.daiAddress)
@ -143,6 +143,7 @@ describe('Pool unit test', () => {
const nftFactory = new NftFactory( const nftFactory = new NftFactory(
contracts.erc721FactoryAddress, contracts.erc721FactoryAddress,
web3, web3,
8996,
ERC721Factory.abi as AbiItem[] ERC721Factory.abi as AbiItem[]
) )
@ -572,6 +573,7 @@ describe('Pool unit test', () => {
const nftFactory = new NftFactory( const nftFactory = new NftFactory(
contracts.erc721FactoryAddress, contracts.erc721FactoryAddress,
web3, web3,
8996,
ERC721Factory.abi as AbiItem[] ERC721Factory.abi as AbiItem[]
) )

View File

@ -43,6 +43,7 @@ describe('Dispenser flow', () => {
it('should initialize Dispenser class', async () => { it('should initialize Dispenser class', async () => {
DispenserClass = new Dispenser( DispenserClass = new Dispenser(
web3, web3,
8996,
contracts.dispenserAddress, contracts.dispenserAddress,
DispenserTemplate.abi as AbiItem[] DispenserTemplate.abi as AbiItem[]
) )
@ -87,7 +88,7 @@ describe('Dispenser flow', () => {
}) })
it('Make user2 minter', async () => { it('Make user2 minter', async () => {
datatoken = new Datatoken(web3, ERC20Template.abi as AbiItem[]) datatoken = new Datatoken(web3, 8996, ERC20Template.abi as AbiItem[])
await datatoken.addMinter(dtAddress, factoryOwner, user2) await datatoken.addMinter(dtAddress, factoryOwner, user2)
assert((await datatoken.getDTPermissions(dtAddress, user2)).minter === true) assert((await datatoken.getDTPermissions(dtAddress, user2)).minter === true)
}) })

View File

@ -118,6 +118,7 @@ describe('Fixed Rate unit test', () => {
fixedRate = new FixedRateExchange( fixedRate = new FixedRateExchange(
web3, web3,
fixedRateAddress, fixedRateAddress,
8996,
FixedRate.abi as AbiItem[], FixedRate.abi as AbiItem[],
contracts.oceanAddress contracts.oceanAddress
) )
@ -438,6 +439,7 @@ describe('Fixed Rate unit test', () => {
fixedRate = new FixedRateExchange( fixedRate = new FixedRateExchange(
web3, web3,
fixedRateAddress, fixedRateAddress,
8996,
FixedRate.abi as AbiItem[], FixedRate.abi as AbiItem[],
contracts.oceanAddress contracts.oceanAddress
) )

View File

@ -59,10 +59,10 @@ describe('SideStaking unit test', () => {
sideStakingAddress = contracts.sideStakingAddress sideStakingAddress = contracts.sideStakingAddress
// initialize Pool instance // initialize Pool instance
pool = new Pool(web3, PoolTemplate.abi as AbiItem[]) pool = new Pool(web3, 8996, PoolTemplate.abi as AbiItem[])
assert(pool != null) assert(pool != null)
// //
sideStaking = new SideStaking(web3, SSContract.abi as AbiItem[]) sideStaking = new SideStaking(web3, 8996, SSContract.abi as AbiItem[])
assert(sideStaking != null) assert(sideStaking != null)
daiContract = new web3.eth.Contract(MockERC20.abi as AbiItem[], contracts.daiAddress) daiContract = new web3.eth.Contract(MockERC20.abi as AbiItem[], contracts.daiAddress)

View File

@ -62,6 +62,7 @@ describe('Datatoken', () => {
nftFactory = new NftFactory( nftFactory = new NftFactory(
contracts.erc721FactoryAddress, contracts.erc721FactoryAddress,
web3, web3,
8996,
ERC721Factory.abi as AbiItem[] ERC721Factory.abi as AbiItem[]
) )
const nftData: NftCreateData = { const nftData: NftCreateData = {
@ -74,7 +75,7 @@ describe('Datatoken', () => {
} }
nftAddress = await nftFactory.createNFT(nftOwner, nftData) nftAddress = await nftFactory.createNFT(nftOwner, nftData)
nftDatatoken = new Nft(web3, ERC721Template.abi as AbiItem[]) nftDatatoken = new Nft(web3, 8996, ERC721Template.abi as AbiItem[])
}) })
it('#createERC20 - should create a new ERC20 DT from NFT contract', async () => { it('#createERC20 - should create a new ERC20 DT from NFT contract', async () => {
@ -98,6 +99,7 @@ describe('Datatoken', () => {
it('should initialize DT20 Instance', async () => { it('should initialize DT20 Instance', async () => {
datatoken = new Datatoken( datatoken = new Datatoken(
web3, web3,
8996,
ERC20Template.abi as AbiItem[], ERC20Template.abi as AbiItem[],
ERC20TemplateEnterprise.abi as AbiItem[] ERC20TemplateEnterprise.abi as AbiItem[]
) )

View File

@ -39,6 +39,7 @@ describe('NFT', () => {
nftFactory = new NftFactory( nftFactory = new NftFactory(
contracts.erc721FactoryAddress, contracts.erc721FactoryAddress,
web3, web3,
8996,
ERC721Factory.abi as AbiItem[] ERC721Factory.abi as AbiItem[]
) )
const nftData: NftCreateData = { const nftData: NftCreateData = {
@ -51,7 +52,7 @@ describe('NFT', () => {
} }
nftAddress = await nftFactory.createNFT(nftOwner, nftData) nftAddress = await nftFactory.createNFT(nftOwner, nftData)
nftDatatoken = new Nft(web3, ERC721Template.abi as AbiItem[]) nftDatatoken = new Nft(web3, 8996, ERC721Template.abi as AbiItem[])
}) })
it('#getTokenURI', async () => { it('#getTokenURI', async () => {
const tokenURI = await nftDatatoken.getTokenURI(nftAddress, 1) const tokenURI = await nftDatatoken.getTokenURI(nftAddress, 1)