2.8.0
This update include breaking changes
PyPi Package: https://pypi.org/project/stellar-sdk/2.8.0/
Documentation: https://stellar-sdk.readthedocs.io/en/2.8.0/
Update
- feat: add support for Stellar Protocol 14. (#367)
Added
-
feat: add support for CAP-23. (#371)
We have added methods to
TransactionBuilder
, you can use them to construct corresponding operations, method list:- append_create_claimable_balance_op
- append_claim_claimable_balance_op
We have added
ClaimPredicate
, please use helper function to build ClaimPredicate, method list:- predicate_and
- predicate_or
- predicate_not
- predicate_before_absolute_time
- predicate_before_relative_time
- predicate_unconditional
The following is an example.
from stellar_sdk import Server, TransactionBuilder, Keypair, ClaimPredicate, Claimant, Asset, Network sponsor_secret = "SAOJHTVFCYVKUMPNQI7RUSI566GKWXP7RXOHP4SV6JAVUQKSIWGPZFPJ" claimant_secret = "SBOLGU7D7A7MTY4JZ3WZUKSKB6NZBQFNQG3BZT4HZW4AAVZJRG7TWXGQ" sponsor_keypair = Keypair.from_secret(sponsor_secret) claimant_keypair = Keypair.from_secret(claimant_secret) server = Server("https://horizon-testnet.stellar.org") network_passphrase = Network.TESTNET_NETWORK_PASSPHRASE # Create Claimable Balance sponsor_account = server.load_account(sponsor_keypair.public_key) predicate_left = ClaimPredicate.predicate_before_relative_time(60 * 60 * 24 * 7) predicate_right = ClaimPredicate.predicate_not(ClaimPredicate.predicate_before_relative_time(60 * 3)) predicate = ClaimPredicate.predicate_and(predicate_left, predicate_right) claimant = Claimant(destination=claimant_keypair.public_key, predicate=predicate) create_claimable_balance_te = TransactionBuilder( source_account=sponsor_account, network_passphrase=network_passphrase ).append_create_claimable_balance_op( asset=Asset.native(), amount="100", claimants=[claimant], source=sponsor_keypair.public_key ).build() create_claimable_balance_te.sign(sponsor_keypair) create_claimable_balance_resp = server.submit_transaction(create_claimable_balance_te) print(create_claimable_balance_resp) # Claim Claimable Balance balance_id = "00000000550e14acbdafcd3089289363b3b0c8bec9b4edd87298c690655b4b2456d68ba0" claimant_account = server.load_account(claimant_keypair.public_key) claim_claimable_balance_te = TransactionBuilder( source_account=claimant_account, network_passphrase=network_passphrase ).append_claim_claimable_balance_op( balance_id=balance_id, source=claimant_keypair.public_key ).build() claim_claimable_balance_te.sign(claimant_keypair) claim_claimable_balance_resp = server.submit_transaction(claim_claimable_balance_te) print(claim_claimable_balance_resp)
-
feat: add support for CAP-33. (#372 #374)
We have added methods to
TransactionBuilder
, you can use them to construct corresponding operations, method list:- append_begin_sponsoring_future_reserves_op
- append_end_sponsoring_future_reserves_op
- append_revoke_account_sponsorship_op
- append_revoke_trustline_sponsorship_op
- append_revoke_offer_sponsorship_op
- append_revoke_data_sponsorship_op
- append_revoke_claimable_balance_sponsorship_op
- append_revoke_ed25519_public_key_signer_sponsorship_op
- append_revoke_hashx_signer_sponsorship_op
- append_revoke_pre_auth_tx_signer_sponsorship_op
The following is an example.
from stellar_sdk import Server, TransactionBuilder, Keypair, Network sponsor_secret = "SAOJHTVFCYVKUMPNQI7RUSI566GKWXP7RXOHP4SV6JAVUQKSIWGPZFPJ" new_account_secret = "SCN5D72JHQAHUHGIA23SLS3LBYCPHJWD7HLYNJRBBZIG4PD74UCGQBYM" sponsor_keypair = Keypair.from_secret(sponsor_secret) newly_created_keypair = Keypair.from_secret(new_account_secret) server = Server("https://horizon-testnet.stellar.org") network_passphrase = Network.TESTNET_NETWORK_PASSPHRASE # Sponsoring Account Creation # https://github.com/stellar/stellar-protocol/blob/master/core/cap-0033.md#example-sponsoring-account-creation sponsor_account = server.load_account(sponsor_keypair.public_key) sponsoring_account_creation_te = TransactionBuilder( source_account=sponsor_account, network_passphrase=network_passphrase ).append_begin_sponsoring_future_reserves_op( sponsored_id=newly_created_keypair.public_key, source=sponsor_keypair.public_key ).append_create_account_op( destination=newly_created_keypair.public_key, starting_balance="10", source=sponsor_keypair.public_key ).append_end_sponsoring_future_reserves_op( source=newly_created_keypair.public_key ).build() sponsoring_account_creation_te.sign(sponsor_keypair) sponsoring_account_creation_te.sign(new_account_secret) sponsoring_account_creation_resp = server.submit_transaction(sponsoring_account_creation_te) print(sponsoring_account_creation_resp) # Revoke Account Sponsorship sponsor_account = server.load_account(sponsor_keypair.public_key) revoke_account_sponsorship_te = TransactionBuilder( source_account=sponsor_account, network_passphrase=network_passphrase ).append_revoke_account_sponsorship_op( account_id=newly_created_keypair.public_key, source=sponsor_keypair.public_key ).build() revoke_account_sponsorship_te.sign(sponsor_keypair) revoke_account_sponsorship_resp = server.submit_transaction(revoke_account_sponsorship_te) print(revoke_account_sponsorship_resp)
-
feat: add support for new endpoint of Protocol 14. (#373)
The following are the newly added endpoints.
- server.claimable_balances().claimable_balance(claimable_balance_id)
- server.claimable_balances().for_asset(asset)
- server.claimable_balances().for_sponsor(sponsor)
- server.claimable_balances().for_claimant(claimant)
- server.accounts().for_sponsor(sponsor)
- server.offers().for_sponsor(sponsor)
Breaking changes
- The type of
stellar_sdk.signer.Signer.signer_key
is changed fromXdr.types.SignerKey
tostellar_sdk.signer_key.SignerKey
.