diff --git a/.github/workflows/devnet-examples.yaml b/.github/workflows/devnet-examples.yaml index 7137354..3a4f0ff 100644 --- a/.github/workflows/devnet-examples.yaml +++ b/.github/workflows/devnet-examples.yaml @@ -13,6 +13,7 @@ jobs: APTOS_FAUCET_URL: https://faucet.devnet.aptoslabs.com APTOS_INDEXER_URL: https://api.devnet.aptoslabs.com/v1/graphql APTOS_NODE_URL: https://fullnode.devnet.aptoslabs.com/v1 + API_KEY: ${{ secrets.DEVNET_API_KEY }} FAUCET_AUTH_TOKEN: ${{ secrets.DEVNET_FAUCET_AUTH_TOKEN }} steps: - uses: actions/checkout@v4 diff --git a/examples/aptos_token.py b/examples/aptos_token.py index e60923e..88e6ed3 100644 --- a/examples/aptos_token.py +++ b/examples/aptos_token.py @@ -6,13 +6,13 @@ from aptos_sdk.account import Account from aptos_sdk.account_address import AccountAddress from aptos_sdk.aptos_token_client import AptosTokenClient, Object, Property, PropertyMap -from aptos_sdk.async_client import FaucetClient, RestClient +from aptos_sdk.async_client import ClientConfig, FaucetClient, RestClient -from .common import FAUCET_URL, NODE_URL +from .common import API_KEY, FAUCET_URL, NODE_URL async def main(): - rest_client = RestClient(NODE_URL) + rest_client = RestClient(NODE_URL, client_config=ClientConfig(api_key=API_KEY)) faucet_client = FaucetClient(FAUCET_URL, rest_client) token_client = AptosTokenClient(rest_client) alice = Account.generate() diff --git a/examples/common.py b/examples/common.py index 9d69f17..9b01872 100644 --- a/examples/common.py +++ b/examples/common.py @@ -19,4 +19,6 @@ "https://api.devnet.aptoslabs.com/v1/graphql", ) NODE_URL = os.getenv("APTOS_NODE_URL", "https://api.devnet.aptoslabs.com/v1") + +API_KEY = os.getenv("API_KEY") # <:!:section_1 diff --git a/examples/fee_payer_transfer_coin.py b/examples/fee_payer_transfer_coin.py index 6a947b1..48abb72 100644 --- a/examples/fee_payer_transfer_coin.py +++ b/examples/fee_payer_transfer_coin.py @@ -4,7 +4,7 @@ import asyncio from aptos_sdk.account import Account -from aptos_sdk.async_client import FaucetClient, RestClient +from aptos_sdk.async_client import ClientConfig, FaucetClient, RestClient from aptos_sdk.authenticator import Authenticator, FeePayerAuthenticator from aptos_sdk.bcs import Serializer from aptos_sdk.transactions import ( @@ -15,12 +15,12 @@ TransactionPayload, ) -from .common import FAUCET_AUTH_TOKEN, FAUCET_URL, NODE_URL +from .common import API_KEY, FAUCET_AUTH_TOKEN, FAUCET_URL, NODE_URL async def main(): # :!:>section_1 - rest_client = RestClient(NODE_URL) + rest_client = RestClient(NODE_URL, client_config=ClientConfig(api_key=API_KEY)) faucet_client = FaucetClient( FAUCET_URL, rest_client, FAUCET_AUTH_TOKEN ) # <:!:section_1 diff --git a/examples/hello_blockchain.py b/examples/hello_blockchain.py index a33b99a..1e39706 100644 --- a/examples/hello_blockchain.py +++ b/examples/hello_blockchain.py @@ -21,7 +21,12 @@ from aptos_sdk.account import Account from aptos_sdk.account_address import AccountAddress from aptos_sdk.aptos_cli_wrapper import AptosCLIWrapper -from aptos_sdk.async_client import FaucetClient, ResourceNotFound, RestClient +from aptos_sdk.async_client import ( + ClientConfig, + FaucetClient, + ResourceNotFound, + RestClient, +) from aptos_sdk.bcs import Serializer from aptos_sdk.package_publisher import PackagePublisher from aptos_sdk.transactions import ( @@ -30,7 +35,7 @@ TransactionPayload, ) -from .common import FAUCET_AUTH_TOKEN, FAUCET_URL, NODE_URL +from .common import API_KEY, FAUCET_AUTH_TOKEN, FAUCET_URL, NODE_URL class HelloBlockchainClient(RestClient): @@ -64,7 +69,7 @@ async def set_message( async def publish_contract(package_dir: str) -> AccountAddress: contract_publisher = Account.generate() - rest_client = HelloBlockchainClient(NODE_URL) + rest_client = RestClient(NODE_URL, client_config=ClientConfig(api_key=API_KEY)) faucet_client = FaucetClient(FAUCET_URL, rest_client, FAUCET_AUTH_TOKEN) await faucet_client.fund_account(contract_publisher.address(), 10_000_000) diff --git a/examples/large_package_publisher.py b/examples/large_package_publisher.py index 572a9c0..af52bc1 100644 --- a/examples/large_package_publisher.py +++ b/examples/large_package_publisher.py @@ -19,11 +19,11 @@ from aptos_sdk.async_client import ClientConfig, FaucetClient, RestClient from aptos_sdk.package_publisher import MODULE_ADDRESS, PackagePublisher -from .common import APTOS_CORE_PATH, FAUCET_AUTH_TOKEN, FAUCET_URL, NODE_URL +from .common import API_KEY, APTOS_CORE_PATH, FAUCET_AUTH_TOKEN, FAUCET_URL, NODE_URL async def publish_large_packages(large_packages_dir) -> AccountAddress: - rest_client = RestClient(NODE_URL) + rest_client = RestClient(NODE_URL, client_config=ClientConfig(api_key=API_KEY)) faucet_client = FaucetClient(FAUCET_URL, rest_client, FAUCET_AUTH_TOKEN) alice = Account.generate() @@ -41,7 +41,7 @@ async def main( client_config = ClientConfig() client_config.transaction_wait_in_seconds = 120 client_config.max_gas_amount = 1_000_000 - rest_client = RestClient(NODE_URL, client_config) + rest_client = RestClient(NODE_URL, client_config=ClientConfig(api_key=API_KEY)) faucet_client = FaucetClient(FAUCET_URL, rest_client, FAUCET_AUTH_TOKEN) alice = Account.generate() diff --git a/examples/multikey.py b/examples/multikey.py index 577eb10..e3380c2 100644 --- a/examples/multikey.py +++ b/examples/multikey.py @@ -7,7 +7,7 @@ from aptos_sdk.account import Account from aptos_sdk.account_address import AccountAddress from aptos_sdk.asymmetric_crypto_wrapper import MultiSignature, Signature -from aptos_sdk.async_client import FaucetClient, IndexerClient, RestClient +from aptos_sdk.async_client import ClientConfig, FaucetClient, IndexerClient, RestClient from aptos_sdk.authenticator import AccountAuthenticator, MultiKeyAuthenticator from aptos_sdk.bcs import Serializer from aptos_sdk.transactions import ( @@ -17,12 +17,12 @@ TransactionPayload, ) -from .common import FAUCET_AUTH_TOKEN, FAUCET_URL, INDEXER_URL, NODE_URL +from .common import API_KEY, FAUCET_AUTH_TOKEN, FAUCET_URL, INDEXER_URL, NODE_URL async def main(): # :!:>section_1 - rest_client = RestClient(NODE_URL) + rest_client = RestClient(NODE_URL, client_config=ClientConfig(api_key=API_KEY)) faucet_client = FaucetClient( FAUCET_URL, rest_client, FAUCET_AUTH_TOKEN ) # <:!:section_1 diff --git a/examples/multisig.py b/examples/multisig.py index 1489d2a..33c6cb1 100644 --- a/examples/multisig.py +++ b/examples/multisig.py @@ -7,7 +7,7 @@ from aptos_sdk.account import Account, RotationProofChallenge from aptos_sdk.account_address import AccountAddress -from aptos_sdk.async_client import FaucetClient, RestClient +from aptos_sdk.async_client import ClientConfig, FaucetClient, RestClient from aptos_sdk.authenticator import Authenticator, MultiEd25519Authenticator from aptos_sdk.bcs import Serializer from aptos_sdk.ed25519 import MultiPublicKey, MultiSignature @@ -22,7 +22,7 @@ ) from aptos_sdk.type_tag import StructTag, TypeTag -from .common import APTOS_CORE_PATH, FAUCET_AUTH_TOKEN, FAUCET_URL, NODE_URL +from .common import API_KEY, APTOS_CORE_PATH, FAUCET_AUTH_TOKEN, FAUCET_URL, NODE_URL should_wait = True @@ -37,7 +37,7 @@ async def main(should_wait_input=True): global should_wait should_wait = should_wait_input - rest_client = RestClient(NODE_URL) + rest_client = RestClient(NODE_URL, client_config=ClientConfig(api_key=API_KEY)) faucet_client = FaucetClient(FAUCET_URL, rest_client, FAUCET_AUTH_TOKEN) # :!:>section_1 diff --git a/examples/object_code_deployment.py b/examples/object_code_deployment.py index df8bae4..fd8843e 100644 --- a/examples/object_code_deployment.py +++ b/examples/object_code_deployment.py @@ -7,14 +7,14 @@ from aptos_sdk.account import Account from aptos_sdk.aptos_cli_wrapper import AptosCLIWrapper -from aptos_sdk.async_client import FaucetClient, RestClient +from aptos_sdk.async_client import ClientConfig, FaucetClient, RestClient from aptos_sdk.package_publisher import MODULE_ADDRESS, PackagePublisher, PublishMode -from .common import APTOS_CORE_PATH, FAUCET_AUTH_TOKEN, FAUCET_URL, NODE_URL +from .common import API_KEY, APTOS_CORE_PATH, FAUCET_AUTH_TOKEN, FAUCET_URL, NODE_URL async def main(package_dir): - rest_client = RestClient(NODE_URL) + rest_client = RestClient(NODE_URL, client_config=ClientConfig(api_key=API_KEY)) faucet_client = FaucetClient(FAUCET_URL, rest_client, FAUCET_AUTH_TOKEN) package_publisher = PackagePublisher(rest_client) alice = Account.generate() diff --git a/examples/read_aggregator.py b/examples/read_aggregator.py index bae091b..d8404ed 100644 --- a/examples/read_aggregator.py +++ b/examples/read_aggregator.py @@ -4,13 +4,13 @@ import asyncio from aptos_sdk.account_address import AccountAddress -from aptos_sdk.async_client import RestClient +from aptos_sdk.async_client import ClientConfig, RestClient -from .common import NODE_URL +from .common import API_KEY, NODE_URL async def main(): - rest_client = RestClient(NODE_URL) + rest_client = RestClient(NODE_URL, client_config=ClientConfig(api_key=API_KEY)) total_apt = await rest_client.aggregator_value( AccountAddress.from_str("0x1"), "0x1::coin::CoinInfo<0x1::aptos_coin::AptosCoin>", diff --git a/examples/rotate_key.py b/examples/rotate_key.py index 852572f..0b2bcfd 100644 --- a/examples/rotate_key.py +++ b/examples/rotate_key.py @@ -5,7 +5,7 @@ import aptos_sdk.ed25519 as ed25519 from aptos_sdk.account import Account, RotationProofChallenge from aptos_sdk.account_address import AccountAddress -from aptos_sdk.async_client import FaucetClient, RestClient +from aptos_sdk.async_client import ClientConfig, FaucetClient, RestClient from aptos_sdk.authenticator import Authenticator from aptos_sdk.bcs import Serializer from aptos_sdk.transactions import ( @@ -14,7 +14,7 @@ TransactionPayload, ) -from .common import FAUCET_AUTH_TOKEN, FAUCET_URL, NODE_URL +from .common import API_KEY, FAUCET_AUTH_TOKEN, FAUCET_URL, NODE_URL WIDTH = 19 @@ -124,7 +124,7 @@ def rotation_payload( async def main(): # Initialize the clients used to interact with the blockchain - rest_client = RestClient(NODE_URL) + rest_client = RestClient(NODE_URL, client_config=ClientConfig(api_key=API_KEY)) faucet_client = FaucetClient(FAUCET_URL, rest_client, FAUCET_AUTH_TOKEN) # Generate random accounts Alice and Bob diff --git a/examples/secp256k1_ecdsa_transfer_coin.py b/examples/secp256k1_ecdsa_transfer_coin.py index 6aa5f56..4c8e8c6 100644 --- a/examples/secp256k1_ecdsa_transfer_coin.py +++ b/examples/secp256k1_ecdsa_transfer_coin.py @@ -4,14 +4,14 @@ import asyncio from aptos_sdk.account import Account -from aptos_sdk.async_client import FaucetClient, RestClient +from aptos_sdk.async_client import ClientConfig, FaucetClient, RestClient -from .common import FAUCET_AUTH_TOKEN, FAUCET_URL, NODE_URL +from .common import API_KEY, FAUCET_AUTH_TOKEN, FAUCET_URL, NODE_URL async def main(): # :!:>section_1 - rest_client = RestClient(NODE_URL) + rest_client = RestClient(NODE_URL, client_config=ClientConfig(api_key=API_KEY)) faucet_client = FaucetClient( FAUCET_URL, rest_client, FAUCET_AUTH_TOKEN ) # <:!:section_1 diff --git a/examples/simple_aptos_token.py b/examples/simple_aptos_token.py index 1e065e9..f593a4c 100644 --- a/examples/simple_aptos_token.py +++ b/examples/simple_aptos_token.py @@ -14,9 +14,9 @@ ReadObject, Token, ) -from aptos_sdk.async_client import FaucetClient, RestClient +from aptos_sdk.async_client import ClientConfig, FaucetClient, RestClient -from .common import FAUCET_AUTH_TOKEN, FAUCET_URL, NODE_URL +from .common import API_KEY, FAUCET_AUTH_TOKEN, FAUCET_URL, NODE_URL def get_owner(obj: ReadObject) -> AccountAddress: @@ -53,7 +53,7 @@ async def get_token_data( async def main(): # Create API and faucet clients. # :!:>section_1a - rest_client = RestClient(NODE_URL) + rest_client = RestClient(NODE_URL, client_config=ClientConfig(api_key=API_KEY)) faucet_client = FaucetClient( FAUCET_URL, rest_client, FAUCET_AUTH_TOKEN ) # <:!:section_1a diff --git a/examples/simple_nft.py b/examples/simple_nft.py index aeb577a..0721d38 100644 --- a/examples/simple_nft.py +++ b/examples/simple_nft.py @@ -6,13 +6,13 @@ from aptos_sdk.account import Account from aptos_sdk.aptos_tokenv1_client import AptosTokenV1Client -from aptos_sdk.async_client import FaucetClient, RestClient +from aptos_sdk.async_client import ClientConfig, FaucetClient, RestClient -from .common import FAUCET_AUTH_TOKEN, FAUCET_URL, NODE_URL +from .common import API_KEY, FAUCET_AUTH_TOKEN, FAUCET_URL, NODE_URL async def main(): - rest_client = RestClient(NODE_URL) + rest_client = RestClient(NODE_URL, client_config=ClientConfig(api_key=API_KEY)) faucet_client = FaucetClient(FAUCET_URL, rest_client, FAUCET_AUTH_TOKEN) token_client = AptosTokenV1Client(rest_client) diff --git a/examples/simulate_transfer_coin.py b/examples/simulate_transfer_coin.py index a6b3f34..a7ab990 100644 --- a/examples/simulate_transfer_coin.py +++ b/examples/simulate_transfer_coin.py @@ -5,7 +5,7 @@ import json from aptos_sdk.account import Account -from aptos_sdk.async_client import FaucetClient, RestClient +from aptos_sdk.async_client import ClientConfig, FaucetClient, RestClient from aptos_sdk.bcs import Serializer from aptos_sdk.transactions import ( EntryFunction, @@ -14,11 +14,11 @@ ) from aptos_sdk.type_tag import StructTag, TypeTag -from .common import FAUCET_AUTH_TOKEN, FAUCET_URL, NODE_URL +from .common import API_KEY, FAUCET_AUTH_TOKEN, FAUCET_URL, NODE_URL async def main(): - rest_client = RestClient(NODE_URL) + rest_client = RestClient(NODE_URL, client_config=ClientConfig(api_key=API_KEY)) faucet_client = FaucetClient( FAUCET_URL, rest_client, FAUCET_AUTH_TOKEN ) # <:!:section_1 diff --git a/examples/transaction_batching.py b/examples/transaction_batching.py index 7b53857..a29c3dd 100644 --- a/examples/transaction_batching.py +++ b/examples/transaction_batching.py @@ -24,7 +24,7 @@ TransactionPayload, ) -from .common import FAUCET_AUTH_TOKEN, FAUCET_URL, NODE_URL +from .common import API_KEY, FAUCET_AUTH_TOKEN, FAUCET_URL, NODE_URL def generate_rest_client(node_url: str) -> RestClient: @@ -32,7 +32,8 @@ def generate_rest_client(node_url: str) -> RestClient: client_config.http2 = True client_config.max_gas_amount = 100 client_config.transaction_wait_in_seconds = 60 - return RestClient(NODE_URL, client_config) + client_config.api_key = API_KEY + return RestClient(node_url, client_config) class TransactionGenerator: diff --git a/examples/transfer_coin.py b/examples/transfer_coin.py index 975bb99..33f9406 100644 --- a/examples/transfer_coin.py +++ b/examples/transfer_coin.py @@ -4,14 +4,14 @@ import asyncio from aptos_sdk.account import Account -from aptos_sdk.async_client import FaucetClient, IndexerClient, RestClient +from aptos_sdk.async_client import ClientConfig, FaucetClient, IndexerClient, RestClient -from .common import FAUCET_AUTH_TOKEN, FAUCET_URL, INDEXER_URL, NODE_URL +from .common import API_KEY, FAUCET_AUTH_TOKEN, FAUCET_URL, INDEXER_URL, NODE_URL async def main(): # :!:>section_1 - rest_client = RestClient(NODE_URL) + rest_client = RestClient(NODE_URL, client_config=ClientConfig(api_key=API_KEY)) faucet_client = FaucetClient( FAUCET_URL, rest_client, FAUCET_AUTH_TOKEN ) # <:!:section_1 diff --git a/examples/transfer_two_by_two.py b/examples/transfer_two_by_two.py index 55c47e9..02cde50 100644 --- a/examples/transfer_two_by_two.py +++ b/examples/transfer_two_by_two.py @@ -5,14 +5,14 @@ import os from aptos_sdk.account import Account -from aptos_sdk.async_client import FaucetClient, RestClient +from aptos_sdk.async_client import ClientConfig, FaucetClient, RestClient from aptos_sdk.transactions import Script, ScriptArgument, TransactionPayload -from .common import FAUCET_AUTH_TOKEN, FAUCET_URL, NODE_URL +from .common import API_KEY, FAUCET_AUTH_TOKEN, FAUCET_URL, NODE_URL async def main(): - rest_client = RestClient(NODE_URL) + rest_client = RestClient(NODE_URL, client_config=ClientConfig(api_key=API_KEY)) faucet_client = FaucetClient(FAUCET_URL, rest_client, FAUCET_AUTH_TOKEN) alice = Account.generate() diff --git a/examples/your_coin.py b/examples/your_coin.py index 74cdeef..25dea95 100644 --- a/examples/your_coin.py +++ b/examples/your_coin.py @@ -18,7 +18,7 @@ from aptos_sdk.account import Account from aptos_sdk.account_address import AccountAddress from aptos_sdk.aptos_cli_wrapper import AptosCLIWrapper -from aptos_sdk.async_client import FaucetClient, RestClient +from aptos_sdk.async_client import ClientConfig, FaucetClient, RestClient from aptos_sdk.bcs import Serializer from aptos_sdk.package_publisher import PackagePublisher from aptos_sdk.transactions import ( @@ -28,7 +28,7 @@ ) from aptos_sdk.type_tag import StructTag, TypeTag -from .common import FAUCET_AUTH_TOKEN, FAUCET_URL, NODE_URL +from .common import API_KEY, FAUCET_AUTH_TOKEN, FAUCET_URL, NODE_URL class CoinClient(RestClient): @@ -87,7 +87,7 @@ async def main(moon_coin_path: str): print(f"Alice: {alice.address()}") print(f"Bob: {bob.address()}") - rest_client = CoinClient(NODE_URL) + rest_client = CoinClient(NODE_URL, client_config=ClientConfig(api_key=API_KEY)) faucet_client = FaucetClient(FAUCET_URL, rest_client, FAUCET_AUTH_TOKEN) alice_fund = faucet_client.fund_account(alice.address(), 20_000_000)