2022-07-09 13:00:07 +02:00
|
|
|
# Configuration
|
|
|
|
|
|
|
|
### Obtaining API key
|
|
|
|
|
|
|
|
See this [guide](../obtaining-api-key.md) on getting an API key to interact with EVM compatible networks.
|
|
|
|
|
|
|
|
#### Create a directory
|
|
|
|
|
|
|
|
```
|
|
|
|
mkdir my-ocean-project
|
|
|
|
cd my-ocean-project
|
|
|
|
```
|
2022-07-09 11:34:57 +02:00
|
|
|
|
|
|
|
### Create a `.env` file
|
|
|
|
|
2022-07-09 13:00:07 +02:00
|
|
|
{% tabs %}
|
|
|
|
{% tab title="Mainnet" %}
|
|
|
|
{% code title=".env" %}
|
|
|
|
```
|
|
|
|
# Mandatory environment variables
|
|
|
|
|
|
|
|
OCEAN_NETWORK=mainnet
|
2022-07-11 11:16:46 +02:00
|
|
|
OCEAN_NETWORK_URL=<replace this>
|
2022-07-09 13:00:07 +02:00
|
|
|
PRIVATE_KEY=<secret>
|
|
|
|
|
|
|
|
# Optional environment variables
|
|
|
|
|
|
|
|
AQUARIUS_URL=https://v4.aquarius.oceanprotocol.com/
|
|
|
|
PROVIDER_URL=https://v4.provider.mainnet.oceanprotocol.com
|
2022-07-09 11:34:57 +02:00
|
|
|
```
|
2022-07-09 13:00:07 +02:00
|
|
|
{% endcode %}
|
|
|
|
{% endtab %}
|
|
|
|
|
|
|
|
{% tab title="Polygon" %}
|
|
|
|
{% code title=".env" %}
|
|
|
|
```
|
|
|
|
# Mandatory environment variables
|
|
|
|
|
|
|
|
OCEAN_NETWORK=polygon
|
2022-07-11 11:16:46 +02:00
|
|
|
OCEAN_NETWORK_URL=<replace this>
|
2022-07-09 13:00:07 +02:00
|
|
|
PRIVATE_KEY=<secret>
|
|
|
|
|
|
|
|
# Optional environment variables
|
|
|
|
|
|
|
|
AQUARIUS_URL=https://v4.aquarius.oceanprotocol.com/
|
|
|
|
PROVIDER_URL=https://v4.provider.polygon.oceanprotocol.com
|
|
|
|
```
|
|
|
|
{% endcode %}
|
|
|
|
{% endtab %}
|
|
|
|
|
|
|
|
{% tab title="Local (using Barge)" %}
|
|
|
|
{% code title=".env" %}
|
|
|
|
```
|
|
|
|
# Mandatory environment variables
|
2022-07-11 11:16:46 +02:00
|
|
|
OCEAN_NETWORK_URL=http://172.15.0.3:8545/
|
2022-07-09 11:34:57 +02:00
|
|
|
AQUARIUS_URL=http://172.15.0.5:5000
|
|
|
|
PROVIDER_URL=http://172.15.0.4:8030
|
2022-07-09 13:00:07 +02:00
|
|
|
|
|
|
|
# Replace PRIVATE_KEY if needed
|
|
|
|
PRIVATE_KEY=0xc594c6e5def4bab63ac29eed19a134c130388f74f019bc74b8f4389df2837a58
|
2022-07-09 11:34:57 +02:00
|
|
|
OCEAN_NETWORK=development
|
|
|
|
```
|
2022-07-09 13:00:07 +02:00
|
|
|
{% endcode %}
|
|
|
|
{% endtab %}
|
|
|
|
{% endtabs %}
|
2022-07-09 11:34:57 +02:00
|
|
|
|
2022-07-09 13:00:07 +02:00
|
|
|
#### Setup dependencies
|
|
|
|
|
|
|
|
{% tabs %}
|
|
|
|
{% tab title="ocean.js" %}
|
|
|
|
```bash
|
|
|
|
npm init
|
|
|
|
npm install @oceanprotocol/lib@latest dotenv web3 @truffle/hdwallet-provider
|
|
|
|
```
|
|
|
|
{% endtab %}
|
|
|
|
|
|
|
|
{% tab title="ocean.py" %}
|
|
|
|
```bash
|
|
|
|
python3 -m venv venv
|
|
|
|
source venv/bin/activate
|
|
|
|
pip3 install wheel
|
|
|
|
|
|
|
|
# Install Ocean library. Allow pre-releases to get the latest v4 version.
|
2022-07-11 11:16:46 +02:00
|
|
|
pip3 install ocean-lib python-dotenv web3
|
2022-07-09 13:00:07 +02:00
|
|
|
```
|
|
|
|
{% endtab %}
|
|
|
|
{% endtabs %}
|
|
|
|
|
|
|
|
#### Create a configuration file
|
|
|
|
|
|
|
|
{% tabs %}
|
|
|
|
{% tab title="ocean.js" %}
|
|
|
|
{% code title="config.js" %}
|
|
|
|
```javascript
|
|
|
|
// Import dependencies
|
|
|
|
require('dotenv').config();
|
|
|
|
const HDWalletProvider = require('@truffle/hdwallet-provider');
|
|
|
|
const fs = require('fs');
|
|
|
|
const { homedir } = require('os');
|
|
|
|
const { ConfigHelper } = require('@oceanprotocol/lib');
|
|
|
|
|
|
|
|
// Get configuration for the given network
|
|
|
|
let oceanConfig = new ConfigHelper().getConfig(process.env.OCEAN_NETWORK);
|
|
|
|
|
|
|
|
// If using local development environment, read the addresses from local file.
|
|
|
|
// The local deployment address file can be generated using barge.
|
|
|
|
if (process.env.OCEAN_NETWORK === 'development') {
|
|
|
|
const addressData = JSON.parse(
|
|
|
|
fs.readFileSync(
|
|
|
|
process.env.ADDRESS_FILE
|
|
|
|
|| `${homedir}/.ocean/ocean-contracts/artifacts/address.json`,
|
|
|
|
'utf8'
|
|
|
|
)
|
|
|
|
);
|
|
|
|
const addresses = addressData[process.env.OCEAN_NETWORK];
|
|
|
|
|
|
|
|
oceanConfig = {
|
|
|
|
...oceanConfig,
|
|
|
|
oceanTokenAddress: addresses.Ocean,
|
|
|
|
poolTemplateAddress: addresses.poolTemplate,
|
|
|
|
fixedRateExchangeAddress: addresses.FixedPrice,
|
|
|
|
dispenserAddress: addresses.Dispenser,
|
|
|
|
erc721FactoryAddress: addresses.ERC721Factory,
|
|
|
|
sideStakingAddress: addresses.Staking,
|
|
|
|
opfCommunityFeeCollector: addresses.OPFCommunityFeeCollector
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
oceanConfig = {
|
|
|
|
...oceanConfig,
|
2022-07-11 11:16:46 +02:00
|
|
|
nodeUri: process.env.OCEAN_NETWORK_URL,
|
2022-07-09 13:00:07 +02:00
|
|
|
// Set optional properties - Provider URL and Aquarius URL
|
|
|
|
metadataCacheUri: process.env.AQUARIUS_URL || oceanConfig.metadataCacheUri,
|
|
|
|
providerUri: process.env.PROVIDER_URL || oceanConfig.providerUri
|
|
|
|
};
|
|
|
|
|
|
|
|
const web3Provider = new HDWalletProvider(
|
|
|
|
process.env.PRIVATE_KEY,
|
|
|
|
oceanConfig.nodeUri
|
|
|
|
);
|
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
web3Provider,
|
|
|
|
oceanConfig
|
|
|
|
};
|
|
|
|
|
|
|
|
```
|
|
|
|
{% endcode %}
|
|
|
|
|
|
|
|
|
|
|
|
{% endtab %}
|
|
|
|
|
|
|
|
{% tab title="ocean.py" %}
|
|
|
|
{% code title="config.py" %}
|
|
|
|
```python
|
2022-07-11 11:16:46 +02:00
|
|
|
import os
|
|
|
|
from dotenv import load_dotenv
|
|
|
|
from ocean_lib.ocean.ocean import Ocean
|
|
|
|
from ocean_lib.web3_internal.wallet import Wallet
|
|
|
|
from ocean_lib.example_config import ExampleConfig, get_config_dict
|
|
|
|
from ocean_lib.ocean.ocean import Ocean
|
|
|
|
from ocean_lib.ocean.util import get_web3
|
|
|
|
|
|
|
|
load_dotenv()
|
|
|
|
|
|
|
|
config = ExampleConfig.get_config()
|
|
|
|
ocean = Ocean(config)
|
|
|
|
|
|
|
|
user_private_key = os.getenv('PRIVATE_KEY')
|
|
|
|
web3_wallet = Wallet(ocean.web3, user_private_key, ocean.config.block_confirmations, ocean.config.transaction_timeout)
|
2022-07-09 13:00:07 +02:00
|
|
|
```
|
|
|
|
{% endcode %}
|
|
|
|
{% endtab %}
|
|
|
|
{% endtabs %}
|