Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add abstract DatatokenBase. #1321

Merged
merged 1 commit into from
Feb 9, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions READMEs/main-flow.md
Original file line number Diff line number Diff line change
Expand Up @@ -133,10 +133,10 @@ data_nft = DataNFT(config, data_nft_address)
It's similar for Datatokens. In Python:

```console
from ocean_lib.models.datatoken import Datatoken
from ocean_lib.models.datatoken_base import DatatokenBase
config = <like shown elsewhere in READMEs>
datatoken_address = <what you wrote down previously>
datatoken = Datatoken(config, datatoken_address)
datatoken = DatatokenBase.get_typed(config, datatoken_address)
```

### Data NFT Interface
Expand Down Expand Up @@ -224,7 +224,7 @@ url_file = UrlFile(
)

# Publish data asset
from ocean_lib.models.datatoken import DatatokenArguments
from ocean_lib.models.datatoken_base import DatatokenArguments
_, _, ddo = ocean.assets.create(
metadata,
{"from": alice},
Expand Down
2 changes: 1 addition & 1 deletion ocean_lib/assets/test/test_asset_downloader.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
from ocean_lib.assets.asset_downloader import download_asset_files, is_consumable
from ocean_lib.assets.ddo import DDO
from ocean_lib.data_provider.data_service_provider import DataServiceProvider
from ocean_lib.models.datatoken import TokenFeeInfo
from ocean_lib.models.datatoken_base import TokenFeeInfo
from ocean_lib.ocean.util import to_wei
from ocean_lib.services.service import Service
from tests.resources.ddo_helpers import (
Expand Down
5 changes: 2 additions & 3 deletions ocean_lib/models/data_nft.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
from enforce_typing import enforce_types
from web3 import Web3

from ocean_lib.models.datatoken import Datatoken, DatatokenArguments
from ocean_lib.models.datatoken_base import DatatokenArguments, DatatokenBase
from ocean_lib.ocean.util import (
create_checksum,
get_address_of_type,
Expand All @@ -23,7 +23,6 @@
from ocean_lib.web3_internal.contract_base import ContractBase
from ocean_lib.web3_internal.utils import check_network


"""
def addManager(address: str) -> None:
add a manager role to the address provided as a parameter
Expand Down Expand Up @@ -290,7 +289,7 @@ def to_byte(self):
class DataNFT(ContractBase):
CONTRACT_NAME = "ERC721Template"

def create_datatoken(self, tx_dict, *args, **kwargs) -> Datatoken:
def create_datatoken(self, tx_dict, *args, **kwargs) -> DatatokenBase:
datatoken_args = get_args_object(args, kwargs, DatatokenArguments)

return datatoken_args.create_datatoken(self, tx_dict)
Expand Down
24 changes: 5 additions & 19 deletions ocean_lib/models/data_nft_factory.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,13 @@
from web3.exceptions import BadFunctionCallOutput

from ocean_lib.models.data_nft import DataNFT, DataNFTArguments
from ocean_lib.models.datatoken import Datatoken
from ocean_lib.models.datatoken_enterprise import DatatokenEnterprise
from ocean_lib.models.datatoken_base import DatatokenBase
from ocean_lib.models.erc721_token_factory_base import ERC721TokenFactoryBase
from ocean_lib.models.fixed_rate_exchange import FixedRateExchange, OneExchange
from ocean_lib.ocean.util import get_address_of_type, get_args_object, get_from_address
from ocean_lib.structures.abi_tuples import MetadataProof, OrderData
from ocean_lib.web3_internal.contract_base import ContractBase


"""
def balance() -> int:
get token balance
Expand Down Expand Up @@ -164,11 +162,7 @@ def create_with_erc20(

registered_token_event = receipt.events["TokenCreated"]
datatoken_address = registered_token_event["newTokenAddress"]
datatoken = (
Datatoken(self.config_dict, datatoken_address)
if datatoken_args.template_index == 1
else DatatokenEnterprise(self.config_dict, datatoken_address)
)
datatoken = DatatokenBase.get_typed(self.config_dict, datatoken_address)

return data_nft_token, datatoken

Expand Down Expand Up @@ -221,11 +215,7 @@ def create_with_erc20_and_fixed_rate(

registered_token_event = receipt.events["TokenCreated"]
datatoken_address = registered_token_event["newTokenAddress"]
datatoken = (
Datatoken(self.config_dict, datatoken_address)
if datatoken_args.template_index == 1
else DatatokenEnterprise(self.config_dict, datatoken_address)
)
datatoken = DatatokenBase.get_typed(self.config_dict, datatoken_address)

registered_fixed_rate_event = receipt.events["NewFixedRate"]
exchange_id = registered_fixed_rate_event["exchangeId"]
Expand Down Expand Up @@ -285,11 +275,7 @@ def create_with_erc20_and_dispenser(

registered_token_event = receipt.events["TokenCreated"]
datatoken_address = registered_token_event["newTokenAddress"]
datatoken = (
Datatoken(self.config_dict, datatoken_address)
if datatoken_args.template_index == 1
else DatatokenEnterprise(self.config_dict, datatoken_address)
)
datatoken = DatatokenBase.get_typed(self.config_dict, datatoken_address)

registered_dispenser_event = receipt.events["DispenserCreated"]
assert registered_dispenser_event["datatokenAddress"] == datatoken_address
Expand Down Expand Up @@ -344,7 +330,7 @@ def search_exchange_by_datatoken(
datatoken: str,
exchange_owner: Optional[str] = None,
) -> list:
datatoken_contract = Datatoken(self.config_dict, datatoken)
datatoken_contract = DatatokenBase.get_typed(self.config_dict, datatoken)
exchange_addresses_and_ids = datatoken_contract.getFixedRates()
return (
exchange_addresses_and_ids
Expand Down
Loading