From 729ebc7b3bc04735cf467fc2625963bf8e709f33 Mon Sep 17 00:00:00 2001 From: Mateus Santos Date: Thu, 25 Aug 2022 09:16:25 -0300 Subject: [PATCH 1/5] added support for new testnets in blockfrost --- pycardano/backend/blockfrost.py | 8 ++------ pycardano/network.py | 10 ++++++++++ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/pycardano/backend/blockfrost.py b/pycardano/backend/blockfrost.py index 646a78f7..2b70d305 100644 --- a/pycardano/backend/blockfrost.py +++ b/pycardano/backend/blockfrost.py @@ -12,7 +12,7 @@ from pycardano.exception import TransactionFailedException from pycardano.hash import SCRIPT_HASH_SIZE, DatumHash, ScriptHash from pycardano.nativescript import NativeScript -from pycardano.network import Network +from pycardano.network import Network, BLOCKFROST_URLS from pycardano.plutus import ExecutionUnits, PlutusV1Script, PlutusV2Script from pycardano.serialization import RawCBOR from pycardano.transaction import ( @@ -46,11 +46,7 @@ class BlockFrostChainContext(ChainContext): def __init__(self, project_id: str, network: Network = Network.TESTNET): self._network = network self._project_id = project_id - self._base_url = ( - ApiUrls.testnet.value - if self.network == Network.TESTNET - else ApiUrls.mainnet.value - ) + self._base_url = BLOCKFROST_URLS[network] self.api = BlockFrostApi(project_id=self._project_id, base_url=self._base_url) self._epoch_info = self.api.epoch_latest() self._epoch = None diff --git a/pycardano/network.py b/pycardano/network.py index dc19c781..c103075a 100644 --- a/pycardano/network.py +++ b/pycardano/network.py @@ -16,6 +16,8 @@ class Network(CBORSerializable, Enum): TESTNET = 0 MAINNET = 1 + PREVIEW = 2 + PREPROD = 3 def to_primitive(self) -> int: return self.value @@ -23,3 +25,11 @@ def to_primitive(self) -> int: @classmethod def from_primitive(cls, value: int) -> Network: return cls(value) + + +BLOCKFROST_URLS = { + Network.MAINNET: "https://cardano-mainnet.blockfrost.io/api", + Network.TESTNET: "https://cardano-testnet.blockfrost.io/api", + Network.PREVIEW: "https://cardano-preview.blockfrost.io/api", + Network.PREPROD: "https://cardano-preprod.blockfrost.io/api", +} \ No newline at end of file From 0699c66df1075f8030cec5fbf183b8d780ac39e6 Mon Sep 17 00:00:00 2001 From: Mateus Santos Date: Thu, 25 Aug 2022 09:18:55 -0300 Subject: [PATCH 2/5] reformat files --- pycardano/backend/blockfrost.py | 7 +++++-- pycardano/network.py | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/pycardano/backend/blockfrost.py b/pycardano/backend/blockfrost.py index 2b70d305..6311ecb4 100644 --- a/pycardano/backend/blockfrost.py +++ b/pycardano/backend/blockfrost.py @@ -12,7 +12,7 @@ from pycardano.exception import TransactionFailedException from pycardano.hash import SCRIPT_HASH_SIZE, DatumHash, ScriptHash from pycardano.nativescript import NativeScript -from pycardano.network import Network, BLOCKFROST_URLS +from pycardano.network import BLOCKFROST_URLS, Network from pycardano.plutus import ExecutionUnits, PlutusV1Script, PlutusV2Script from pycardano.serialization import RawCBOR from pycardano.transaction import ( @@ -172,7 +172,10 @@ def utxos(self, address: str) -> List[UTxO]: script = None - if hasattr(result, "reference_script_hash") and result.reference_script_hash: + if ( + hasattr(result, "reference_script_hash") + and result.reference_script_hash + ): script = self._get_script(result.reference_script_hash) tx_out = TransactionOutput( diff --git a/pycardano/network.py b/pycardano/network.py index c103075a..d500acbd 100644 --- a/pycardano/network.py +++ b/pycardano/network.py @@ -32,4 +32,4 @@ def from_primitive(cls, value: int) -> Network: Network.TESTNET: "https://cardano-testnet.blockfrost.io/api", Network.PREVIEW: "https://cardano-preview.blockfrost.io/api", Network.PREPROD: "https://cardano-preprod.blockfrost.io/api", -} \ No newline at end of file +} From c469764b9817f3f090f2582636c489a62bed7da7 Mon Sep 17 00:00:00 2001 From: Mateus Santos Date: Thu, 25 Aug 2022 09:24:24 -0300 Subject: [PATCH 3/5] removed unused import --- pycardano/backend/blockfrost.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pycardano/backend/blockfrost.py b/pycardano/backend/blockfrost.py index 6311ecb4..07db278c 100644 --- a/pycardano/backend/blockfrost.py +++ b/pycardano/backend/blockfrost.py @@ -5,7 +5,7 @@ from typing import Dict, List, Union import cbor2 -from blockfrost import ApiUrls, BlockFrostApi +from blockfrost import BlockFrostApi from pycardano.address import Address from pycardano.backend.base import ChainContext, GenesisParameters, ProtocolParameters From aff27c25ab94cc5adb0f69d820f7a27dd58fdcc9 Mon Sep 17 00:00:00 2001 From: Mateus Santos Date: Thu, 25 Aug 2022 10:31:01 -0300 Subject: [PATCH 4/5] Revert "added support for new testnets in blockfrost" This reverts commit 729ebc7b3bc04735cf467fc2625963bf8e709f33. --- pycardano/backend/blockfrost.py | 10 +++++++--- pycardano/network.py | 10 ---------- 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/pycardano/backend/blockfrost.py b/pycardano/backend/blockfrost.py index 07db278c..1728e0c3 100644 --- a/pycardano/backend/blockfrost.py +++ b/pycardano/backend/blockfrost.py @@ -5,14 +5,14 @@ from typing import Dict, List, Union import cbor2 -from blockfrost import BlockFrostApi +from blockfrost import ApiUrls, BlockFrostApi from pycardano.address import Address from pycardano.backend.base import ChainContext, GenesisParameters, ProtocolParameters from pycardano.exception import TransactionFailedException from pycardano.hash import SCRIPT_HASH_SIZE, DatumHash, ScriptHash from pycardano.nativescript import NativeScript -from pycardano.network import BLOCKFROST_URLS, Network +from pycardano.network import Network from pycardano.plutus import ExecutionUnits, PlutusV1Script, PlutusV2Script from pycardano.serialization import RawCBOR from pycardano.transaction import ( @@ -46,7 +46,11 @@ class BlockFrostChainContext(ChainContext): def __init__(self, project_id: str, network: Network = Network.TESTNET): self._network = network self._project_id = project_id - self._base_url = BLOCKFROST_URLS[network] + self._base_url = ( + ApiUrls.testnet.value + if self.network == Network.TESTNET + else ApiUrls.mainnet.value + ) self.api = BlockFrostApi(project_id=self._project_id, base_url=self._base_url) self._epoch_info = self.api.epoch_latest() self._epoch = None diff --git a/pycardano/network.py b/pycardano/network.py index d500acbd..dc19c781 100644 --- a/pycardano/network.py +++ b/pycardano/network.py @@ -16,8 +16,6 @@ class Network(CBORSerializable, Enum): TESTNET = 0 MAINNET = 1 - PREVIEW = 2 - PREPROD = 3 def to_primitive(self) -> int: return self.value @@ -25,11 +23,3 @@ def to_primitive(self) -> int: @classmethod def from_primitive(cls, value: int) -> Network: return cls(value) - - -BLOCKFROST_URLS = { - Network.MAINNET: "https://cardano-mainnet.blockfrost.io/api", - Network.TESTNET: "https://cardano-testnet.blockfrost.io/api", - Network.PREVIEW: "https://cardano-preview.blockfrost.io/api", - Network.PREPROD: "https://cardano-preprod.blockfrost.io/api", -} From fb1c831852daa80d2bd2d89a95354be872289e43 Mon Sep 17 00:00:00 2001 From: Mateus Santos Date: Thu, 25 Aug 2022 10:33:12 -0300 Subject: [PATCH 5/5] added option to use custom blockfrost base url --- pycardano/backend/blockfrost.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pycardano/backend/blockfrost.py b/pycardano/backend/blockfrost.py index 1728e0c3..06c027c6 100644 --- a/pycardano/backend/blockfrost.py +++ b/pycardano/backend/blockfrost.py @@ -43,11 +43,15 @@ class BlockFrostChainContext(ChainContext): network (Network): Network to use. """ - def __init__(self, project_id: str, network: Network = Network.TESTNET): + def __init__( + self, project_id: str, network: Network = Network.TESTNET, base_url: str = None + ): self._network = network self._project_id = project_id self._base_url = ( - ApiUrls.testnet.value + base_url + if base_url + else ApiUrls.testnet.value if self.network == Network.TESTNET else ApiUrls.mainnet.value )