Skip to content

Commit

Permalink
Add abstract DatatokenBase. (#1321)
Browse files Browse the repository at this point in the history
  • Loading branch information
calina-c committed Feb 9, 2023
1 parent 065d332 commit 4ed2d37
Show file tree
Hide file tree
Showing 22 changed files with 493 additions and 465 deletions.
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

0 comments on commit 4ed2d37

Please sign in to comment.