From e4b1942e701326ff2cb7d10e7ae27bdaa423846c Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Thu, 2 Jun 2022 19:07:52 +0200 Subject: [PATCH 01/44] change Config file to src/config --- src/{models => config}/Config.ts | 0 src/{models => config}/index.ts | 0 src/factories/NFTFactory.ts | 2 +- src/index.ts | 2 +- src/pools/Router.ts | 2 +- src/pools/balancer/Pool.ts | 2 +- src/pools/dispenser/Dispenser.ts | 2 +- src/pools/fixedRate/FixedRateExchange.ts | 2 +- src/pools/ssContracts/SideStaking.ts | 2 +- src/tokens/Datatoken.ts | 2 +- src/tokens/NFT.ts | 2 +- src/utils/ConfigHelper.ts | 2 +- src/utils/ContractUtils.ts | 2 +- 13 files changed, 11 insertions(+), 11 deletions(-) rename src/{models => config}/Config.ts (100%) rename src/{models => config}/index.ts (100%) diff --git a/src/models/Config.ts b/src/config/Config.ts similarity index 100% rename from src/models/Config.ts rename to src/config/Config.ts diff --git a/src/models/index.ts b/src/config/index.ts similarity index 100% rename from src/models/index.ts rename to src/config/index.ts diff --git a/src/factories/NFTFactory.ts b/src/factories/NFTFactory.ts index 9b697282..04715fd1 100644 --- a/src/factories/NFTFactory.ts +++ b/src/factories/NFTFactory.ts @@ -15,7 +15,7 @@ import { ZERO_ADDRESS, ConfigHelper } from '../utils' -import { Config } from '../models/index.js' +import { Config } from '../config/index.js' import { ProviderFees, FreCreationParams, diff --git a/src/index.ts b/src/index.ts index 5447a5f4..d8ec7b68 100644 --- a/src/index.ts +++ b/src/index.ts @@ -2,7 +2,7 @@ export * from './aquarius' export * from './pools' export * from './tokens' export * from './factories' -export * from './models' +export * from './config' export * from './utils' export * from './@types' export * from './provider' diff --git a/src/pools/Router.ts b/src/pools/Router.ts index 25567847..a206a2ae 100644 --- a/src/pools/Router.ts +++ b/src/pools/Router.ts @@ -5,7 +5,7 @@ import { AbiItem } from 'web3-utils' import defaultRouter from '@oceanprotocol/contracts/artifacts/contracts/pools/FactoryRouter.sol/FactoryRouter.json' import { getFairGasPrice, setContractDefaults, ConfigHelper, estimateGas } from '../utils' import { Operation } from '../@types/Router' -import { Config } from '../models/index.js' +import { Config } from '../config/index.js' /** * Provides an interface for FactoryRouter contract diff --git a/src/pools/balancer/Pool.ts b/src/pools/balancer/Pool.ts index 95096265..9fa7c989 100644 --- a/src/pools/balancer/Pool.ts +++ b/src/pools/balancer/Pool.ts @@ -21,7 +21,7 @@ import { AmountsOutMaxFee, PoolPriceAndFees } from '../../@types' -import { Config } from '../../models' +import { Config } from '../../config' import { getMaxAddLiquidity, getMaxRemoveLiquidity, diff --git a/src/pools/dispenser/Dispenser.ts b/src/pools/dispenser/Dispenser.ts index c26e0ea4..1ee21e6c 100644 --- a/src/pools/dispenser/Dispenser.ts +++ b/src/pools/dispenser/Dispenser.ts @@ -12,7 +12,7 @@ import { ConfigHelper } from '../../utils/' import { Datatoken } from '../../tokens' -import { Config } from '../../models/index.js' +import { Config } from '../../config/index.js' export interface DispenserToken { active: boolean diff --git a/src/pools/fixedRate/FixedRateExchange.ts b/src/pools/fixedRate/FixedRateExchange.ts index ca3e5bd9..07172833 100644 --- a/src/pools/fixedRate/FixedRateExchange.ts +++ b/src/pools/fixedRate/FixedRateExchange.ts @@ -13,7 +13,7 @@ import { ZERO_ADDRESS, ConfigHelper } from '../../utils' -import { Config } from '../../models/index.js' +import { Config } from '../../config/index.js' import { PriceAndFees } from '../..' export interface FixedPriceExchange { diff --git a/src/pools/ssContracts/SideStaking.ts b/src/pools/ssContracts/SideStaking.ts index 154ea1a5..f38e803c 100644 --- a/src/pools/ssContracts/SideStaking.ts +++ b/src/pools/ssContracts/SideStaking.ts @@ -10,7 +10,7 @@ import { unitsToAmount } from '../../utils' import SideStakingTemplate from '@oceanprotocol/contracts/artifacts/contracts/pools/ssContracts/SideStaking.sol/SideStaking.json' -import { Config } from '../../models' +import { Config } from '../../config' export class SideStaking { public ssAbi: AbiItem | AbiItem[] diff --git a/src/tokens/Datatoken.ts b/src/tokens/Datatoken.ts index 5c155d5d..cfc3de33 100644 --- a/src/tokens/Datatoken.ts +++ b/src/tokens/Datatoken.ts @@ -22,7 +22,7 @@ import { PublishingMarketFee } from '../@types' import { Nft } from './NFT' -import { Config } from '../models/index.js' +import { Config } from '../config/index.js' /** * ERC20 ROLES diff --git a/src/tokens/NFT.ts b/src/tokens/NFT.ts index 7fd2b4b1..7bad7ac4 100644 --- a/src/tokens/NFT.ts +++ b/src/tokens/NFT.ts @@ -12,7 +12,7 @@ import { } from '../utils' import { Contract } from 'web3-eth-contract' import { MetadataProof } from '../../src/@types' -import { Config } from '../models/index.js' +import { Config } from '../config/index.js' import { MetadataAndTokenURI } from '../@types' /** diff --git a/src/utils/ConfigHelper.ts b/src/utils/ConfigHelper.ts index cc01d00c..b464f8d9 100644 --- a/src/utils/ConfigHelper.ts +++ b/src/utils/ConfigHelper.ts @@ -1,4 +1,4 @@ -import Config from '../models/Config' +import Config from '../config/Config' // eslint-disable-next-line import/no-named-default import { default as DefaultContractsAddresses } from '@oceanprotocol/contracts/addresses/address.json' import LoggerInstance from './Logger' diff --git a/src/utils/ContractUtils.ts b/src/utils/ContractUtils.ts index 94012c76..475c1c14 100644 --- a/src/utils/ContractUtils.ts +++ b/src/utils/ContractUtils.ts @@ -8,7 +8,7 @@ import { FreOrderParams, PoolCreationParams } from '../@types' -import { Config } from '../models' +import { Config } from '../config' import { minAbi } from './minAbi' import LoggerInstance from './Logger' import { GASLIMIT_DEFAULT, ZERO_ADDRESS } from './Constants' From aab53636b6a586f80a9b07a9875f28b858070b02 Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Thu, 2 Jun 2022 21:45:51 +0200 Subject: [PATCH 02/44] move word.json to /utils --- src/utils/DatatokenName.ts | 2 +- src/{ => utils}/data/words.json | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename src/{ => utils}/data/words.json (100%) diff --git a/src/utils/DatatokenName.ts b/src/utils/DatatokenName.ts index 31d3ceec..af4ef4a1 100644 --- a/src/utils/DatatokenName.ts +++ b/src/utils/DatatokenName.ts @@ -1,4 +1,4 @@ -import wordListDefault from '../data/words.json' +import wordListDefault from './data/words.json' /** * Generate new datatoken name & symbol from a word list diff --git a/src/data/words.json b/src/utils/data/words.json similarity index 100% rename from src/data/words.json rename to src/utils/data/words.json From 79612f60c49e807a1b1cde654ad542ea18518f8b Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Thu, 2 Jun 2022 21:49:16 +0200 Subject: [PATCH 03/44] move Aquarius and Provider to /services --- src/index.ts | 5 ++--- src/provider/index.ts | 1 - src/{aquarius => services}/Aquarius.ts | 0 src/{provider => services}/Provider.ts | 0 src/{aquarius => services}/index.ts | 1 + 5 files changed, 3 insertions(+), 4 deletions(-) delete mode 100644 src/provider/index.ts rename src/{aquarius => services}/Aquarius.ts (100%) rename src/{provider => services}/Provider.ts (100%) rename src/{aquarius => services}/index.ts (50%) diff --git a/src/index.ts b/src/index.ts index d8ec7b68..4c3f1cd7 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,8 +1,7 @@ -export * from './aquarius' +export * from './@types' +export * from './services' export * from './pools' export * from './tokens' export * from './factories' export * from './config' export * from './utils' -export * from './@types' -export * from './provider' diff --git a/src/provider/index.ts b/src/provider/index.ts deleted file mode 100644 index 0ce7b023..00000000 --- a/src/provider/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './Provider' diff --git a/src/aquarius/Aquarius.ts b/src/services/Aquarius.ts similarity index 100% rename from src/aquarius/Aquarius.ts rename to src/services/Aquarius.ts diff --git a/src/provider/Provider.ts b/src/services/Provider.ts similarity index 100% rename from src/provider/Provider.ts rename to src/services/Provider.ts diff --git a/src/aquarius/index.ts b/src/services/index.ts similarity index 50% rename from src/aquarius/index.ts rename to src/services/index.ts index da423a41..7ad71555 100644 --- a/src/aquarius/index.ts +++ b/src/services/index.ts @@ -1 +1,2 @@ export * from './Aquarius' +export * from './Provider' From 433999ef40ede81a1a6e54f9fdde4f962787eb46 Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Thu, 2 Jun 2022 21:55:24 +0200 Subject: [PATCH 04/44] move smart contract classes to /contracts --- src/{ => contracts}/factories/NFTFactory.ts | 6 +++--- src/contracts/index.ts | 8 ++++++++ src/{pools/dispenser => contracts/pools}/Dispenser.ts | 2 +- .../pools}/FixedRateExchange.ts | 0 src/{pools/balancer => contracts/pools}/Pool.ts | 0 src/{ => contracts}/pools/Router.ts | 11 ++++++++--- .../ssContracts => contracts/pools}/SideStaking.ts | 0 src/{ => contracts}/tokens/Datatoken.ts | 6 +++--- src/{ => contracts}/tokens/NFT.ts | 7 +++---- src/factories/index.ts | 1 - src/index.ts | 4 +--- src/pools/balancer/index.ts | 1 - src/pools/dispenser/index.ts | 1 - src/pools/fixedRate/index.ts | 1 - src/pools/index.ts | 5 ----- src/pools/ssContracts/index.ts | 1 - src/tokens/index.ts | 2 -- 17 files changed, 27 insertions(+), 29 deletions(-) rename src/{ => contracts}/factories/NFTFactory.ts (99%) create mode 100644 src/contracts/index.ts rename src/{pools/dispenser => contracts/pools}/Dispenser.ts (99%) rename src/{pools/fixedRate => contracts/pools}/FixedRateExchange.ts (100%) rename src/{pools/balancer => contracts/pools}/Pool.ts (100%) rename src/{ => contracts}/pools/Router.ts (98%) rename src/{pools/ssContracts => contracts/pools}/SideStaking.ts (100%) rename src/{ => contracts}/tokens/Datatoken.ts (99%) rename src/{ => contracts}/tokens/NFT.ts (99%) delete mode 100644 src/factories/index.ts delete mode 100644 src/pools/balancer/index.ts delete mode 100644 src/pools/dispenser/index.ts delete mode 100644 src/pools/fixedRate/index.ts delete mode 100644 src/pools/index.ts delete mode 100644 src/pools/ssContracts/index.ts delete mode 100644 src/tokens/index.ts diff --git a/src/factories/NFTFactory.ts b/src/contracts/factories/NFTFactory.ts similarity index 99% rename from src/factories/NFTFactory.ts rename to src/contracts/factories/NFTFactory.ts index 04715fd1..7112c04e 100644 --- a/src/factories/NFTFactory.ts +++ b/src/contracts/factories/NFTFactory.ts @@ -14,8 +14,8 @@ import { estimateGas, ZERO_ADDRESS, ConfigHelper -} from '../utils' -import { Config } from '../config/index.js' +} from '../../utils' +import { Config } from '../../config' import { ProviderFees, FreCreationParams, @@ -23,7 +23,7 @@ import { PoolCreationParams, DispenserCreationParams, ConsumeMarketFee -} from '../@types/index.js' +} from '../../@types' interface Template { templateAddress: string diff --git a/src/contracts/index.ts b/src/contracts/index.ts new file mode 100644 index 00000000..bef542cb --- /dev/null +++ b/src/contracts/index.ts @@ -0,0 +1,8 @@ +export * from './factories/NFTFactory' +export * from './pools/Dispenser' +export * from './pools/FixedRateExchange' +export * from './pools/Pool' +export * from './pools/Router' +export * from './pools/SideStaking' +export * from './tokens/Datatoken' +export * from './tokens/NFT' diff --git a/src/pools/dispenser/Dispenser.ts b/src/contracts/pools/Dispenser.ts similarity index 99% rename from src/pools/dispenser/Dispenser.ts rename to src/contracts/pools/Dispenser.ts index 1ee21e6c..ac01d8e7 100644 --- a/src/pools/dispenser/Dispenser.ts +++ b/src/contracts/pools/Dispenser.ts @@ -11,7 +11,7 @@ import { estimateGas, ConfigHelper } from '../../utils/' -import { Datatoken } from '../../tokens' +import { Datatoken } from '..' import { Config } from '../../config/index.js' export interface DispenserToken { diff --git a/src/pools/fixedRate/FixedRateExchange.ts b/src/contracts/pools/FixedRateExchange.ts similarity index 100% rename from src/pools/fixedRate/FixedRateExchange.ts rename to src/contracts/pools/FixedRateExchange.ts diff --git a/src/pools/balancer/Pool.ts b/src/contracts/pools/Pool.ts similarity index 100% rename from src/pools/balancer/Pool.ts rename to src/contracts/pools/Pool.ts diff --git a/src/pools/Router.ts b/src/contracts/pools/Router.ts similarity index 98% rename from src/pools/Router.ts rename to src/contracts/pools/Router.ts index a206a2ae..40b3a226 100644 --- a/src/pools/Router.ts +++ b/src/contracts/pools/Router.ts @@ -3,9 +3,14 @@ import Web3 from 'web3' import { TransactionReceipt } from 'web3-core' import { AbiItem } from 'web3-utils' import defaultRouter from '@oceanprotocol/contracts/artifacts/contracts/pools/FactoryRouter.sol/FactoryRouter.json' -import { getFairGasPrice, setContractDefaults, ConfigHelper, estimateGas } from '../utils' -import { Operation } from '../@types/Router' -import { Config } from '../config/index.js' +import { + getFairGasPrice, + setContractDefaults, + ConfigHelper, + estimateGas +} from '../../utils' +import { Operation } from '../../@types/Router' +import { Config } from '../../config/index.js' /** * Provides an interface for FactoryRouter contract diff --git a/src/pools/ssContracts/SideStaking.ts b/src/contracts/pools/SideStaking.ts similarity index 100% rename from src/pools/ssContracts/SideStaking.ts rename to src/contracts/pools/SideStaking.ts diff --git a/src/tokens/Datatoken.ts b/src/contracts/tokens/Datatoken.ts similarity index 99% rename from src/tokens/Datatoken.ts rename to src/contracts/tokens/Datatoken.ts index cfc3de33..9ecd2530 100644 --- a/src/tokens/Datatoken.ts +++ b/src/contracts/tokens/Datatoken.ts @@ -13,16 +13,16 @@ import { estimateGas, ZERO_ADDRESS, ConfigHelper -} from '../utils' +} from '../../utils' import { ConsumeMarketFee, FreOrderParams, FreCreationParams, ProviderFees, PublishingMarketFee -} from '../@types' +} from '../../@types' import { Nft } from './NFT' -import { Config } from '../config/index.js' +import { Config } from '../../config' /** * ERC20 ROLES diff --git a/src/tokens/NFT.ts b/src/contracts/tokens/NFT.ts similarity index 99% rename from src/tokens/NFT.ts rename to src/contracts/tokens/NFT.ts index 7bad7ac4..b5b07018 100644 --- a/src/tokens/NFT.ts +++ b/src/contracts/tokens/NFT.ts @@ -9,11 +9,10 @@ import { setContractDefaults, estimateGas, ConfigHelper -} from '../utils' +} from '../../utils' import { Contract } from 'web3-eth-contract' -import { MetadataProof } from '../../src/@types' -import { Config } from '../config/index.js' -import { MetadataAndTokenURI } from '../@types' +import { MetadataProof, MetadataAndTokenURI } from '../../@types' +import { Config } from '../../config' /** * ERC721 ROLES diff --git a/src/factories/index.ts b/src/factories/index.ts deleted file mode 100644 index 17b42cb9..00000000 --- a/src/factories/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './NFTFactory' diff --git a/src/index.ts b/src/index.ts index 4c3f1cd7..bca55e9b 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,7 +1,5 @@ export * from './@types' export * from './services' -export * from './pools' -export * from './tokens' -export * from './factories' +export * from './contracts' export * from './config' export * from './utils' diff --git a/src/pools/balancer/index.ts b/src/pools/balancer/index.ts deleted file mode 100644 index 0d56f727..00000000 --- a/src/pools/balancer/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './Pool' diff --git a/src/pools/dispenser/index.ts b/src/pools/dispenser/index.ts deleted file mode 100644 index e6284e41..00000000 --- a/src/pools/dispenser/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './Dispenser' diff --git a/src/pools/fixedRate/index.ts b/src/pools/fixedRate/index.ts deleted file mode 100644 index 88b1dccc..00000000 --- a/src/pools/fixedRate/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './FixedRateExchange' diff --git a/src/pools/index.ts b/src/pools/index.ts deleted file mode 100644 index 378520db..00000000 --- a/src/pools/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from './balancer' -export * from './dispenser' -export * from './fixedRate' -export * from './ssContracts' -export * from './Router' diff --git a/src/pools/ssContracts/index.ts b/src/pools/ssContracts/index.ts deleted file mode 100644 index 8ade0ddb..00000000 --- a/src/pools/ssContracts/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './SideStaking' diff --git a/src/tokens/index.ts b/src/tokens/index.ts deleted file mode 100644 index 5e47c88e..00000000 --- a/src/tokens/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './Datatoken' -export * from './NFT' From 45e9f81f309320616ff6299b8f9443fb83ddbe2f Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Thu, 2 Jun 2022 22:29:47 +0200 Subject: [PATCH 05/44] move ConfigHelper to /config --- src/{utils => config}/ConfigHelper.ts | 4 ++-- src/config/index.ts | 1 + src/contracts/factories/NFTFactory.ts | 5 ++--- src/contracts/pools/Dispenser.ts | 5 ++--- src/contracts/pools/FixedRateExchange.ts | 5 ++--- src/contracts/pools/Pool.ts | 5 ++--- src/contracts/pools/Router.ts | 9 ++------- src/contracts/pools/SideStaking.ts | 10 ++-------- src/contracts/tokens/Datatoken.ts | 5 ++--- src/contracts/tokens/NFT.ts | 5 ++--- src/utils/index.ts | 1 - test/config.ts | 8 ++------ 12 files changed, 21 insertions(+), 42 deletions(-) rename src/{utils => config}/ConfigHelper.ts (98%) diff --git a/src/utils/ConfigHelper.ts b/src/config/ConfigHelper.ts similarity index 98% rename from src/utils/ConfigHelper.ts rename to src/config/ConfigHelper.ts index b464f8d9..01ce2f87 100644 --- a/src/utils/ConfigHelper.ts +++ b/src/config/ConfigHelper.ts @@ -1,7 +1,7 @@ -import Config from '../config/Config' +import { Config } from './Config' // eslint-disable-next-line import/no-named-default import { default as DefaultContractsAddresses } from '@oceanprotocol/contracts/addresses/address.json' -import LoggerInstance from './Logger' +import { LoggerInstance } from '..' const configHelperNetworksBase: Config = { chainId: null, diff --git a/src/config/index.ts b/src/config/index.ts index a871693a..3ac42305 100644 --- a/src/config/index.ts +++ b/src/config/index.ts @@ -1 +1,2 @@ export * from './Config' +export * from './ConfigHelper' diff --git a/src/contracts/factories/NFTFactory.ts b/src/contracts/factories/NFTFactory.ts index 7112c04e..cca80872 100644 --- a/src/contracts/factories/NFTFactory.ts +++ b/src/contracts/factories/NFTFactory.ts @@ -12,10 +12,9 @@ import { getPoolCreationParams, setContractDefaults, estimateGas, - ZERO_ADDRESS, - ConfigHelper + ZERO_ADDRESS } from '../../utils' -import { Config } from '../../config' +import { Config, ConfigHelper } from '../../config' import { ProviderFees, FreCreationParams, diff --git a/src/contracts/pools/Dispenser.ts b/src/contracts/pools/Dispenser.ts index ac01d8e7..d50a0668 100644 --- a/src/contracts/pools/Dispenser.ts +++ b/src/contracts/pools/Dispenser.ts @@ -8,11 +8,10 @@ import { LoggerInstance as logger, getFairGasPrice, setContractDefaults, - estimateGas, - ConfigHelper + estimateGas } from '../../utils/' import { Datatoken } from '..' -import { Config } from '../../config/index.js' +import { Config, ConfigHelper } from '../../config' export interface DispenserToken { active: boolean diff --git a/src/contracts/pools/FixedRateExchange.ts b/src/contracts/pools/FixedRateExchange.ts index 07172833..b43e5f4b 100644 --- a/src/contracts/pools/FixedRateExchange.ts +++ b/src/contracts/pools/FixedRateExchange.ts @@ -10,10 +10,9 @@ import { amountToUnits, unitsToAmount, estimateGas, - ZERO_ADDRESS, - ConfigHelper + ZERO_ADDRESS } from '../../utils' -import { Config } from '../../config/index.js' +import { Config, ConfigHelper } from '../../config' import { PriceAndFees } from '../..' export interface FixedPriceExchange { diff --git a/src/contracts/pools/Pool.ts b/src/contracts/pools/Pool.ts index 9fa7c989..1af63c4a 100644 --- a/src/contracts/pools/Pool.ts +++ b/src/contracts/pools/Pool.ts @@ -8,8 +8,7 @@ import { unitsToAmount, amountToUnits, LoggerInstance, - estimateGas, - ConfigHelper + estimateGas } from '../../utils' import BigNumber from 'bignumber.js' import PoolTemplate from '@oceanprotocol/contracts/artifacts/contracts/pools/balancer/BPool.sol/BPool.json' @@ -21,7 +20,7 @@ import { AmountsOutMaxFee, PoolPriceAndFees } from '../../@types' -import { Config } from '../../config' +import { Config, ConfigHelper } from '../../config' import { getMaxAddLiquidity, getMaxRemoveLiquidity, diff --git a/src/contracts/pools/Router.ts b/src/contracts/pools/Router.ts index 40b3a226..69972d70 100644 --- a/src/contracts/pools/Router.ts +++ b/src/contracts/pools/Router.ts @@ -3,14 +3,9 @@ import Web3 from 'web3' import { TransactionReceipt } from 'web3-core' import { AbiItem } from 'web3-utils' import defaultRouter from '@oceanprotocol/contracts/artifacts/contracts/pools/FactoryRouter.sol/FactoryRouter.json' -import { - getFairGasPrice, - setContractDefaults, - ConfigHelper, - estimateGas -} from '../../utils' +import { getFairGasPrice, setContractDefaults, estimateGas } from '../../utils' import { Operation } from '../../@types/Router' -import { Config } from '../../config/index.js' +import { Config, ConfigHelper } from '../../config' /** * Provides an interface for FactoryRouter contract diff --git a/src/contracts/pools/SideStaking.ts b/src/contracts/pools/SideStaking.ts index f38e803c..60d51c9c 100644 --- a/src/contracts/pools/SideStaking.ts +++ b/src/contracts/pools/SideStaking.ts @@ -2,15 +2,9 @@ import Web3 from 'web3' import { AbiItem } from 'web3-utils/types' import { TransactionReceipt } from 'web3-core' import { Contract } from 'web3-eth-contract' -import { - LoggerInstance, - getFairGasPrice, - ConfigHelper, - estimateGas, - unitsToAmount -} from '../../utils' +import { LoggerInstance, getFairGasPrice, estimateGas, unitsToAmount } from '../../utils' import SideStakingTemplate from '@oceanprotocol/contracts/artifacts/contracts/pools/ssContracts/SideStaking.sol/SideStaking.json' -import { Config } from '../../config' +import { Config, ConfigHelper } from '../../config' export class SideStaking { public ssAbi: AbiItem | AbiItem[] diff --git a/src/contracts/tokens/Datatoken.ts b/src/contracts/tokens/Datatoken.ts index 9ecd2530..21912fb5 100644 --- a/src/contracts/tokens/Datatoken.ts +++ b/src/contracts/tokens/Datatoken.ts @@ -11,8 +11,7 @@ import { setContractDefaults, getFreOrderParams, estimateGas, - ZERO_ADDRESS, - ConfigHelper + ZERO_ADDRESS } from '../../utils' import { ConsumeMarketFee, @@ -22,7 +21,7 @@ import { PublishingMarketFee } from '../../@types' import { Nft } from './NFT' -import { Config } from '../../config' +import { Config, ConfigHelper } from '../../config' /** * ERC20 ROLES diff --git a/src/contracts/tokens/NFT.ts b/src/contracts/tokens/NFT.ts index b5b07018..202d9f51 100644 --- a/src/contracts/tokens/NFT.ts +++ b/src/contracts/tokens/NFT.ts @@ -7,12 +7,11 @@ import { getFairGasPrice, generateDtName, setContractDefaults, - estimateGas, - ConfigHelper + estimateGas } from '../../utils' import { Contract } from 'web3-eth-contract' import { MetadataProof, MetadataAndTokenURI } from '../../@types' -import { Config } from '../../config' +import { Config, ConfigHelper } from '../../config' /** * ERC721 ROLES diff --git a/src/utils/index.ts b/src/utils/index.ts index 7085dbc0..2ef7951e 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -2,7 +2,6 @@ export * from './Logger' export * from './DatatokenName' export * from './ContractUtils' export * from './FetchHelper' -export * from './ConfigHelper' export * from './DdoHelpers' export * from './Constants' export * from './SignatureUtils' diff --git a/test/config.ts b/test/config.ts index f86adce1..2fad75f5 100644 --- a/test/config.ts +++ b/test/config.ts @@ -1,12 +1,8 @@ import Web3 from 'web3' import fs from 'fs' import { homedir } from 'os' -import { - ConfigHelper, - configHelperNetworks, - LoggerInstance, - LogLevel -} from '../src/utils' +import { ConfigHelper, configHelperNetworks } from '..' +import { LoggerInstance, LogLevel } from '../src/utils' LoggerInstance.setLevel(LogLevel.Error) From 68a390d4f8786fe1a227b71f76a5055b498f6b3c Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Fri, 3 Jun 2022 07:49:57 +0200 Subject: [PATCH 06/44] fix imports --- src/config/ConfigHelper.ts | 2 +- test/config.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/config/ConfigHelper.ts b/src/config/ConfigHelper.ts index 01ce2f87..bbe0adda 100644 --- a/src/config/ConfigHelper.ts +++ b/src/config/ConfigHelper.ts @@ -1,7 +1,7 @@ import { Config } from './Config' // eslint-disable-next-line import/no-named-default import { default as DefaultContractsAddresses } from '@oceanprotocol/contracts/addresses/address.json' -import { LoggerInstance } from '..' +import { LoggerInstance } from '../utils' const configHelperNetworksBase: Config = { chainId: null, diff --git a/test/config.ts b/test/config.ts index 2fad75f5..19519b18 100644 --- a/test/config.ts +++ b/test/config.ts @@ -1,7 +1,7 @@ import Web3 from 'web3' import fs from 'fs' import { homedir } from 'os' -import { ConfigHelper, configHelperNetworks } from '..' +import { ConfigHelper, configHelperNetworks } from '../src/config' import { LoggerInstance, LogLevel } from '../src/utils' LoggerInstance.setLevel(LogLevel.Error) From 875e5438b73b3a7af40826036122d4d60dfdd40d Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Fri, 3 Jun 2022 13:55:02 +0200 Subject: [PATCH 07/44] refactor @types/index file --- src/@types/index.ts | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/@types/index.ts b/src/@types/index.ts index 7e03cb56..dbadc5be 100644 --- a/src/@types/index.ts +++ b/src/@types/index.ts @@ -1,14 +1,16 @@ -export * from './DDO/DDO' -export * from './Asset' -export * from './DDO/Service' export * from './DDO/Credentials' +export * from './DDO/DDO' +export * from './DDO/Event' export * from './DDO/Metadata' -export * from './FileMetadata' +export * from './DDO/Service' +export * from './Asset' export * from './Compute' -export * from './Provider' -export * from './FixedPrice' -export * from './Pool' +export * from './Dispenser' +export * from './DownloadResponse' export * from './Erc20' export * from './Erc721' -export * from './Dispenser' +export * from './FileMetadata' +export * from './FixedPrice' +export * from './Pool' +export * from './Provider' export * from './Router' From 96f98cfab3af096e539ededbaa6f619d7ac26a84 Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Fri, 3 Jun 2022 13:56:20 +0200 Subject: [PATCH 08/44] restructure @types/ imports --- src/@types/Asset.ts | 2 +- src/@types/Compute.ts | 2 +- src/@types/DDO/DDO.ts | 5 +---- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/@types/Asset.ts b/src/@types/Asset.ts index b3ecc835..3d679280 100644 --- a/src/@types/Asset.ts +++ b/src/@types/Asset.ts @@ -1,4 +1,4 @@ -import { DDO } from './DDO/DDO' +import { DDO } from '.' export interface AssetNft { /** diff --git a/src/@types/Compute.ts b/src/@types/Compute.ts index 39b8edf1..81142c7c 100644 --- a/src/@types/Compute.ts +++ b/src/@types/Compute.ts @@ -1,4 +1,4 @@ -import { Metadata, MetadataAlgorithm } from './DDO/Metadata' +import { Metadata, MetadataAlgorithm } from '.' export type ComputeResultType = | 'algorithmLog' diff --git a/src/@types/DDO/DDO.ts b/src/@types/DDO/DDO.ts index 7c88def6..0a6d0e24 100644 --- a/src/@types/DDO/DDO.ts +++ b/src/@types/DDO/DDO.ts @@ -1,7 +1,4 @@ -import { Service } from './Service' -import { Metadata } from './Metadata' -import { Credentials } from './Credentials' -import { Event } from './Event' +import { Service, Metadata, Credentials, Event } from '..' /** * DID Descriptor Object. From 7e183119f1778cb415f99dcead03b42794681551 Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Fri, 3 Jun 2022 13:56:50 +0200 Subject: [PATCH 09/44] refactor src/index file --- src/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/index.ts b/src/index.ts index bca55e9b..9959ba57 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,5 +1,5 @@ export * from './@types' -export * from './services' -export * from './contracts' export * from './config' +export * from './contracts' +export * from './services' export * from './utils' From e2ebf40dce6eac35d77264b2035423f00d38b058 Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Fri, 3 Jun 2022 13:58:49 +0200 Subject: [PATCH 10/44] refactor utils/index file --- src/utils/index.ts | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/utils/index.ts b/src/utils/index.ts index 2ef7951e..2795fcad 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -1,10 +1,12 @@ -export * from './Logger' -export * from './DatatokenName' -export * from './ContractUtils' -export * from './FetchHelper' -export * from './DdoHelpers' export * from './Constants' +export * from './ContractUtils' +export * from './ConversionTypeHelper' +export * from './DatatokenName' +export * from './DdoHelpers' +export * from './FetchHelper' +export * from './General' +export * from './Logger' +export * from './minAbi' +export * from './PoolHelpers' export * from './SignatureUtils' export * from './TokenUtils' -export * from './General' -export * from './PoolHelpers' From f7a1183c90d81487b27723a3c1b7eb156aafd5ba Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Fri, 3 Jun 2022 14:01:54 +0200 Subject: [PATCH 11/44] remove default exports --- src/config/Config.ts | 2 -- src/services/Aquarius.ts | 2 -- src/services/Provider.ts | 1 - src/utils/ContractUtils.ts | 2 +- src/utils/DdoHelpers.ts | 2 +- src/utils/FetchHelper.ts | 2 +- src/utils/Logger.ts | 1 - src/utils/TokenUtils.ts | 2 +- 8 files changed, 4 insertions(+), 10 deletions(-) diff --git a/src/config/Config.ts b/src/config/Config.ts index 7b6c12bb..6efca3cc 100644 --- a/src/config/Config.ts +++ b/src/config/Config.ts @@ -195,5 +195,3 @@ export class Config { */ gasFeeMultiplier: number } - -export default Config diff --git a/src/services/Aquarius.ts b/src/services/Aquarius.ts index 823010c2..1c2f7bf6 100644 --- a/src/services/Aquarius.ts +++ b/src/services/Aquarius.ts @@ -122,5 +122,3 @@ export class Aquarius { return status } } - -export default Aquarius diff --git a/src/services/Provider.ts b/src/services/Provider.ts index 2bd87733..c260e0ba 100644 --- a/src/services/Provider.ts +++ b/src/services/Provider.ts @@ -780,4 +780,3 @@ export class Provider { } export const ProviderInstance = new Provider() -export default ProviderInstance diff --git a/src/utils/ContractUtils.ts b/src/utils/ContractUtils.ts index 475c1c14..73fd0574 100644 --- a/src/utils/ContractUtils.ts +++ b/src/utils/ContractUtils.ts @@ -10,7 +10,7 @@ import { } from '../@types' import { Config } from '../config' import { minAbi } from './minAbi' -import LoggerInstance from './Logger' +import { LoggerInstance } from './Logger' import { GASLIMIT_DEFAULT, ZERO_ADDRESS } from './Constants' export function setContractDefaults(contract: Contract, config: Config): Contract { diff --git a/src/utils/DdoHelpers.ts b/src/utils/DdoHelpers.ts index a2bb88e4..bf02e79e 100644 --- a/src/utils/DdoHelpers.ts +++ b/src/utils/DdoHelpers.ts @@ -1,6 +1,6 @@ import sha256 from 'crypto-js/sha256' import Web3 from 'web3' -import LoggerInstance from './Logger' +import { LoggerInstance } from './Logger' export function generateDid(erc721Address: string, chainId: number): string { erc721Address = Web3.utils.toChecksumAddress(erc721Address) diff --git a/src/utils/FetchHelper.ts b/src/utils/FetchHelper.ts index 0fdc5eb5..7f2fbdfe 100644 --- a/src/utils/FetchHelper.ts +++ b/src/utils/FetchHelper.ts @@ -1,5 +1,5 @@ import fetch from 'cross-fetch' -import LoggerInstance from './Logger' +import { LoggerInstance } from './Logger' import { DownloadResponse } from '../@types/DownloadResponse' export async function fetchData(url: string, opts: RequestInit): Promise { diff --git a/src/utils/Logger.ts b/src/utils/Logger.ts index 7e74c446..a2e480b4 100644 --- a/src/utils/Logger.ts +++ b/src/utils/Logger.ts @@ -43,4 +43,3 @@ export class Logger { } export const LoggerInstance = new Logger() -export default LoggerInstance diff --git a/src/utils/TokenUtils.ts b/src/utils/TokenUtils.ts index a22a5e0c..bb26a5e6 100644 --- a/src/utils/TokenUtils.ts +++ b/src/utils/TokenUtils.ts @@ -7,7 +7,7 @@ import { unitsToAmount } from './ContractUtils' import { minAbi } from './minAbi' -import LoggerInstance from './Logger' +import { LoggerInstance } from './Logger' import { TransactionReceipt } from 'web3-core' import Web3 from 'web3' From c38fcbf743094ed663bb6d2b40a5ba2fb7ff6064 Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Fri, 3 Jun 2022 14:03:21 +0200 Subject: [PATCH 12/44] refactor config/ imports --- src/config/Config.ts | 2 +- src/config/ConfigHelper.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/config/Config.ts b/src/config/Config.ts index 6efca3cc..d10aad7b 100644 --- a/src/config/Config.ts +++ b/src/config/Config.ts @@ -1,5 +1,5 @@ -import { LogLevel } from '../utils/Logger' import { AbiItem } from 'web3-utils/types' +import { LogLevel } from '../utils' export class Config { /** diff --git a/src/config/ConfigHelper.ts b/src/config/ConfigHelper.ts index bbe0adda..09d5731c 100644 --- a/src/config/ConfigHelper.ts +++ b/src/config/ConfigHelper.ts @@ -1,6 +1,6 @@ -import { Config } from './Config' // eslint-disable-next-line import/no-named-default import { default as DefaultContractsAddresses } from '@oceanprotocol/contracts/addresses/address.json' +import { Config } from './config' import { LoggerInstance } from '../utils' const configHelperNetworksBase: Config = { From 3ed60108247df5574c00f7d173867144d2ad2b85 Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Fri, 3 Jun 2022 14:07:57 +0200 Subject: [PATCH 13/44] refactor contracts/ imports --- src/contracts/pools/FixedRateExchange.ts | 2 +- src/contracts/pools/Pool.ts | 21 ++++++++++----------- src/contracts/pools/Router.ts | 2 +- src/contracts/pools/SideStaking.ts | 2 +- 4 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/contracts/pools/FixedRateExchange.ts b/src/contracts/pools/FixedRateExchange.ts index b43e5f4b..88fc921b 100644 --- a/src/contracts/pools/FixedRateExchange.ts +++ b/src/contracts/pools/FixedRateExchange.ts @@ -13,7 +13,7 @@ import { ZERO_ADDRESS } from '../../utils' import { Config, ConfigHelper } from '../../config' -import { PriceAndFees } from '../..' +import { PriceAndFees } from '../../@types' export interface FixedPriceExchange { active: boolean diff --git a/src/contracts/pools/Pool.ts b/src/contracts/pools/Pool.ts index 1af63c4a..5f5dd1ee 100644 --- a/src/contracts/pools/Pool.ts +++ b/src/contracts/pools/Pool.ts @@ -2,17 +2,22 @@ import Web3 from 'web3' import { AbiItem } from 'web3-utils/types' import { TransactionReceipt } from 'web3-core' import { Contract } from 'web3-eth-contract' +import Decimal from 'decimal.js' +import BigNumber from 'bignumber.js' +import PoolTemplate from '@oceanprotocol/contracts/artifacts/contracts/pools/balancer/BPool.sol/BPool.json' +import defaultErc20Abi from '@oceanprotocol/contracts/artifacts/contracts/templates/ERC20Template.sol/ERC20Template.json' import { getFairGasPrice, setContractDefaults, unitsToAmount, amountToUnits, LoggerInstance, - estimateGas + estimateGas, + getMaxAddLiquidity, + getMaxRemoveLiquidity, + getMaxSwapExactIn, + getMaxSwapExactOut } from '../../utils' -import BigNumber from 'bignumber.js' -import PoolTemplate from '@oceanprotocol/contracts/artifacts/contracts/pools/balancer/BPool.sol/BPool.json' -import defaultErc20Abi from '@oceanprotocol/contracts/artifacts/contracts/templates/ERC20Template.sol/ERC20Template.json' import { CurrentFees, TokenInOutMarket, @@ -21,13 +26,7 @@ import { PoolPriceAndFees } from '../../@types' import { Config, ConfigHelper } from '../../config' -import { - getMaxAddLiquidity, - getMaxRemoveLiquidity, - getMaxSwapExactIn, - getMaxSwapExactOut -} from '../../utils/PoolHelpers' -import Decimal from 'decimal.js' + const MaxUint256 = '115792089237316195423570985008687907853269984665640564039457584007913129639934' diff --git a/src/contracts/pools/Router.ts b/src/contracts/pools/Router.ts index 69972d70..1f4d8ad7 100644 --- a/src/contracts/pools/Router.ts +++ b/src/contracts/pools/Router.ts @@ -4,7 +4,7 @@ import { TransactionReceipt } from 'web3-core' import { AbiItem } from 'web3-utils' import defaultRouter from '@oceanprotocol/contracts/artifacts/contracts/pools/FactoryRouter.sol/FactoryRouter.json' import { getFairGasPrice, setContractDefaults, estimateGas } from '../../utils' -import { Operation } from '../../@types/Router' +import { Operation } from '../../@types' import { Config, ConfigHelper } from '../../config' /** diff --git a/src/contracts/pools/SideStaking.ts b/src/contracts/pools/SideStaking.ts index 60d51c9c..716e3d48 100644 --- a/src/contracts/pools/SideStaking.ts +++ b/src/contracts/pools/SideStaking.ts @@ -2,8 +2,8 @@ import Web3 from 'web3' import { AbiItem } from 'web3-utils/types' import { TransactionReceipt } from 'web3-core' import { Contract } from 'web3-eth-contract' -import { LoggerInstance, getFairGasPrice, estimateGas, unitsToAmount } from '../../utils' import SideStakingTemplate from '@oceanprotocol/contracts/artifacts/contracts/pools/ssContracts/SideStaking.sol/SideStaking.json' +import { LoggerInstance, getFairGasPrice, estimateGas, unitsToAmount } from '../../utils' import { Config, ConfigHelper } from '../../config' export class SideStaking { From db3a2547a86f33e8c49803f1cc93509e5caf1534 Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Fri, 3 Jun 2022 14:09:08 +0200 Subject: [PATCH 14/44] refactor services/ imports --- src/services/Aquarius.ts | 5 +++-- src/services/Provider.ts | 8 ++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/services/Aquarius.ts b/src/services/Aquarius.ts index 1c2f7bf6..b68e2fbd 100644 --- a/src/services/Aquarius.ts +++ b/src/services/Aquarius.ts @@ -1,6 +1,7 @@ -import { LoggerInstance, sleep } from '../utils' -import { Asset, DDO, ValidateMetadata } from '../@types/' import fetch from 'cross-fetch' +import { LoggerInstance, sleep } from '../utils' +import { Asset, DDO, ValidateMetadata } from '../@types' + export class Aquarius { public aquariusURL /** diff --git a/src/services/Provider.ts b/src/services/Provider.ts index c260e0ba..602d95c3 100644 --- a/src/services/Provider.ts +++ b/src/services/Provider.ts @@ -1,5 +1,6 @@ import Web3 from 'web3' -import { LoggerInstance, getData } from '../utils' +import fetch from 'cross-fetch' +import { LoggerInstance, getData, noZeroX } from '../utils' import { FileMetadata, ComputeJob, @@ -9,9 +10,8 @@ import { ComputeEnvironment, ProviderInitialize, ProviderComputeInitializeResults -} from '../@types/' -import { noZeroX } from '../utils/ConversionTypeHelper' -import fetch from 'cross-fetch' +} from '../@types' + export interface HttpCallback { (httpMethod: string, url: string, body: string, header: any): Promise } From 2636352a7270e740396c1b455a13296dee50c0e9 Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Fri, 3 Jun 2022 14:12:00 +0200 Subject: [PATCH 15/44] refactor utils/ imports --- src/utils/ContractUtils.ts | 5 +---- src/utils/ConversionTypeHelper.ts | 2 +- src/utils/DdoHelpers.ts | 2 +- src/utils/FetchHelper.ts | 4 ++-- src/utils/PoolHelpers.ts | 2 +- src/utils/SignatureUtils.ts | 1 - src/utils/TokenUtils.ts | 12 ++++++------ 7 files changed, 12 insertions(+), 16 deletions(-) diff --git a/src/utils/ContractUtils.ts b/src/utils/ContractUtils.ts index 73fd0574..fa6807ae 100644 --- a/src/utils/ContractUtils.ts +++ b/src/utils/ContractUtils.ts @@ -1,7 +1,6 @@ import Web3 from 'web3' import BigNumber from 'bignumber.js' import { Contract } from 'web3-eth-contract' -import { generateDtName } from './DatatokenName' import { Erc20CreateParams, FreCreationParams, @@ -9,9 +8,7 @@ import { PoolCreationParams } from '../@types' import { Config } from '../config' -import { minAbi } from './minAbi' -import { LoggerInstance } from './Logger' -import { GASLIMIT_DEFAULT, ZERO_ADDRESS } from './Constants' +import { generateDtName, minAbi, LoggerInstance, GASLIMIT_DEFAULT, ZERO_ADDRESS } from '.' export function setContractDefaults(contract: Contract, config: Config): Contract { if (config) { diff --git a/src/utils/ConversionTypeHelper.ts b/src/utils/ConversionTypeHelper.ts index 503256bc..b8141436 100644 --- a/src/utils/ConversionTypeHelper.ts +++ b/src/utils/ConversionTypeHelper.ts @@ -1,4 +1,4 @@ -import { LoggerInstance } from './Logger' +import { LoggerInstance } from '.' export const zeroX = (input: string): string => zeroXTransformer(input, true) export const noZeroX = (input: string): string => zeroXTransformer(input, false) diff --git a/src/utils/DdoHelpers.ts b/src/utils/DdoHelpers.ts index bf02e79e..78bdbadd 100644 --- a/src/utils/DdoHelpers.ts +++ b/src/utils/DdoHelpers.ts @@ -1,6 +1,6 @@ import sha256 from 'crypto-js/sha256' import Web3 from 'web3' -import { LoggerInstance } from './Logger' +import { LoggerInstance } from '.' export function generateDid(erc721Address: string, chainId: number): string { erc721Address = Web3.utils.toChecksumAddress(erc721Address) diff --git a/src/utils/FetchHelper.ts b/src/utils/FetchHelper.ts index 7f2fbdfe..d40d5f54 100644 --- a/src/utils/FetchHelper.ts +++ b/src/utils/FetchHelper.ts @@ -1,6 +1,6 @@ import fetch from 'cross-fetch' -import { LoggerInstance } from './Logger' -import { DownloadResponse } from '../@types/DownloadResponse' +import { DownloadResponse } from '../@types' +import { LoggerInstance } from '.' export async function fetchData(url: string, opts: RequestInit): Promise { const result = await fetch(url, opts) diff --git a/src/utils/PoolHelpers.ts b/src/utils/PoolHelpers.ts index dc93b0a7..b9789308 100644 --- a/src/utils/PoolHelpers.ts +++ b/src/utils/PoolHelpers.ts @@ -1,5 +1,5 @@ import Decimal from 'decimal.js' -import { Pool } from '..' +import { Pool } from '../contracts' export function calcMaxExactOut(balance: string): Decimal { return new Decimal(balance).div(2) diff --git a/src/utils/SignatureUtils.ts b/src/utils/SignatureUtils.ts index 381f5cc5..3742097c 100644 --- a/src/utils/SignatureUtils.ts +++ b/src/utils/SignatureUtils.ts @@ -1,5 +1,4 @@ import Web3 from 'web3' -import { LoggerInstance } from './Logger' export async function signHash(web3: Web3, message: string, address: string) { let signedMessage = await web3.eth.sign(message, address) diff --git a/src/utils/TokenUtils.ts b/src/utils/TokenUtils.ts index bb26a5e6..bd293946 100644 --- a/src/utils/TokenUtils.ts +++ b/src/utils/TokenUtils.ts @@ -1,15 +1,15 @@ import Decimal from 'decimal.js' import { Contract } from 'web3-eth-contract' +import { TransactionReceipt } from 'web3-core' +import Web3 from 'web3' import { amountToUnits, estimateGas, getFairGasPrice, - unitsToAmount -} from './ContractUtils' -import { minAbi } from './minAbi' -import { LoggerInstance } from './Logger' -import { TransactionReceipt } from 'web3-core' -import Web3 from 'web3' + unitsToAmount, + minAbi, + LoggerInstance +} from '.' /** * Estimate gas cost for approval function From 733e70b68694f64495546b9b87d4cf91627645d2 Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Fri, 3 Jun 2022 14:31:06 +0200 Subject: [PATCH 16/44] fix import --- src/config/ConfigHelper.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config/ConfigHelper.ts b/src/config/ConfigHelper.ts index 09d5731c..dfb96477 100644 --- a/src/config/ConfigHelper.ts +++ b/src/config/ConfigHelper.ts @@ -1,6 +1,6 @@ // eslint-disable-next-line import/no-named-default import { default as DefaultContractsAddresses } from '@oceanprotocol/contracts/addresses/address.json' -import { Config } from './config' +import { Config } from '.' import { LoggerInstance } from '../utils' const configHelperNetworksBase: Config = { From 82b6b927bd1f8c8ab08d4d6db272d9a41201dd48 Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Mon, 6 Jun 2022 09:03:18 +0200 Subject: [PATCH 17/44] Move NFTFactory interface types to \@types --- src/@types/NFTFactory.ts | 23 +++++++++++++++++++++++ src/@types/index.ts | 1 + src/contracts/factories/NFTFactory.ts | 27 +++------------------------ 3 files changed, 27 insertions(+), 24 deletions(-) create mode 100644 src/@types/NFTFactory.ts diff --git a/src/@types/NFTFactory.ts b/src/@types/NFTFactory.ts new file mode 100644 index 00000000..874a326d --- /dev/null +++ b/src/@types/NFTFactory.ts @@ -0,0 +1,23 @@ +import { ConsumeMarketFee, ProviderFees } from '.' + +export interface Template { + templateAddress: string + isActive: boolean +} + +export interface TokenOrder { + tokenAddress: string + consumer: string + serviceIndex: number + _providerFee: ProviderFees + _consumeMarketFee: ConsumeMarketFee +} + +export interface NftCreateData { + name: string + symbol: string + templateIndex: number + tokenURI: string + transferable: boolean + owner: string +} \ No newline at end of file diff --git a/src/@types/index.ts b/src/@types/index.ts index dbadc5be..7ff08ef4 100644 --- a/src/@types/index.ts +++ b/src/@types/index.ts @@ -11,6 +11,7 @@ export * from './Erc20' export * from './Erc721' export * from './FileMetadata' export * from './FixedPrice' +export * from './NFTFactory' export * from './Pool' export * from './Provider' export * from './Router' diff --git a/src/contracts/factories/NFTFactory.ts b/src/contracts/factories/NFTFactory.ts index cca80872..f4e0ef69 100644 --- a/src/contracts/factories/NFTFactory.ts +++ b/src/contracts/factories/NFTFactory.ts @@ -16,36 +16,15 @@ import { } from '../../utils' import { Config, ConfigHelper } from '../../config' import { - ProviderFees, FreCreationParams, Erc20CreateParams, PoolCreationParams, DispenserCreationParams, - ConsumeMarketFee + NftCreateData, + Template, + TokenOrder } from '../../@types' -interface Template { - templateAddress: string - isActive: boolean -} - -export interface TokenOrder { - tokenAddress: string - consumer: string - serviceIndex: number - _providerFee: ProviderFees - _consumeMarketFee: ConsumeMarketFee -} - -export interface NftCreateData { - name: string - symbol: string - templateIndex: number - tokenURI: string - transferable: boolean - owner: string -} - /** * Provides an interface for NFT Factory contract */ From f96f8fb59ba3476d5a842944eff32422dfef2e07 Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Mon, 6 Jun 2022 09:05:35 +0200 Subject: [PATCH 18/44] Move Dispenser interface types to @types --- src/@types/Dispenser.ts | 10 ++++++++++ src/contracts/pools/Dispenser.ts | 11 +---------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/@types/Dispenser.ts b/src/@types/Dispenser.ts index 6919ef22..417ecc48 100644 --- a/src/@types/Dispenser.ts +++ b/src/@types/Dispenser.ts @@ -5,3 +5,13 @@ export interface DispenserCreationParams { withMint?: boolean // true if we want to allow the dispenser to be a minter allowedSwapper?: string // only account that can ask tokens. set address(0) if not required } + +export interface DispenserToken { + active: boolean + owner: string + maxTokens: string + maxBalance: string + balance: string + isMinter: boolean + allowedSwapper: string +} \ No newline at end of file diff --git a/src/contracts/pools/Dispenser.ts b/src/contracts/pools/Dispenser.ts index d50a0668..61797fa5 100644 --- a/src/contracts/pools/Dispenser.ts +++ b/src/contracts/pools/Dispenser.ts @@ -12,16 +12,7 @@ import { } from '../../utils/' import { Datatoken } from '..' import { Config, ConfigHelper } from '../../config' - -export interface DispenserToken { - active: boolean - owner: string - maxTokens: string - maxBalance: string - balance: string - isMinter: boolean - allowedSwapper: string -} +import { DispenserToken } from '../../@types' export class Dispenser { public web3: Web3 = null From c7bb0452641c4dba024f7092526376aa5b523afd Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Mon, 6 Jun 2022 09:06:20 +0200 Subject: [PATCH 19/44] fix lint problems --- src/@types/Dispenser.ts | 2 +- src/@types/NFTFactory.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/@types/Dispenser.ts b/src/@types/Dispenser.ts index 417ecc48..02749dfb 100644 --- a/src/@types/Dispenser.ts +++ b/src/@types/Dispenser.ts @@ -14,4 +14,4 @@ export interface DispenserToken { balance: string isMinter: boolean allowedSwapper: string -} \ No newline at end of file +} diff --git a/src/@types/NFTFactory.ts b/src/@types/NFTFactory.ts index 874a326d..5e20ac9d 100644 --- a/src/@types/NFTFactory.ts +++ b/src/@types/NFTFactory.ts @@ -20,4 +20,4 @@ export interface NftCreateData { tokenURI: string transferable: boolean owner: string -} \ No newline at end of file +} From 970c2011ef150a113f3508bcdaba1881acea8bae Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Mon, 6 Jun 2022 09:08:23 +0200 Subject: [PATCH 20/44] Move FixedRateExchange interface types to @types --- src/@types/FixedPrice.ts | 26 +++++++++++++++ src/contracts/pools/FixedRateExchange.ts | 41 +----------------------- 2 files changed, 27 insertions(+), 40 deletions(-) diff --git a/src/@types/FixedPrice.ts b/src/@types/FixedPrice.ts index 3fe6ea43..8527a7f0 100644 --- a/src/@types/FixedPrice.ts +++ b/src/@types/FixedPrice.ts @@ -25,3 +25,29 @@ export interface PriceAndFees { marketFeeAmount: string consumeMarketFeeAmount: string } + +export interface FixedPriceExchange { + active: boolean + exchangeOwner: string + datatoken: string + baseToken: string + fixedRate: string + dtDecimals: string + btDecimals: string + dtBalance: string + btBalance: string + dtSupply: string + btSupply: string + withMint: boolean + allowedSwapper: string + exchangeId?: string +} + +export interface FeesInfo { + opcFee: string + marketFee: string + marketFeeCollector: string + marketFeeAvailable: string + oceanFeeAvailable: string + exchangeId: string +} diff --git a/src/contracts/pools/FixedRateExchange.ts b/src/contracts/pools/FixedRateExchange.ts index 88fc921b..c5d28c41 100644 --- a/src/contracts/pools/FixedRateExchange.ts +++ b/src/contracts/pools/FixedRateExchange.ts @@ -13,46 +13,7 @@ import { ZERO_ADDRESS } from '../../utils' import { Config, ConfigHelper } from '../../config' -import { PriceAndFees } from '../../@types' - -export interface FixedPriceExchange { - active: boolean - exchangeOwner: string - datatoken: string - baseToken: string - fixedRate: string - dtDecimals: string - btDecimals: string - dtBalance: string - btBalance: string - dtSupply: string - btSupply: string - withMint: boolean - allowedSwapper: string - exchangeId?: string -} - -export interface FeesInfo { - opcFee: string - marketFee: string - marketFeeCollector: string - marketFeeAvailable: string - oceanFeeAvailable: string - exchangeId: string -} -export interface FixedPriceSwap { - exchangeId: string - caller: string - baseTokenAmount: string - datatokenAmount: string -} - -/* eslint-disable no-unused-vars */ -export enum FixedRateCreateProgressStep { - CreatingExchange, - ApprovingDatatoken -} -/* eslint-enable no-unused-vars */ +import { PriceAndFees, FeesInfo, FixedPriceExchange } from '../../@types' export class FixedRateExchange { /** Ocean related functions */ From 38895fcf621c3fd6ce8dc8081800aef8f48af89d Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Mon, 6 Jun 2022 09:09:55 +0200 Subject: [PATCH 21/44] Move MAX_UINT_256 constant to Constants file --- src/contracts/pools/Pool.ts | 14 ++++++-------- src/utils/Constants.ts | 2 ++ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/contracts/pools/Pool.ts b/src/contracts/pools/Pool.ts index 5f5dd1ee..381912fd 100644 --- a/src/contracts/pools/Pool.ts +++ b/src/contracts/pools/Pool.ts @@ -16,7 +16,8 @@ import { getMaxAddLiquidity, getMaxRemoveLiquidity, getMaxSwapExactIn, - getMaxSwapExactOut + getMaxSwapExactOut, + MAX_UINT_256 } from '../../utils' import { CurrentFees, @@ -27,9 +28,6 @@ import { } from '../../@types' import { Config, ConfigHelper } from '../../config' -const MaxUint256 = - '115792089237316195423570985008687907853269984665640564039457584007913129639934' - /** * Provides an interface to Ocean friendly fork from Balancer BPool */ @@ -803,7 +801,7 @@ export class Pool { await this.getBaseToken(poolAddress), amountsInOutMaxFee.maxPrice ) - : MaxUint256 + : MAX_UINT_256 return estimateGas( address, @@ -868,7 +866,7 @@ export class Pool { await this.getBaseToken(poolAddress), amountsInOutMaxFee.maxPrice ) - : MaxUint256 + : MAX_UINT_256 const estGas = await estimateGas( address, @@ -954,7 +952,7 @@ export class Pool { await this.getBaseToken(poolAddress), amountsInOutMaxFee.maxPrice ) - : MaxUint256 + : MAX_UINT_256 return estimateGas( address, @@ -1015,7 +1013,7 @@ export class Pool { await this.getBaseToken(poolAddress), amountsInOutMaxFee.maxPrice ) - : MaxUint256 + : MAX_UINT_256 const estGas = await estimateGas( account, diff --git a/src/utils/Constants.ts b/src/utils/Constants.ts index 7295e074..2b97edbf 100644 --- a/src/utils/Constants.ts +++ b/src/utils/Constants.ts @@ -1,2 +1,4 @@ export const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000' export const GASLIMIT_DEFAULT = 1000000 +export const MAX_UINT_256 = + '115792089237316195423570985008687907853269984665640564039457584007913129639934' From ff3e50994451da2033ee4583bcdb30983dd31c05 Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Mon, 6 Jun 2022 09:11:25 +0200 Subject: [PATCH 22/44] Move Provider interface types to @types --- src/@types/Provider.ts | 9 +++++++++ src/services/Provider.ts | 17 +++-------------- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/src/@types/Provider.ts b/src/@types/Provider.ts index a8be432c..1b2e64c6 100644 --- a/src/@types/Provider.ts +++ b/src/@types/Provider.ts @@ -26,3 +26,12 @@ export interface ProviderComputeInitializeResults { algorithm?: ProviderComputeInitialize datasets?: ProviderComputeInitialize[] } + +export interface ServiceEndpoint { + serviceName: string + method: string + urlPath: string +} +export interface UserCustomParameters { + [key: string]: any +} diff --git a/src/services/Provider.ts b/src/services/Provider.ts index 602d95c3..412a8469 100644 --- a/src/services/Provider.ts +++ b/src/services/Provider.ts @@ -9,22 +9,11 @@ import { ComputeAsset, ComputeEnvironment, ProviderInitialize, - ProviderComputeInitializeResults + ProviderComputeInitializeResults, + ServiceEndpoint, + UserCustomParameters } from '../@types' -export interface HttpCallback { - (httpMethod: string, url: string, body: string, header: any): Promise -} - -export interface ServiceEndpoint { - serviceName: string - method: string - urlPath: string -} -export interface UserCustomParameters { - [key: string]: any -} - export class Provider { /** * Returns the provider endpoints From 433878c54c248f977d8bbb34cc172c26c610d1a5 Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Mon, 6 Jun 2022 09:58:11 +0200 Subject: [PATCH 23/44] Move Datatoken interface types to @types --- src/@types/Erc20.ts | 21 +++++++++++++++++++++ src/contracts/tokens/Datatoken.ts | 27 ++++----------------------- 2 files changed, 25 insertions(+), 23 deletions(-) diff --git a/src/@types/Erc20.ts b/src/@types/Erc20.ts index 19643b47..15715c98 100644 --- a/src/@types/Erc20.ts +++ b/src/@types/Erc20.ts @@ -1,3 +1,5 @@ +import { ProviderFees } from '.' + export interface Erc20CreateParams { templateIndex: number minter: string @@ -21,3 +23,22 @@ export interface PublishingMarketFee { publishMarketFeeToken: string publishMarketFeeAmount: string } + +export interface Roles { + minter: boolean + paymentManager: boolean +} + +export interface OrderParams { + consumer: string + serviceIndex: number + _providerFee: ProviderFees + _consumeMarketFee: ConsumeMarketFee +} + +export interface DispenserParams { + maxTokens: string + maxBalance: string + withMint?: boolean // true if we want to allow the dispenser to be a minter + allowedSwapper?: string // only account that can ask tokens. set address(0) if not required +} diff --git a/src/contracts/tokens/Datatoken.ts b/src/contracts/tokens/Datatoken.ts index 21912fb5..53779474 100644 --- a/src/contracts/tokens/Datatoken.ts +++ b/src/contracts/tokens/Datatoken.ts @@ -18,33 +18,14 @@ import { FreOrderParams, FreCreationParams, ProviderFees, - PublishingMarketFee + PublishingMarketFee, + DispenserParams, + OrderParams, + Roles } from '../../@types' import { Nft } from './NFT' import { Config, ConfigHelper } from '../../config' -/** - * ERC20 ROLES - */ -interface Roles { - minter: boolean - paymentManager: boolean -} - -export interface OrderParams { - consumer: string - serviceIndex: number - _providerFee: ProviderFees - _consumeMarketFee: ConsumeMarketFee -} - -export interface DispenserParams { - maxTokens: string - maxBalance: string - withMint?: boolean // true if we want to allow the dispenser to be a minter - allowedSwapper?: string // only account that can ask tokens. set address(0) if not required -} - export class Datatoken { public factoryAddress: string public factoryABI: AbiItem | AbiItem[] From 19b9ced779a20d14d625fb361182de9b2257cba4 Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Mon, 6 Jun 2022 09:59:31 +0200 Subject: [PATCH 24/44] rename Roles to DatatokenRoles --- src/@types/Erc20.ts | 2 +- src/contracts/tokens/Datatoken.ts | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/@types/Erc20.ts b/src/@types/Erc20.ts index 15715c98..96cdb2bb 100644 --- a/src/@types/Erc20.ts +++ b/src/@types/Erc20.ts @@ -24,7 +24,7 @@ export interface PublishingMarketFee { publishMarketFeeAmount: string } -export interface Roles { +export interface DatatokenRoles { minter: boolean paymentManager: boolean } diff --git a/src/contracts/tokens/Datatoken.ts b/src/contracts/tokens/Datatoken.ts index 53779474..962937b4 100644 --- a/src/contracts/tokens/Datatoken.ts +++ b/src/contracts/tokens/Datatoken.ts @@ -21,7 +21,7 @@ import { PublishingMarketFee, DispenserParams, OrderParams, - Roles + DatatokenRoles } from '../../@types' import { Nft } from './NFT' import { Config, ConfigHelper } from '../../config' @@ -1215,9 +1215,12 @@ export class Datatoken { /** Returns ERC20 user's permissions for a datatoken * @param {String} dtAddress Datatoken adress * @param {String} address user adress - * @return {Promise} + * @return {Promise} */ - public async getDTPermissions(dtAddress: string, address: string): Promise { + public async getDTPermissions( + dtAddress: string, + address: string + ): Promise { const dtContract = setContractDefaults( new this.web3.eth.Contract(this.datatokensAbi, dtAddress), this.config From 2c2fccdfb0e3a5ebb481f5768a72be41053cc1c3 Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Mon, 6 Jun 2022 10:01:19 +0200 Subject: [PATCH 25/44] Move NFT interface types to @types --- src/@types/Erc721.ts | 7 +++++++ src/contracts/tokens/NFT.ts | 18 ++++-------------- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/src/@types/Erc721.ts b/src/@types/Erc721.ts index 5b2289e3..4ba47066 100644 --- a/src/@types/Erc721.ts +++ b/src/@types/Erc721.ts @@ -11,3 +11,10 @@ export interface MetadataAndTokenURI { tokenURI: string metadataProofs?: MetadataProof[] } + +export interface NftRoles { + manager: boolean + deployERC20: boolean + updateMetadata: boolean + store: boolean +} diff --git a/src/contracts/tokens/NFT.ts b/src/contracts/tokens/NFT.ts index 202d9f51..e926eaf2 100644 --- a/src/contracts/tokens/NFT.ts +++ b/src/contracts/tokens/NFT.ts @@ -10,19 +10,9 @@ import { estimateGas } from '../../utils' import { Contract } from 'web3-eth-contract' -import { MetadataProof, MetadataAndTokenURI } from '../../@types' +import { MetadataProof, MetadataAndTokenURI, NftRoles } from '../../@types' import { Config, ConfigHelper } from '../../config' -/** - * ERC721 ROLES - */ -interface Roles { - manager: boolean - deployERC20: boolean - updateMetadata: boolean - store: boolean -} - export class Nft { public factory721Address: string public factory721Abi: AbiItem | AbiItem[] @@ -1173,9 +1163,9 @@ export class Nft { /** Get users NFT Permissions * @param {String} nftAddress erc721 contract adress * @param {String} address user adress - * @return {Promise} + * @return {Promise} */ - public async getNftPermissions(nftAddress: string, address: string): Promise { + public async getNftPermissions(nftAddress: string, address: string): Promise { const nftContract = setContractDefaults( new this.web3.eth.Contract(this.nftAbi, nftAddress), this.config @@ -1199,7 +1189,7 @@ export class Nft { /** Get users ERC20Deployer role * @param {String} nftAddress erc721 contract adress * @param {String} address user adress - * @return {Promise} + * @return {Promise} */ public async isErc20Deployer(nftAddress: string, address: string): Promise { const nftContract = setContractDefaults( From 3f71d957668c123c883811f9a2da3bc95930dbd3 Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Mon, 6 Jun 2022 10:02:00 +0200 Subject: [PATCH 26/44] remove unused factory721Abi property --- src/contracts/tokens/NFT.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/contracts/tokens/NFT.ts b/src/contracts/tokens/NFT.ts index e926eaf2..4cc19f25 100644 --- a/src/contracts/tokens/NFT.ts +++ b/src/contracts/tokens/NFT.ts @@ -15,7 +15,6 @@ import { Config, ConfigHelper } from '../../config' export class Nft { public factory721Address: string - public factory721Abi: AbiItem | AbiItem[] public nftAbi: AbiItem | AbiItem[] public web3: Web3 public startBlock: number From 4dcb8a72efbd58a05ef8c1524ef3624d98152c94 Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Mon, 6 Jun 2022 10:03:18 +0200 Subject: [PATCH 27/44] remove unused oceanAddress parameter --- src/contracts/pools/FixedRateExchange.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/contracts/pools/FixedRateExchange.ts b/src/contracts/pools/FixedRateExchange.ts index c5d28c41..ef1217b7 100644 --- a/src/contracts/pools/FixedRateExchange.ts +++ b/src/contracts/pools/FixedRateExchange.ts @@ -17,7 +17,6 @@ import { PriceAndFees, FeesInfo, FixedPriceExchange } from '../../@types' export class FixedRateExchange { /** Ocean related functions */ - public oceanAddress: string = null public fixedRateAddress: string public fixedRateExchangeAbi: AbiItem | AbiItem[] public web3: Web3 @@ -36,14 +35,12 @@ export class FixedRateExchange { fixedRateAddress: string, network?: string | number, fixedRateExchangeAbi: AbiItem | AbiItem[] = null, - oceanAddress: string = null, config?: Config ) { this.web3 = web3 this.config = config || new ConfigHelper().getConfig(network || 'unknown') this.fixedRateExchangeAbi = fixedRateExchangeAbi || (defaultFixedRateExchangeAbi.abi as AbiItem[]) - this.oceanAddress = oceanAddress this.fixedRateAddress = fixedRateAddress this.fixedRateContract = setContractDefaults( new this.web3.eth.Contract(this.fixedRateExchangeAbi, this.fixedRateAddress), From d23c1d1b05081105e8fb41e5333a30075185029e Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Mon, 6 Jun 2022 10:04:39 +0200 Subject: [PATCH 28/44] remove unused oceanAddress parameter --- src/contracts/tokens/Datatoken.ts | 1 - .../pools/fixedRate/FixedRateExchange.test.ts | 16 ++-------------- 2 files changed, 2 insertions(+), 15 deletions(-) diff --git a/src/contracts/tokens/Datatoken.ts b/src/contracts/tokens/Datatoken.ts index 962937b4..26d8b9f3 100644 --- a/src/contracts/tokens/Datatoken.ts +++ b/src/contracts/tokens/Datatoken.ts @@ -28,7 +28,6 @@ import { Config, ConfigHelper } from '../../config' export class Datatoken { public factoryAddress: string - public factoryABI: AbiItem | AbiItem[] public datatokensAbi: AbiItem | AbiItem[] public datatokensEnterpriseAbi: AbiItem | AbiItem[] public web3: Web3 diff --git a/test/unit/pools/fixedRate/FixedRateExchange.test.ts b/test/unit/pools/fixedRate/FixedRateExchange.test.ts index dba2b639..6d09be46 100644 --- a/test/unit/pools/fixedRate/FixedRateExchange.test.ts +++ b/test/unit/pools/fixedRate/FixedRateExchange.test.ts @@ -100,13 +100,7 @@ describe('Fixed Rate unit test', () => { // user1 has no dt1 expect(await balance(web3, dtAddress, user1)).to.equal('0') - fixedRate = new FixedRateExchange( - web3, - contracts.fixedRateAddress, - 8996, - null, - contracts.oceanAddress - ) + fixedRate = new FixedRateExchange(web3, contracts.fixedRateAddress, 8996) assert(fixedRate != null) }) @@ -415,13 +409,7 @@ describe('Fixed Rate unit test', () => { // user1 has no dt1 expect(await balance(web3, dtAddress, user1)).to.equal('0') - fixedRate = new FixedRateExchange( - web3, - contracts.fixedRateAddress, - 8996, - null, - contracts.oceanAddress - ) + fixedRate = new FixedRateExchange(web3, contracts.fixedRateAddress, 8996) assert(fixedRate != null) }) From 1d92f06108d5c4ff57d0c9b4b49bf41bce92a16b Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Mon, 6 Jun 2022 14:49:46 +0200 Subject: [PATCH 29/44] console log to find issue --- test/integration/ComputeFlow.test.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/test/integration/ComputeFlow.test.ts b/test/integration/ComputeFlow.test.ts index aa494b08..f7e7814f 100644 --- a/test/integration/ComputeFlow.test.ts +++ b/test/integration/ComputeFlow.test.ts @@ -428,6 +428,12 @@ describe('Simple compute tests', async () => { serviceId: resolvedAlgoDdoWith1mTimeout.services[0].id } + console.log('assets', assets) + console.log('algo', algo) + console.log('computeEnv', computeEnv) + console.log('computeValidUntil', computeValidUntil) + console.log('providerUrl', providerUrl) + console.log('consumerAccount', consumerAccount) providerInitializeComputeResults = await ProviderInstance.initializeCompute( assets, algo, @@ -436,6 +442,7 @@ describe('Simple compute tests', async () => { providerUrl, consumerAccount ) + console.log(providerInitializeComputeResults) assert( !('error' in providerInitializeComputeResults.algorithm), 'Cannot order algorithm' From d065a778f4be704f018b835294a39008e4bc4b86 Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Mon, 6 Jun 2022 15:05:01 +0200 Subject: [PATCH 30/44] console log to find issue --- test/integration/ComputeFlow.test.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/test/integration/ComputeFlow.test.ts b/test/integration/ComputeFlow.test.ts index f7e7814f..6a801b90 100644 --- a/test/integration/ComputeFlow.test.ts +++ b/test/integration/ComputeFlow.test.ts @@ -447,6 +447,16 @@ describe('Simple compute tests', async () => { !('error' in providerInitializeComputeResults.algorithm), 'Cannot order algorithm' ) + console.log( + 'providerInitializeComputeResults.algorithm', + providerInitializeComputeResults.algorithm + ) + console.log( + 'resolvedAlgoDdoWith1mTimeout.services[0].datatokenAddress', + resolvedAlgoDdoWith1mTimeout.services[0].datatokenAddress + ) + console.log('consumerAccount', consumerAccount) + console.log('computeConsumerAddress', computeConsumerAddress) algo.transferTxId = await handleOrder( providerInitializeComputeResults.algorithm, resolvedAlgoDdoWith1mTimeout.services[0].datatokenAddress, @@ -463,6 +473,12 @@ describe('Simple compute tests', async () => { 0 ) } + console.log('algo.transferTxId', algo.transferTxId) + console.log('providerUrl', providerUrl) + console.log('consumerAccount', consumerAccount) + console.log('computeEnv', computeEnv) + console.log('assets[0]', assets[0]) + console.log('algo', algo) const computeJobs = await ProviderInstance.computeStart( providerUrl, web3, @@ -471,6 +487,7 @@ describe('Simple compute tests', async () => { assets[0], algo ) + console.log('computeJobs', computeJobs) assert(computeJobs, 'Cannot start compute job') computeJobId = computeJobs[0].jobId }) From 8f3635ee6101b99d66b0723d8e1a67c638c1b092 Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Mon, 6 Jun 2022 16:23:01 +0200 Subject: [PATCH 31/44] revert console log to find issue --- test/integration/ComputeFlow.test.ts | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/test/integration/ComputeFlow.test.ts b/test/integration/ComputeFlow.test.ts index 6a801b90..aa494b08 100644 --- a/test/integration/ComputeFlow.test.ts +++ b/test/integration/ComputeFlow.test.ts @@ -428,12 +428,6 @@ describe('Simple compute tests', async () => { serviceId: resolvedAlgoDdoWith1mTimeout.services[0].id } - console.log('assets', assets) - console.log('algo', algo) - console.log('computeEnv', computeEnv) - console.log('computeValidUntil', computeValidUntil) - console.log('providerUrl', providerUrl) - console.log('consumerAccount', consumerAccount) providerInitializeComputeResults = await ProviderInstance.initializeCompute( assets, algo, @@ -442,21 +436,10 @@ describe('Simple compute tests', async () => { providerUrl, consumerAccount ) - console.log(providerInitializeComputeResults) assert( !('error' in providerInitializeComputeResults.algorithm), 'Cannot order algorithm' ) - console.log( - 'providerInitializeComputeResults.algorithm', - providerInitializeComputeResults.algorithm - ) - console.log( - 'resolvedAlgoDdoWith1mTimeout.services[0].datatokenAddress', - resolvedAlgoDdoWith1mTimeout.services[0].datatokenAddress - ) - console.log('consumerAccount', consumerAccount) - console.log('computeConsumerAddress', computeConsumerAddress) algo.transferTxId = await handleOrder( providerInitializeComputeResults.algorithm, resolvedAlgoDdoWith1mTimeout.services[0].datatokenAddress, @@ -473,12 +456,6 @@ describe('Simple compute tests', async () => { 0 ) } - console.log('algo.transferTxId', algo.transferTxId) - console.log('providerUrl', providerUrl) - console.log('consumerAccount', consumerAccount) - console.log('computeEnv', computeEnv) - console.log('assets[0]', assets[0]) - console.log('algo', algo) const computeJobs = await ProviderInstance.computeStart( providerUrl, web3, @@ -487,7 +464,6 @@ describe('Simple compute tests', async () => { assets[0], algo ) - console.log('computeJobs', computeJobs) assert(computeJobs, 'Cannot start compute job') computeJobId = computeJobs[0].jobId }) From 13e66b1fae9b03cc5f3a123b93d8d2b3eba0f4e2 Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Mon, 6 Jun 2022 17:02:04 +0200 Subject: [PATCH 32/44] console log to find issue --- test/integration/ComputeFlow.test.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/test/integration/ComputeFlow.test.ts b/test/integration/ComputeFlow.test.ts index aa494b08..f7e7814f 100644 --- a/test/integration/ComputeFlow.test.ts +++ b/test/integration/ComputeFlow.test.ts @@ -428,6 +428,12 @@ describe('Simple compute tests', async () => { serviceId: resolvedAlgoDdoWith1mTimeout.services[0].id } + console.log('assets', assets) + console.log('algo', algo) + console.log('computeEnv', computeEnv) + console.log('computeValidUntil', computeValidUntil) + console.log('providerUrl', providerUrl) + console.log('consumerAccount', consumerAccount) providerInitializeComputeResults = await ProviderInstance.initializeCompute( assets, algo, @@ -436,6 +442,7 @@ describe('Simple compute tests', async () => { providerUrl, consumerAccount ) + console.log(providerInitializeComputeResults) assert( !('error' in providerInitializeComputeResults.algorithm), 'Cannot order algorithm' From 7d21fc195bd18404d695c5c16c1b7a8a3b7fe362 Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Mon, 6 Jun 2022 17:16:30 +0200 Subject: [PATCH 33/44] console log to find issue --- test/integration/ComputeFlow.test.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/test/integration/ComputeFlow.test.ts b/test/integration/ComputeFlow.test.ts index f7e7814f..6a801b90 100644 --- a/test/integration/ComputeFlow.test.ts +++ b/test/integration/ComputeFlow.test.ts @@ -447,6 +447,16 @@ describe('Simple compute tests', async () => { !('error' in providerInitializeComputeResults.algorithm), 'Cannot order algorithm' ) + console.log( + 'providerInitializeComputeResults.algorithm', + providerInitializeComputeResults.algorithm + ) + console.log( + 'resolvedAlgoDdoWith1mTimeout.services[0].datatokenAddress', + resolvedAlgoDdoWith1mTimeout.services[0].datatokenAddress + ) + console.log('consumerAccount', consumerAccount) + console.log('computeConsumerAddress', computeConsumerAddress) algo.transferTxId = await handleOrder( providerInitializeComputeResults.algorithm, resolvedAlgoDdoWith1mTimeout.services[0].datatokenAddress, @@ -463,6 +473,12 @@ describe('Simple compute tests', async () => { 0 ) } + console.log('algo.transferTxId', algo.transferTxId) + console.log('providerUrl', providerUrl) + console.log('consumerAccount', consumerAccount) + console.log('computeEnv', computeEnv) + console.log('assets[0]', assets[0]) + console.log('algo', algo) const computeJobs = await ProviderInstance.computeStart( providerUrl, web3, @@ -471,6 +487,7 @@ describe('Simple compute tests', async () => { assets[0], algo ) + console.log('computeJobs', computeJobs) assert(computeJobs, 'Cannot start compute job') computeJobId = computeJobs[0].jobId }) From b89a1219971805a4f5af4b7998a405dd36fb792e Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Mon, 6 Jun 2022 17:20:13 +0200 Subject: [PATCH 34/44] add abstract SmartContract classes --- src/contracts/SmartContract.ts | 46 +++++++++++++++++++++++ src/contracts/SmartContractWithAddress.ts | 34 +++++++++++++++++ src/contracts/index.ts | 2 + 3 files changed, 82 insertions(+) create mode 100644 src/contracts/SmartContract.ts create mode 100644 src/contracts/SmartContractWithAddress.ts diff --git a/src/contracts/SmartContract.ts b/src/contracts/SmartContract.ts new file mode 100644 index 00000000..fb3114a0 --- /dev/null +++ b/src/contracts/SmartContract.ts @@ -0,0 +1,46 @@ +import Web3 from 'web3' +import { AbiItem } from 'web3-utils' +import { Config, ConfigHelper } from '../config' +import { amountToUnits, unitsToAmount } from '../utils' + +export abstract class SmartContract { + public web3: Web3 + public config: Config + public abi: AbiItem | AbiItem[] + + abstract getDefaultAbi(): AbiItem | AbiItem[] + + /** + * Instantiate the smart contract. + * @param {Web3} web3 + * @param {string | number} network Network id or name + * @param {Config} config Configutation of the smart contract + * @param {AbiItem | AbiItem[]} abi ABI of the smart contract + */ + constructor( + web3: Web3, + network?: string | number, + config?: Config, + abi?: AbiItem | AbiItem[] + ) { + this.web3 = web3 + this.config = config || new ConfigHelper().getConfig(network || 'unknown') + this.abi = abi || (this.getDefaultAbi() as AbiItem[]) + } + + async amountToUnits( + token: string, + amount: string, + tokenDecimals?: number + ): Promise { + return amountToUnits(this.web3, token, amount, tokenDecimals) + } + + async unitsToAmount( + token: string, + amount: string, + tokenDecimals?: number + ): Promise { + return unitsToAmount(this.web3, token, amount, tokenDecimals) + } +} diff --git a/src/contracts/SmartContractWithAddress.ts b/src/contracts/SmartContractWithAddress.ts new file mode 100644 index 00000000..a1f56392 --- /dev/null +++ b/src/contracts/SmartContractWithAddress.ts @@ -0,0 +1,34 @@ +import Web3 from 'web3' +import { Contract } from 'web3-eth-contract' +import { AbiItem } from 'web3-utils' +import { Config } from '../config' +import { setContractDefaults } from '../utils' +import { SmartContract } from '.' + +export abstract class SmartContractWithAddress extends SmartContract { + public address: string + public contract: Contract + + /** + * Instantiate the smart contract. + * @param {string} address Address of the smart contract + * @param {Web3} web3 + * @param {string | number} network Network id or name + * @param {Config} config Configutation of the smart contract + * @param {AbiItem | AbiItem[]} abi ABI of the smart contract + */ + constructor( + address: string, + web3: Web3, + network?: string | number, + config?: Config, + abi?: AbiItem | AbiItem[] + ) { + super(web3, network, config, abi) + this.address = address + this.contract = setContractDefaults( + new this.web3.eth.Contract(this.getDefaultAbi(), this.address), + this.config + ) + } +} diff --git a/src/contracts/index.ts b/src/contracts/index.ts index bef542cb..3d516a73 100644 --- a/src/contracts/index.ts +++ b/src/contracts/index.ts @@ -1,3 +1,5 @@ +export * from './SmartContract' +export * from './SmartContractWithAddress' export * from './factories/NFTFactory' export * from './pools/Dispenser' export * from './pools/FixedRateExchange' From 3b5621893523e4eab857d7900f8856b029c44ede Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Mon, 6 Jun 2022 17:28:43 +0200 Subject: [PATCH 35/44] inherit NFT from SmartContract --- src/contracts/tokens/NFT.ts | 145 +++++++++++------------------------- 1 file changed, 43 insertions(+), 102 deletions(-) diff --git a/src/contracts/tokens/NFT.ts b/src/contracts/tokens/NFT.ts index 4cc19f25..3f51b16b 100644 --- a/src/contracts/tokens/NFT.ts +++ b/src/contracts/tokens/NFT.ts @@ -1,7 +1,6 @@ -import Web3 from 'web3' import { AbiItem } from 'web3-utils' import { TransactionReceipt } from 'web3-eth' -import defaultNftAbi from '@oceanprotocol/contracts/artifacts/contracts/templates/ERC721Template.sol/ERC721Template.json' +import ERC721Template from '@oceanprotocol/contracts/artifacts/contracts/templates/ERC721Template.sol/ERC721Template.json' import { LoggerInstance, getFairGasPrice, @@ -11,24 +10,11 @@ import { } from '../../utils' import { Contract } from 'web3-eth-contract' import { MetadataProof, MetadataAndTokenURI, NftRoles } from '../../@types' -import { Config, ConfigHelper } from '../../config' +import { SmartContract } from '../SmartContract' -export class Nft { - public factory721Address: string - public nftAbi: AbiItem | AbiItem[] - public web3: Web3 - public startBlock: number - public config: Config - - constructor( - web3: Web3, - network?: string | number, - nftAbi?: AbiItem | AbiItem[], - config?: Config - ) { - this.nftAbi = nftAbi || (defaultNftAbi.abi as AbiItem[]) - this.web3 = web3 - this.config = config || new ConfigHelper().getConfig(network || 'unknown') +export class Nft extends SmartContract { + getDefaultAbi(): AbiItem | AbiItem[] { + return ERC721Template.abi as AbiItem[] } /** @@ -63,10 +49,7 @@ export class Nft { ): Promise { const nftContract = contractInstance || - setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), - this.config - ) + setContractDefaults(new this.web3.eth.Contract(this.abi, nftAddress), this.config) return estimateGas( address, nftContract.methods.createERC20, @@ -118,7 +101,7 @@ export class Nft { // Create 721contract object const nftContract = setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), + new this.web3.eth.Contract(this.abi, nftAddress), this.config ) @@ -172,10 +155,7 @@ export class Nft { ) { const nftContract = contractInstance || - setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), - this.config - ) + setContractDefaults(new this.web3.eth.Contract(this.abi, nftAddress), this.config) return estimateGas(address, nftContract.methods.addManager, manager) } @@ -189,7 +169,7 @@ export class Nft { */ public async addManager(nftAddress: string, address: string, manager: string) { const nftContract = setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), + new this.web3.eth.Contract(this.abi, nftAddress), this.config ) @@ -225,10 +205,7 @@ export class Nft { ) { const nftContract = contractInstance || - setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), - this.config - ) + setContractDefaults(new this.web3.eth.Contract(this.abi, nftAddress), this.config) return estimateGas(address, nftContract.methods.removeManager, manager) } @@ -241,7 +218,7 @@ export class Nft { */ public async removeManager(nftAddress: string, address: string, manager: string) { const nftContract = setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), + new this.web3.eth.Contract(this.abi, nftAddress), this.config ) @@ -277,10 +254,7 @@ export class Nft { ): Promise { const nftContract = contractInstance || - setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), - this.config - ) + setContractDefaults(new this.web3.eth.Contract(this.abi, nftAddress), this.config) return estimateGas(address, nftContract.methods.addToCreateERC20List, erc20Deployer) } @@ -297,7 +271,7 @@ export class Nft { erc20Deployer: string ): Promise { const nftContract = setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), + new this.web3.eth.Contract(this.abi, nftAddress), this.config ) @@ -340,10 +314,7 @@ export class Nft { ): Promise { const nftContract = contractInstance || - setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), - this.config - ) + setContractDefaults(new this.web3.eth.Contract(this.abi, nftAddress), this.config) return estimateGas( address, @@ -365,7 +336,7 @@ export class Nft { erc20Deployer: string ): Promise { const nftContract = setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), + new this.web3.eth.Contract(this.abi, nftAddress), this.config ) @@ -410,10 +381,7 @@ export class Nft { ): Promise { const nftContract = contractInstance || - setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), - this.config - ) + setContractDefaults(new this.web3.eth.Contract(this.abi, nftAddress), this.config) return estimateGas(address, nftContract.methods.addToMetadataList, metadataUpdater) } @@ -431,7 +399,7 @@ export class Nft { metadataUpdater: string ): Promise { const nftContract = setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), + new this.web3.eth.Contract(this.abi, nftAddress), this.config ) @@ -471,10 +439,7 @@ export class Nft { ): Promise { const nftContract = contractInstance || - setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), - this.config - ) + setContractDefaults(new this.web3.eth.Contract(this.abi, nftAddress), this.config) return estimateGas( address, @@ -496,7 +461,7 @@ export class Nft { metadataUpdater: string ): Promise { const nftContract = setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), + new this.web3.eth.Contract(this.abi, nftAddress), this.config ) @@ -543,10 +508,7 @@ export class Nft { ): Promise { const nftContract = contractInstance || - setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), - this.config - ) + setContractDefaults(new this.web3.eth.Contract(this.abi, nftAddress), this.config) return estimateGas(address, nftContract.methods.addTo725StoreList, storeUpdater) } @@ -564,7 +526,7 @@ export class Nft { storeUpdater: string ): Promise { const nftContract = setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), + new this.web3.eth.Contract(this.abi, nftAddress), this.config ) @@ -604,10 +566,7 @@ export class Nft { ): Promise { const nftContract = contractInstance || - setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), - this.config - ) + setContractDefaults(new this.web3.eth.Contract(this.abi, nftAddress), this.config) return estimateGas(address, nftContract.methods.removeFrom725StoreList, storeUpdater) } @@ -625,7 +584,7 @@ export class Nft { storeUpdater: string ): Promise { const nftContract = setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), + new this.web3.eth.Contract(this.abi, nftAddress), this.config ) @@ -669,10 +628,7 @@ export class Nft { ): Promise { const nftContract = contractInstance || - setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), - this.config - ) + setContractDefaults(new this.web3.eth.Contract(this.abi, nftAddress), this.config) return estimateGas(address, nftContract.methods.cleanPermissions) } @@ -692,7 +648,7 @@ export class Nft { address: string ): Promise { const nftContract = setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), + new this.web3.eth.Contract(this.abi, nftAddress), this.config ) @@ -730,10 +686,7 @@ export class Nft { ): Promise { const nftContract = contractInstance || - setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), - this.config - ) + setContractDefaults(new this.web3.eth.Contract(this.abi, nftAddress), this.config) return estimateGas( nftOwner, @@ -760,7 +713,7 @@ export class Nft { tokenId?: number ): Promise { const nftContract = setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), + new this.web3.eth.Contract(this.abi, nftAddress), this.config ) @@ -808,10 +761,7 @@ export class Nft { ): Promise { const nftContract = contractInstance || - setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), - this.config - ) + setContractDefaults(new this.web3.eth.Contract(this.abi, nftAddress), this.config) return estimateGas( nftOwner, @@ -838,7 +788,7 @@ export class Nft { tokenId?: number ): Promise { const nftContract = setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), + new this.web3.eth.Contract(this.abi, nftAddress), this.config ) @@ -893,10 +843,7 @@ export class Nft { ): Promise { const nftContract = contractInstance || - setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), - this.config - ) + setContractDefaults(new this.web3.eth.Contract(this.abi, nftAddress), this.config) if (!metadataProofs) metadataProofs = [] return estimateGas( metadataUpdater, @@ -930,7 +877,7 @@ export class Nft { metadataProofs?: MetadataProof[] ): Promise { const nftContract = setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), + new this.web3.eth.Contract(this.abi, nftAddress), this.config ) if (!metadataProofs) metadataProofs = [] @@ -983,10 +930,7 @@ export class Nft { ): Promise { const nftContract = contractInstance || - setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), - this.config - ) + setContractDefaults(new this.web3.eth.Contract(this.abi, nftAddress), this.config) const sanitizedMetadataAndTokenURI = { ...metadataAndTokenURI, metadataProofs: metadataAndTokenURI.metadataProofs || [] @@ -1011,7 +955,7 @@ export class Nft { metadataAndTokenURI: MetadataAndTokenURI ): Promise { const nftContract = setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), + new this.web3.eth.Contract(this.abi, nftAddress), this.config ) if (!(await this.getNftPermissions(nftAddress, metadataUpdater)).updateMetadata) { @@ -1053,10 +997,7 @@ export class Nft { ): Promise { const nftContract = contractInstance || - setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), - this.config - ) + setContractDefaults(new this.web3.eth.Contract(this.abi, nftAddress), this.config) return estimateGas( metadataUpdater, @@ -1078,7 +1019,7 @@ export class Nft { metadataState: number ): Promise { const nftContract = setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), + new this.web3.eth.Contract(this.abi, nftAddress), this.config ) @@ -1114,7 +1055,7 @@ export class Nft { data: string ): Promise { const nftContract = setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), + new this.web3.eth.Contract(this.abi, nftAddress), this.config ) @@ -1133,7 +1074,7 @@ export class Nft { data: string ): Promise { const nftContract = setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), + new this.web3.eth.Contract(this.abi, nftAddress), this.config ) @@ -1152,7 +1093,7 @@ export class Nft { */ public async getNftOwner(nftAddress: string): Promise { const nftContract = setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), + new this.web3.eth.Contract(this.abi, nftAddress), this.config ) const trxReceipt = await nftContract.methods.ownerOf(1).call() @@ -1166,7 +1107,7 @@ export class Nft { */ public async getNftPermissions(nftAddress: string, address: string): Promise { const nftContract = setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), + new this.web3.eth.Contract(this.abi, nftAddress), this.config ) const roles = await nftContract.methods.getPermissions(address).call() @@ -1179,7 +1120,7 @@ export class Nft { */ public async getMetadata(nftAddress: string): Promise { const nftContract = setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), + new this.web3.eth.Contract(this.abi, nftAddress), this.config ) return await nftContract.methods.getMetaData().call() @@ -1192,7 +1133,7 @@ export class Nft { */ public async isErc20Deployer(nftAddress: string, address: string): Promise { const nftContract = setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), + new this.web3.eth.Contract(this.abi, nftAddress), this.config ) const isERC20Deployer = await nftContract.methods.isERC20Deployer(address).call() @@ -1206,7 +1147,7 @@ export class Nft { */ public async getData(nftAddress: string, key: string): Promise { const nftContract = setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), + new this.web3.eth.Contract(this.abi, nftAddress), this.config ) const data = await nftContract.methods.getData(key).call() @@ -1220,7 +1161,7 @@ export class Nft { */ public async getTokenURI(nftAddress: string, id: number): Promise { const nftContract = setContractDefaults( - new this.web3.eth.Contract(this.nftAbi, nftAddress), + new this.web3.eth.Contract(this.abi, nftAddress), this.config ) const data = await nftContract.methods.tokenURI(id).call() From 4515f938e2ec91a4e2c292290db90fa7f8109b15 Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Mon, 6 Jun 2022 17:29:24 +0200 Subject: [PATCH 36/44] revert console log to find issue --- test/integration/ComputeFlow.test.ts | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/test/integration/ComputeFlow.test.ts b/test/integration/ComputeFlow.test.ts index 6a801b90..aa494b08 100644 --- a/test/integration/ComputeFlow.test.ts +++ b/test/integration/ComputeFlow.test.ts @@ -428,12 +428,6 @@ describe('Simple compute tests', async () => { serviceId: resolvedAlgoDdoWith1mTimeout.services[0].id } - console.log('assets', assets) - console.log('algo', algo) - console.log('computeEnv', computeEnv) - console.log('computeValidUntil', computeValidUntil) - console.log('providerUrl', providerUrl) - console.log('consumerAccount', consumerAccount) providerInitializeComputeResults = await ProviderInstance.initializeCompute( assets, algo, @@ -442,21 +436,10 @@ describe('Simple compute tests', async () => { providerUrl, consumerAccount ) - console.log(providerInitializeComputeResults) assert( !('error' in providerInitializeComputeResults.algorithm), 'Cannot order algorithm' ) - console.log( - 'providerInitializeComputeResults.algorithm', - providerInitializeComputeResults.algorithm - ) - console.log( - 'resolvedAlgoDdoWith1mTimeout.services[0].datatokenAddress', - resolvedAlgoDdoWith1mTimeout.services[0].datatokenAddress - ) - console.log('consumerAccount', consumerAccount) - console.log('computeConsumerAddress', computeConsumerAddress) algo.transferTxId = await handleOrder( providerInitializeComputeResults.algorithm, resolvedAlgoDdoWith1mTimeout.services[0].datatokenAddress, @@ -473,12 +456,6 @@ describe('Simple compute tests', async () => { 0 ) } - console.log('algo.transferTxId', algo.transferTxId) - console.log('providerUrl', providerUrl) - console.log('consumerAccount', consumerAccount) - console.log('computeEnv', computeEnv) - console.log('assets[0]', assets[0]) - console.log('algo', algo) const computeJobs = await ProviderInstance.computeStart( providerUrl, web3, @@ -487,7 +464,6 @@ describe('Simple compute tests', async () => { assets[0], algo ) - console.log('computeJobs', computeJobs) assert(computeJobs, 'Cannot start compute job') computeJobId = computeJobs[0].jobId }) From c09a48fa728bbfe7ad17081b10f6e2c414d74b7c Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Mon, 6 Jun 2022 17:33:01 +0200 Subject: [PATCH 37/44] inherit NFTFactory from SmartContract --- src/contracts/factories/NFTFactory.ts | 141 ++++++++++---------------- src/contracts/tokens/NFT.ts | 2 +- 2 files changed, 55 insertions(+), 88 deletions(-) diff --git a/src/contracts/factories/NFTFactory.ts b/src/contracts/factories/NFTFactory.ts index f4e0ef69..4a69f7a1 100644 --- a/src/contracts/factories/NFTFactory.ts +++ b/src/contracts/factories/NFTFactory.ts @@ -1,8 +1,7 @@ -import { Contract } from 'web3-eth-contract' import Web3 from 'web3' import { TransactionReceipt } from 'web3-core' import { AbiItem } from 'web3-utils' -import defaultFactory721Abi from '@oceanprotocol/contracts/artifacts/contracts/ERC721Factory.sol/ERC721Factory.json' +import ERC721Factory from '@oceanprotocol/contracts/artifacts/contracts/ERC721Factory.sol/ERC721Factory.json' import { LoggerInstance, getFairGasPrice, @@ -10,11 +9,9 @@ import { getFreCreationParams, getErcCreationParams, getPoolCreationParams, - setContractDefaults, estimateGas, ZERO_ADDRESS } from '../../utils' -import { Config, ConfigHelper } from '../../config' import { FreCreationParams, Erc20CreateParams, @@ -24,38 +21,14 @@ import { Template, TokenOrder } from '../../@types' +import { SmartContractWithAddress } from '..' /** * Provides an interface for NFT Factory contract */ -export class NftFactory { - public factory721Address: string - public factory721Abi: AbiItem | AbiItem[] - public web3: Web3 - public config: Config - public factory721: Contract - - /** - * Instantiate Datatokens. - * @param {String} factory721Address - * @param {AbiItem | AbiItem[]} factory721ABI - * @param {Web3} web3 - */ - constructor( - factory721Address: string, - web3: Web3, - network?: string | number, - factory721Abi?: AbiItem | AbiItem[], - config?: Config - ) { - this.factory721Address = factory721Address - this.factory721Abi = factory721Abi || (defaultFactory721Abi.abi as AbiItem[]) - this.web3 = web3 - this.config = config || new ConfigHelper().getConfig(network || 'unknown') - this.factory721 = setContractDefaults( - new this.web3.eth.Contract(this.factory721Abi, this.factory721Address), - this.config - ) +export class NftFactory extends SmartContractWithAddress { + getDefaultAbi(): AbiItem | AbiItem[] { + return ERC721Factory.abi as AbiItem[] } /** @@ -67,7 +40,7 @@ export class NftFactory { public async estGasCreateNFT(address: string, nftData: NftCreateData): Promise { return estimateGas( address, - this.factory721.methods.deployERC721Contract, + this.contract.methods.deployERC721Contract, nftData.name, nftData.symbol, nftData.templateIndex, @@ -105,7 +78,7 @@ export class NftFactory { } const estGas = await estimateGas( address, - this.factory721.methods.deployERC721Contract, + this.contract.methods.deployERC721Contract, nftData.name, nftData.symbol, nftData.templateIndex, @@ -117,7 +90,7 @@ export class NftFactory { ) // Invoke createToken function of the contract - const trxReceipt = await this.factory721.methods + const trxReceipt = await this.contract.methods .deployERC721Contract( nftData.name, nftData.symbol, @@ -147,7 +120,7 @@ export class NftFactory { * @return {Promise} Number of NFT created from this factory */ public async getCurrentNFTCount(): Promise { - const trxReceipt = await this.factory721.methods.getCurrentNFTCount().call() + const trxReceipt = await this.contract.methods.getCurrentNFTCount().call() return trxReceipt } @@ -155,7 +128,7 @@ export class NftFactory { * @return {Promise} Number of DTs created from this factory */ public async getCurrentTokenCount(): Promise { - const trxReceipt = await this.factory721.methods.getCurrentTokenCount().call() + const trxReceipt = await this.contract.methods.getCurrentTokenCount().call() return trxReceipt } @@ -163,7 +136,7 @@ export class NftFactory { * @return {Promise} Factory Owner address */ public async getOwner(): Promise { - const trxReceipt = await this.factory721.methods.owner().call() + const trxReceipt = await this.contract.methods.owner().call() return trxReceipt } @@ -171,7 +144,7 @@ export class NftFactory { * @return {Promise} Number of NFT Template added to this factory */ public async getCurrentNFTTemplateCount(): Promise { - const count = await this.factory721.methods.getCurrentNFTTemplateCount().call() + const count = await this.contract.methods.getCurrentNFTTemplateCount().call() return count } @@ -179,7 +152,7 @@ export class NftFactory { * @return {Promise} Number of ERC20 Template added to this factory */ public async getCurrentTokenTemplateCount(): Promise { - const count = await this.factory721.methods.getCurrentTemplateCount().call() + const count = await this.contract.methods.getCurrentTemplateCount().call() return count } @@ -195,7 +168,7 @@ export class NftFactory { if (index === 0) { throw new Error(`Template index cannot be ZERO`) } - const template = await this.factory721.methods.getNFTTemplate(index).call() + const template = await this.contract.methods.getNFTTemplate(index).call() return template } @@ -204,7 +177,7 @@ export class NftFactory { * @return {Promise