diff --git a/pyproject.toml b/pyproject.toml index 4c41904a..b52b3fb5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,7 +23,7 @@ classifiers = [ ] dependencies = [ "aiohttp>=3.8.3", - "aleph-message>=0.4.8", + "aleph-message@git+https://github.com/1yam/aleph-message.git@1yam-base-chain", "coincurve; python_version<\"3.11\"", "coincurve>=19.0.0; python_version>=\"3.11\"", "eth_abi>=4.0.0; python_version>=\"3.11\"", @@ -32,7 +32,7 @@ dependencies = [ "python-magic", "typing_extensions", "aioresponses>=0.7.6", - "superfluid~=0.2.1", + "superfluid@git+https://github.com/1yam/superfluid.py.git@1yam-add-base", "eth_typing==4.3.1", ] diff --git a/src/aleph/sdk/chains/ethereum.py b/src/aleph/sdk/chains/ethereum.py index 294f47da..1f7985d3 100644 --- a/src/aleph/sdk/chains/ethereum.py +++ b/src/aleph/sdk/chains/ethereum.py @@ -15,9 +15,15 @@ from ..utils import bytes_from_hex from .common import BaseAccount, get_fallback_private_key, get_public_key -CHAINS_WITH_SUPERTOKEN: Set[Chain] = {Chain.AVAX} +CHAINS_WITH_SUPERTOKEN: Set[Chain] = {Chain.AVAX, Chain.BASE} CHAIN_IDS: Dict[Chain, int] = { Chain.AVAX: settings.AVAX_CHAIN_ID, + Chain.BASE: settings.BASE_CHAIN_ID, +} + +CHAIN_RPC: Dict[Chain, str] = { + Chain.AVAX: settings.AVAX_RPC, + Chain.BASE: settings.BASE_RPC, } @@ -26,8 +32,8 @@ def get_rpc_for_chain(chain: Chain): if not chain: return None - if chain == Chain.AVAX: - return settings.AVAX_RPC + if chain in CHAIN_RPC: + return CHAIN_RPC[chain] else: raise ValueError(f"Unknown RPC for chain {chain}") diff --git a/src/aleph/sdk/conf.py b/src/aleph/sdk/conf.py index 70378088..21fb76a1 100644 --- a/src/aleph/sdk/conf.py +++ b/src/aleph/sdk/conf.py @@ -40,7 +40,10 @@ class Settings(BaseSettings): AVAX_RPC: str = "https://api.avax.network/ext/bc/C/rpc" AVAX_CHAIN_ID: int = 43114 - AVAX_ALEPH_SUPER_TOKEN = "0xc0Fbc4967259786C743361a5885ef49380473dCF" # mainnet + ALEPH_SUPER_TOKEN = "0xc0Fbc4967259786C743361a5885ef49380473dCF" + + BASE_RPC: str = "https://base-rpc.publicnode.com" + BASE_CHAIN_ID = 8453 # Dns resolver DNS_IPFS_DOMAIN = "ipfs.public.aleph.sh" diff --git a/src/aleph/sdk/connectors/superfluid.py b/src/aleph/sdk/connectors/superfluid.py index 2c0b9fb6..e557bf29 100644 --- a/src/aleph/sdk/connectors/superfluid.py +++ b/src/aleph/sdk/connectors/superfluid.py @@ -83,7 +83,7 @@ async def create_flow(self, sender: str, receiver: str, flow: Decimal) -> str: operation=self.cfaV1Instance.create_flow( sender=to_normalized_address(sender), receiver=to_normalized_address(receiver), - super_token=settings.AVAX_ALEPH_SUPER_TOKEN, + super_token=settings.ALEPH_SUPER_TOKEN, flow_rate=to_wei(Decimal(flow), "ether"), ), ) @@ -93,7 +93,7 @@ async def get_flow(self, sender: str, receiver: str) -> Web3FlowInfo: return self.cfaV1Instance.get_flow( sender=to_normalized_address(sender), receiver=to_normalized_address(receiver), - super_token=settings.AVAX_ALEPH_SUPER_TOKEN, + super_token=settings.ALEPH_SUPER_TOKEN, ) async def delete_flow(self, sender: str, receiver: str) -> str: @@ -105,7 +105,7 @@ async def delete_flow(self, sender: str, receiver: str) -> str: operation=self.cfaV1Instance.delete_flow( sender=to_normalized_address(sender), receiver=to_normalized_address(receiver), - super_token=settings.AVAX_ALEPH_SUPER_TOKEN, + super_token=settings.ALEPH_SUPER_TOKEN, ), ) @@ -118,7 +118,7 @@ async def update_flow(self, sender: str, receiver: str, flow: Decimal) -> str: operation=self.cfaV1Instance.update_flow( sender=to_normalized_address(sender), receiver=to_normalized_address(receiver), - super_token=settings.AVAX_ALEPH_SUPER_TOKEN, + super_token=settings.ALEPH_SUPER_TOKEN, flow_rate=to_wei(Decimal(flow), "ether"), ), ) diff --git a/tests/unit/test_superfluid.py b/tests/unit/test_superfluid.py index 92c83f2c..5d511c83 100644 --- a/tests/unit/test_superfluid.py +++ b/tests/unit/test_superfluid.py @@ -61,7 +61,7 @@ async def test_create_flow(eth_account, mock_superfluid): mock_superfluid.create_flow.assert_called_once_with( sender=sender.lower(), receiver=receiver.lower(), - super_token=settings.AVAX_ALEPH_SUPER_TOKEN, + super_token=settings.ALEPH_SUPER_TOKEN, flow_rate=mock.ANY, ) @@ -86,7 +86,7 @@ async def test_delete_flow(eth_account, mock_superfluid): mock_superfluid.delete_flow.assert_called_once_with( sender=sender.lower(), receiver=receiver.lower(), - super_token=settings.AVAX_ALEPH_SUPER_TOKEN, + super_token=settings.ALEPH_SUPER_TOKEN, ) @@ -111,7 +111,7 @@ async def test_update_flow(eth_account, mock_superfluid): mock_superfluid.update_flow.assert_called_once_with( sender=sender.lower(), receiver=receiver.lower(), - super_token=settings.AVAX_ALEPH_SUPER_TOKEN, + super_token=settings.ALEPH_SUPER_TOKEN, flow_rate=mock.ANY, ) @@ -129,5 +129,5 @@ async def test_get_flow(eth_account, mock_superfluid): mock_superfluid.get_flow.assert_called_once_with( sender=sender.lower(), receiver=receiver.lower(), - super_token=settings.AVAX_ALEPH_SUPER_TOKEN, + super_token=settings.ALEPH_SUPER_TOKEN, )