* add ethers * global updates * ve updates * ve tests * contract updates * first test passing * downgrade to ethers 5.7.2 * add log * add tx wait * full NftFactory.test * add wait * add Router tests * fix dispenser * Nft test * add dispenser tests * add fre tests part 1 * WIP datatoken unit tests * add DFRewards test * increase gas estimate * increase gas estimate * Work datatoken unit tests * datatoken test more tests * finished datatoken tests * fix nft get data * fix nft transfer tests * Provider int tests * Updating CodeExamples.md * update provider & fix publish flow int test * wip publish edit consume integration test * more work on publish edit consume integration test * fix edit publish edit consume integration test * add 3 int tests * Updating ComputeExamples.md * fix signature and download * fix compute flow integration test * udapte handleComputeOrder helper * update datatoken instance * update datatoken global variable * mint ocean tokens to consumer as well and added logs * update compute exammples * Updating ComputeExamples.md * wip code examples readme * update code examples readme * Updating CodeExamples.md * run all tests * update dep in readme * update readme * code examples update metadata flags * update dt instance in code examples md * set metadata updates * Updating CodeExamples.md * update code examples readme structure * Updating CodeExamples.md * update readmes table links * Updating CodeExamples.md * Updating ComputeExamples.md * clean-up * Updating CodeExamples.md * added missing unit tests for usdc fixed rate exchange tests * more cleanup and jsdoc updates * more jsdoc updates * donw with jsdoc updates * handle provider errors * add missing error handling file * adds most of the provider errors * update get compute env return type * Release 3.0.0-next.0 * adding Typedoc to ethers branch * update provider signature message * fix lint * Release 3.0.0-next.1 * fix lint * adding Typedoc to ethers branch * Updating CI to build and commit the documentation * Updating documentation * Updating script permissions * fix todos add missing logic to send tx * npm package cleanups * Release 3.0.0-next.2 * update log messages for errors * Release 3.0.0-next.3 * fix gasFee issue on sendTx * Release 3.0.0-next.4 * add consume params typings (#1731) * fix gas fee estimate * remove comments * add some delays before resolving datasets * adds delay to Publish flow tests * Release 3.0.0-next.5 --------- Co-authored-by: Bogdan Fazakas <bogdan.fazakas@gmail.com> Co-authored-by: GitHub Actions Bot <> Co-authored-by: Jamie Hewitt <jamie.hewitt15@gmail.com> Co-authored-by: Jamie Hewitt <jamie@oceanprotocol.com>
22 KiB
@oceanprotocol/lib / Exports / NftFactory
Class: NftFactory
Provides an interface for NFT Factory contract
Hierarchy
-
↳
NftFactory
Table of contents
Constructors
Properties
Methods
- addNFTTemplate
- addTokenTemplate
- amountToUnits
- checkDatatoken
- checkNFT
- createNFT
- createNftWithDatatoken
- createNftWithDatatokenWithDispenser
- createNftWithDatatokenWithFixedRate
- disableNFTTemplate
- disableTokenTemplate
- getContract
- getCurrentNFTCount
- getCurrentNFTTemplateCount
- getCurrentTokenCount
- getCurrentTokenTemplateCount
- getDefaultAbi
- getErcCreationParams
- getFairGasPrice
- getFreCreationParams
- getNFTTemplate
- getOwner
- getTokenTemplate
- reactivateNFTTemplate
- reactivateTokenTemplate
- startMultipleTokenOrder
- unitsToAmount
Constructors
constructor
• new NftFactory(address
, signer
, network?
, config?
, abi?
)
Instantiate the smart contract.
Parameters
Name | Type | Description |
---|---|---|
address |
string |
The address of the contract. |
signer |
Signer |
The signer object. |
network? |
string | number |
Network id or name |
config? |
Config |
The configuration object. |
abi? |
AbiItem [] |
ABI array of the smart contract |
Inherited from
SmartContractWithAddress.constructor
Defined in
contracts/SmartContractWithAddress.ts:17
Properties
abi
• abi: AbiItem
[]
Inherited from
Defined in
address
• address: string
Inherited from
SmartContractWithAddress.address
Defined in
contracts/SmartContractWithAddress.ts:6
config
• config: Config
Inherited from
SmartContractWithAddress.config
Defined in
contract
• contract: Contract
Inherited from
SmartContractWithAddress.contract
Defined in
contracts/SmartContractWithAddress.ts:7
signer
• signer: Signer
Inherited from
SmartContractWithAddress.signer
Defined in
Methods
addNFTTemplate
▸ addNFTTemplate<G
>(address
, templateAddress
, estimateGas?
): Promise
<ReceiptOrEstimate
<G
>>
Add a new NFT token template - only factory Owner
Type parameters
Name | Type |
---|---|
G |
extends boolean = false |
Parameters
Name | Type | Description |
---|---|---|
address |
string |
caller address |
templateAddress |
string |
template address to add |
estimateGas? |
G |
if True, return gas estimate |
Returns
Promise
<ReceiptOrEstimate
<G
>>
Defined in
addTokenTemplate
▸ addTokenTemplate<G
>(address
, templateAddress
, estimateGas?
): Promise
<ReceiptOrEstimate
<G
>>
Add a new NFT token template - only factory Owner
Type parameters
Name | Type |
---|---|
G |
extends boolean = false |
Parameters
Name | Type | Description |
---|---|---|
address |
string |
caller address |
templateAddress |
string |
template address to add |
estimateGas? |
G |
if True, return gas estimate |
Returns
Promise
<ReceiptOrEstimate
<G
>>
Defined in
amountToUnits
▸ Protected
amountToUnits(token
, amount
, tokenDecimals?
): Promise
<string
>
Converts an amount of tokens to units
Parameters
Name | Type | Description |
---|---|---|
token |
string |
The token to convert |
amount |
string |
The amount of tokens to convert |
tokenDecimals? |
number |
The number of decimals of the token |
Returns
Promise
<string
>
- The converted amount in units
Inherited from
SmartContractWithAddress.amountToUnits
Defined in
checkDatatoken
▸ checkDatatoken(datatoken
): Promise
<Boolean
>
Check if Datatoken is deployed from the factory
Parameters
Name | Type | Description |
---|---|---|
datatoken |
string |
Datatoken address to check |
Returns
Promise
<Boolean
>
return true if deployed from this factory
Defined in
checkNFT
▸ checkNFT(nftAddress
): Promise
<String
>
Check if NFT is deployed from the factory
Parameters
Name | Type | Description |
---|---|---|
nftAddress |
string |
nftAddress address to check |
Returns
Promise
<String
>
return address(0) if it's not, or the nftAddress if true
Defined in
createNFT
▸ createNFT<G
>(nftData
, estimateGas?
): Promise
<G
extends false
? string
: BigNumber
>
Create new data NFT
Type parameters
Name | Type |
---|---|
G |
extends boolean = false |
Parameters
Name | Type | Description |
---|---|---|
nftData |
NftCreateData |
The data needed to create an NFT. |
estimateGas? |
G |
if True, return gas estimate |
Returns
Promise
<G
extends false
? string
: BigNumber
>
The transaction hash or the gas estimate.
Defined in
createNftWithDatatoken
▸ createNftWithDatatoken<G
>(nftCreateData
, dtParams
, estimateGas?
): Promise
<ReceiptOrEstimate
<G
>>
Creates a new NFT, then a datatoken,all in one call
Type parameters
Name | Type |
---|---|
G |
extends boolean = false |
Parameters
Name | Type | Description |
---|---|---|
nftCreateData |
NftCreateData |
The data required to create an NFT. |
dtParams |
DatatokenCreateParams |
The parameters required to create a datatoken. |
estimateGas? |
G |
Whether to return only estimate gas or not. |
Returns
Promise
<ReceiptOrEstimate
<G
>>
transaction receipt
Defined in
createNftWithDatatokenWithDispenser
▸ createNftWithDatatokenWithDispenser<G
>(nftCreateData
, dtParams
, dispenserParams
, estimateGas?
): Promise
<ReceiptOrEstimate
<G
>>
Creates an NFT with a datatoken with a dispenser in one call. Be aware if Fixed Rate creation fails, you are still going to pay a lot of gas
Type parameters
Name | Type |
---|---|
G |
extends boolean = false |
Parameters
Name | Type | Description |
---|---|---|
nftCreateData |
NftCreateData |
The data required to create an NFT. |
dtParams |
DatatokenCreateParams |
The parameters required to create a datatoken. |
dispenserParams |
DispenserCreationParams |
The parameters required to create a dispenser contract. |
estimateGas? |
G |
Whether to estimate gas or not. |
Returns
Promise
<ReceiptOrEstimate
<G
>>
Defined in
createNftWithDatatokenWithFixedRate
▸ createNftWithDatatokenWithFixedRate<G
>(nftCreateData
, dtParams
, freParams
, estimateGas?
): Promise
<ReceiptOrEstimate
<G
>>
Creates an NFT with a datatoken with a fixed rate all in one call. be aware if Fixed Rate creation fails, you are still going to pay a lot of gas
Type parameters
Name | Type |
---|---|
G |
extends boolean = false |
Parameters
Name | Type | Description |
---|---|---|
nftCreateData |
NftCreateData |
The data required to create an NFT. |
dtParams |
DatatokenCreateParams |
The parameters required to create a datatoken. |
freParams |
FreCreationParams |
The parameters required to create a fixed-rate exchange contract. |
estimateGas? |
G |
Whether to return only estimate gas or not. |
Returns
Promise
<ReceiptOrEstimate
<G
>>
Defined in
disableNFTTemplate
▸ disableNFTTemplate<G
>(address
, templateIndex
, estimateGas?
): Promise
<ReceiptOrEstimate
<G
>>
Disable token template - only factory Owner
Type parameters
Name | Type |
---|---|
G |
extends boolean = false |
Parameters
Name | Type | Description |
---|---|---|
address |
string |
|
templateIndex |
number |
index of the template we want to disable |
estimateGas? |
G |
if True, return gas estimate |
Returns
Promise
<ReceiptOrEstimate
<G
>>
current token template count
Defined in
disableTokenTemplate
▸ disableTokenTemplate<G
>(address
, templateIndex
, estimateGas?
): Promise
<ReceiptOrEstimate
<G
>>
Disable token template - only factory Owner
Type parameters
Name | Type |
---|---|
G |
extends boolean = false |
Parameters
Name | Type | Description |
---|---|---|
address |
string |
caller address |
templateIndex |
number |
index of the template we want to disable |
estimateGas? |
G |
if True, return gas estimate |
Returns
Promise
<ReceiptOrEstimate
<G
>>
current token template count
Defined in
getContract
▸ Protected
getContract(address
, abi?
): Contract
Returns a contract instance for the given address
Parameters
Name | Type | Description |
---|---|---|
address |
string |
The address of the contract |
abi? |
AbiItem [] |
The ABI of the contract |
Returns
Contract
- The contract instance
Inherited from
SmartContractWithAddress.getContract
Defined in
getCurrentNFTCount
▸ getCurrentNFTCount(): Promise
<number
>
Get Current NFT Count (NFT created)
Returns
Promise
<number
>
Number of NFT created from this factory
Defined in
getCurrentNFTTemplateCount
▸ getCurrentNFTTemplateCount(): Promise
<number
>
Get Current NFT Template Count
Returns
Promise
<number
>
Number of NFT Template added to this factory
Defined in
getCurrentTokenCount
▸ getCurrentTokenCount(): Promise
<number
>
Get Current Datatoken Count
Returns
Promise
<number
>
Number of DTs created from this factory
Defined in
getCurrentTokenTemplateCount
▸ getCurrentTokenTemplateCount(): Promise
<number
>
Get Current Template Datatoken (ERC20) Count
Returns
Promise
<number
>
Number of Datatoken Template added to this factory
Defined in
getDefaultAbi
▸ getDefaultAbi(): AbiItem
[]
Returns
AbiItem
[]
Overrides
SmartContractWithAddress.getDefaultAbi
Defined in
getErcCreationParams
▸ Private
getErcCreationParams(dtParams
): Promise
<any
>
Gets the parameters required to create an ERC20 token.
Parameters
Name | Type | Description |
---|---|---|
dtParams |
DatatokenCreateParams |
The parameters required to create a datatoken. |
Returns
Promise
<any
>
Defined in
getFairGasPrice
▸ Protected
getFairGasPrice(): Promise
<string
>
Retruns the gas price
Returns
Promise
<string
>
- The fair gas price
Inherited from
SmartContractWithAddress.getFairGasPrice
Defined in
getFreCreationParams
▸ Private
getFreCreationParams(freParams
): Promise
<any
>
Gets the parameters required to create a fixed-rate exchange contract.
Parameters
Name | Type | Description |
---|---|---|
freParams |
FreCreationParams |
The parameters required to create a fixed-rate exchange contract. |
Returns
Promise
<any
>
Defined in
getNFTTemplate
▸ getNFTTemplate(index
): Promise
<Template
>
Get NFT Template
Parameters
Name | Type | Description |
---|---|---|
index |
number |
Template index |
Returns
Promise
<Template
>
Number of Template added to this factory
Defined in
getOwner
▸ getOwner(): Promise
<string
>
Get Factory Owner
Returns
Promise
<string
>
Factory Owner address
Defined in
getTokenTemplate
▸ getTokenTemplate(index
): Promise
<Template
>
Get Datatoken (ERC20) Template
Parameters
Name | Type | Description |
---|---|---|
index |
number |
Template index |
Returns
Promise
<Template
>
DT Template info
Defined in
reactivateNFTTemplate
▸ reactivateNFTTemplate<G
>(address
, templateIndex
, estimateGas?
): Promise
<ReceiptOrEstimate
<G
>>
Reactivate a previously disabled token template - only factory Owner
Type parameters
Name | Type |
---|---|
G |
extends boolean = false |
Parameters
Name | Type | Description |
---|---|---|
address |
string |
|
templateIndex |
number |
index of the template we want to reactivate |
estimateGas? |
G |
if True, return gas estimate |
Returns
Promise
<ReceiptOrEstimate
<G
>>
current token template count
Defined in
reactivateTokenTemplate
▸ reactivateTokenTemplate<G
>(address
, templateIndex
, estimateGas?
): Promise
<ReceiptOrEstimate
<G
>>
Reactivate a previously disabled token template - only factory Owner
Type parameters
Name | Type |
---|---|
G |
extends boolean = false |
Parameters
Name | Type | Description |
---|---|---|
address |
string |
caller address |
templateIndex |
number |
index of the template we want to reactivate |
estimateGas? |
G |
if True, return gas estimate |
Returns
Promise
<ReceiptOrEstimate
<G
>>
current token template count
Defined in
startMultipleTokenOrder
▸ startMultipleTokenOrder<G
>(orders
, estimateGas?
): Promise
<ReceiptOrEstimate
<G
>>
Used as a proxy to order multiple services Users can have inifinite approvals for fees for factory instead of having one approval/ Datatoken contract Requires previous approval of all : - consumeFeeTokens - publishMarketFeeTokens - ERC20 Datatokens
Type parameters
Name | Type |
---|---|
G |
extends boolean = false |
Parameters
Name | Type | Description |
---|---|---|
orders |
TokenOrder [] |
array of of orders |
estimateGas? |
G |
if True, return gas estimate |
Returns
Promise
<ReceiptOrEstimate
<G
>>
transaction receipt
Defined in
unitsToAmount
▸ Protected
unitsToAmount(token
, amount
, tokenDecimals?
): Promise
<string
>
Converts an amount of units to tokens
Parameters
Name | Type | Description |
---|---|---|
token |
string |
The token to convert |
amount |
string |
The amount of units to convert |
tokenDecimals? |
number |
The number of decimals in the token |
Returns
Promise
<string
>
- The converted amount in tokens
Inherited from
SmartContractWithAddress.unitsToAmount