Skip to content

Commit

Permalink
Merge branch 'main' into fixCryptoAlg
Browse files Browse the repository at this point in the history
  • Loading branch information
ckeshava authored Feb 14, 2025
2 parents fcc3045 + 271c141 commit 193cfca
Show file tree
Hide file tree
Showing 26 changed files with 973 additions and 18 deletions.
2 changes: 2 additions & 0 deletions .ci-config/rippled.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,8 @@ fixNFTokenPageLinks
fixInnerObjTemplate2
fixEnforceNFTokenTrustline
fixReducedOffersV2
DeepFreeze
PermissionedDomains

# This section can be used to simulate various FeeSettings scenarios for rippled node in standalone mode
[voting]
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/integration_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:

- name: Run docker in background
run: |
docker run --detach --rm -p 5005:5005 -p 6006:6006 --volume "${{ github.workspace }}/.ci-config/":"/etc/opt/ripple/" --name rippled-service --health-cmd="rippled server_nfo || exit 1" --health-interval=5s --health-retries=10 --health-timeout=2s --env GITHUB_ACTIONS=true --env CI=true --entrypoint bash ${{ env.RIPPLED_DOCKER_IMAGE }} -c "rippled -a"
docker run --detach --rm -p 5005:5005 -p 6006:6006 --volume "${{ github.workspace }}/.ci-config/":"/etc/opt/ripple/" --name rippled-service --health-cmd="rippled server_info || exit 1" --health-interval=5s --health-retries=10 --health-timeout=2s --env GITHUB_ACTIONS=true --env CI=true --entrypoint bash ${{ env.RIPPLED_DOCKER_IMAGE }} -c "rippled -a"
- name: Install poetry
if: steps.cache-poetry.outputs.cache-hit != 'true'
Expand Down
67 changes: 67 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [[Unreleased]]

## [4.1.0] - 2025-2-13

### Added

- Support for `Deep Freeze` (XLS-77d)
- Support for `PermissionedDomains` (XLS-80)
- Support `AMMClawback` amendment (XLS-73d)
- Support for the `simulate` RPC ([XLS-69](https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-0069d-simulate))

### Fixed
Expand All @@ -16,43 +22,52 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [4.0.0] - 2024-12-23

### Added

- Support for the Multi-Purpose Tokens (MPT) amendment (XLS-33)
- Add `include_deleted` to ledger_entry request
- Add support for XLS-70d (Credentials)

### BREAKING CHANGE:

- Remove Python 3.7 support to fix dependency installation and use 3.8 as new default.
- Ensure consistent use of ED25519 as the default cryptographic algorithm in `Wallet.from_secret_numbers` method, aligning with changes made in v2.0.0

### Fixed

- Grab the FeeSettings values from the latest validated ledger. Remove hard-coded reference to 10 drops as the reference transaction cost.

## [3.0.0] - 2024-07-16

### BREAKING CHANGE

- Use rippled API v2 as default in requests

### Added

- Support for the DeliverMax field in Payment transactions
- Support for the `feature` RPC

### Fixed

- Allow empty strings for the purpose of removing fields in DIDSet transaction
- Use `NetworkID` in faucet processing to produce a non-ambiguous URL for faucet hosts.

### Removed

- Remove deprecated `full`, `accounts`, and `type` parameters from ledger request model

## [2.6.0] - 2024-06-03

### Added

- Support for the Price Oracles amendment (XLS-47).
- Add `nfts_by_issuer` clio-only API definition
- Included `ctid` field in the `tx` request.
- `from_xrpl` method accepts input dictionary keys exclusively in the proper XRPL format.
- Support for DynamicNFT amendment (XLS-46)

### Fixed

- Added support for `XChainModifyBridge` flag maps (fixing an issue with `NFTokenCreateOffer` flag names)
- Fixed `XChainModifyBridge` validation to allow just clearing of `MinAccountCreateAmount`
- Added support for IDE auto-completion of model constructors
Expand All @@ -62,57 +77,74 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Add the missing `AMMDeposit` Flag `TF_TWO_ASSET_IF_EMPTY`

### Removed:

- Remove Hooks faucet since it's now on the Xahau testnet.

## [2.5.0] - 2023-11-30

### Added

- Support for the DID amendment (XLS-40).
- Support for `server_definitions` RPC

### Fixed

- Exported `get_nftoken_id` and `parse_nftoken_id` at the `xrpl.utils` level
- Fixed issue in `get_nftoken_id` where error is opaque when there are no `NFTokenPage`s

### Changed

- Removed sidechain-net1 Devnet faucet support as it has been decommissioned. Users should instead use the bridge between Devnet and sidechain-net2 for testing.
- Removed amm-devnet faucet support as is will soon be decommissioned

## [2.4.0] - 2023-09-27

### Added

- Added new syntax for `SetFee` pseudo transaction sent after the [XRPFees](https://xrpl.org/known-amendments.html#xrpfees) amendment. (Backwards compatible)
- Support for [XLS-38d (XChainBridge)](https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-38d-XChainBridge)

### Fixed

- Update request models related to AMM
- Better error handling for when a `Wallet` is passed into an account or destination field
- Fixed AMMBid fields (BidMin, BidMax) with correct type IssuedCurrencyAmount

## [2.3.0] - 2023-08-24

### Added

- Add AMM support [XLS-30](https://github.com/XRPLF/XRPL-Standards/discussions/78)

## [2.2.0] - 2023-08-07

### Added

- Added new `Clawback` transaction as per [XLS-39](https://github.com/XRPLF/XRPL-Standards/discussions/94)

## [2.1.0] - 2023-07-24

### Fixed

- Replaced alias for `classic_address` with separate property to work around this mypy issue:
https://github.com/python/mypy/issues/6700

## [2.0.0] - 2023-07-05

### BREAKING CHANGE

- The default signing algorithm in the `Wallet` was changed from secp256k1 to ed25519

### Added:

- Wallet support for regular key compatibility
- Added new ways of wallet generation: `from_seed`, `from_secret`, `from_entropy`, `from_secret_numbers`
- Added `address` alias to `Wallet.classic_address`
- Replaced `Wallet.classic_address` with `Wallet.address` to avoid confusion. (`classic_address` is the same as your XRPL account `address`, and is only called classic since it's an older standard than `x-address`)
- Added `network_id` to clients in order to use the `Client` with networks beyond mainnet

### Changed:

- Updated params for `Wallet` class constructor
- `Wallet.address` is now readonly
- Removed `sequence` from `Wallet` class
Expand All @@ -125,11 +157,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- `XRP.to_amount` now converts from XRP to drops, instead of expecting a drops amount

### Fixed:

- Added a sort of the account IDs in `multisign`, so that the `multisign` always works.
- Add `ledger_hash` and `ledger_index` to `account_nfts`, `nft_buy_offers`, and `nft_sell_offers` requests.
- Add `nft_page` to `ledger_entry` request.

### Removed:

- `send_reliable_submission` has been replaced by `submit_and_wait`
- Longer aliases for signing/submitting functions have been removed. Specifically
- `submit_transaction` is now `submit`
Expand All @@ -145,26 +179,33 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- `get_transaction_from_hash`

## [1.9.0] - 2023-06-13

### Added:

- Added `submit_and_wait` to sign (if needed), autofill, submit a transaction and wait for its final outcome
- `submit` and `send_reliable_submission` now accept an optional boolean param `fail_hard` (if `True` halt the submission if it's not immediately validated)
- Added sidechain devnet support to faucet generation
- Added `user_agent` and `usage_context` to `generate_faucet_wallet`

### Changed:

- Allowed keypairs.sign to take a hex string in addition to bytes

### Fixed:

- Refactored `does_account_exist` and `get_balance` to avoid deprecated methods and use `ledger_index` parameter
- Fixed crashes in the `SignerListSet` validation
- Improved error messages in `send_reliable_submission`
- Better error handling in reliable submission

### Removed:

- RPCs and utils related to the old sidechain design

## [1.8.0] - 2023-04-10

### Added:

- Created function alias to `safe_sign_transaction` called `sign` - safe originally used to indicate local offline signing (keys aren't exposed)
- Created function alias to `safe_sign_and_autofill_transaction` called `autofill_and_sign` to reflect order of operations
- Created function alias to `submit_transaction` called `submit`
Expand All @@ -175,21 +216,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Added the algorithm used to encode a wallet's seed to the wallet.

### Changed:

- `check_fee` now has a higher limit that is less likely to be hit
- When connected hooks v2 testnet generate_faucet_wallet now defaults to using the faucet instead of requiring specification
- Deprecated `get_account_info`, `get_transaction_from_hash`, `get_account_payment_transactions` for direct requests
- Private function `request_impl` has been renamed to `_request_impl`. Users should always use `request` over `request_impl`.
- Removed nft-devnet faucet support as it has been decommissioned ([Blog Post](https://xrpl.org/blog/2023/nft-devnet-decommission.html))

### Fixed:

- Properly type the instance functions of NestedModel
- Add additional check to `txnNotFound` error from `reliable_submission` due to race condition
- Add `nft_offer` type in `AccountObjects`
- Handle errors better in `send_reliable_submission`
- Made `send_reliable_submission` wait the full duration until `LastLedgerSequence` passes by

## [1.7.0] - 2022-10-12

### Added:

- Support for ExpandedSignerList amendment that expands the maximum signer list to 32 entries
- Function to parse the final account balances from a transaction's metadata
- Function to parse order book changes from a transaction's metadata
Expand All @@ -199,42 +244,53 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Common field `ticket_sequence` to Transaction class

### Fixed:

- Typing for factory classmethods on models
- Use properly encoded transactions in `Sign`, `SignFor`, and `SignAndSubmit`
- Fix Sphinx build errors due to incompatible version bumps

## [1.6.0] - 2022-06-02

### Added:

- Support for dynamic fee calculation
- Function to parse account balances from a transaction's metadata
- Better error handling for invalid client URL
- Exported SubscribeBook

### Fixed

- Resolve `txnNotFound` error with `send_reliable_submission` when waiting for a submitted malformed transaction
- Small typing mistake in GenericRequest
- Fix bug in GenericRequest.to_dict()

## [1.5.0] - 2022-04-25

### Added

- Support setting flags with booleans. For each transaction type supporting flags there is a `FlagInterface` to set the flags with booleans.
- `federator_info` RPC support
- Helper method for creating a cross-chain payment to/from a sidechain
- Helper method for parsing an NFTokenID

### Fixed

- Updated NFT names to match new 1.9.0 rippled names
- `xrpl.asyncio.clients` exports (now includes `request_to_websocket`, `websocket_to_response`)
- Adds optional `owner` field to NFTokenBurn
- Allows lower-case currency codes

## [1.4.0] - 2022-02-24

### Added

- Sync and async `generate_faucet_wallet` functions now support a custom
faucet host

## [1.3.0] - 2021-12-17

### Added

- Support for the [XLS-20 NFT proposal](https://github.com/XRPLF/XRPL-Standards/discussions/46)
- `xrpl.models.amounts.get_amount_value` helper function
- `xrpl.utils.str_to_hex` and `xrpl.utils.hex_to_str` helpers
Expand All @@ -248,6 +304,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Exports `Transaction`, `Response`, pseudo-transactions at the `xrpl.models` level

### Fixed

- Improves typing of `Response.result`
- Makes the default ledger version for `get_next_valid_seq_number` `current` instead of `validated`
- Stops erroring on non-`tesSUCCESS` responses in reliable transaction submission
Expand All @@ -261,21 +318,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Fixes bug where autofilling using an `xAddress` with `None` in the Destination Tag threw a KeyError

## [1.2.0] - 2021-11-09

### Added

- Support for Python 3.10

### Fixed

- Improves documentation on using websocket clients.
- Fixes an issue sending NoRippleCheck requests
- Allows projects that use xrpl-py as a dependency to use typing

## [1.1.1] - 2021-07-02

### Fixed

- Fixes an issue encoding some non-standard currency values
- Corrects installation instructions in documentation

## [1.1.0] - 2021-06-16

### Added

- Option for `Transaction.flags` to be a `List` of `int`s instead of just an `int`
- Instance method in `Transaction` objects to calculate their hashes locally
- Additional reliability to `send_reliable_submission` by getting the hash before submitting
Expand All @@ -291,6 +355,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- A general `from_dict` method for `Request` models, analogous to `Transaction.from_dict`

### Fixed

- Typos in docs/tests
- Improved readability of the README/documentation
- Expose `xrpl.utils` at the top level
Expand All @@ -301,6 +366,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Better error message reporting

## [1.0.0] - 2021-03-31

### Added

- Initial release! Please open up an issue in our repo if you have any
feedback or issues to report.
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "xrpl-py"
version = "4.0.0"
version = "4.1.0"
description = "A complete Python library for interacting with the XRP ledger"
readme = "README.md"
repository = "https://github.com/XRPLF/xrpl-py"
Expand Down
Loading

0 comments on commit 193cfca

Please sign in to comment.