5 releases
0.0.5 | Jun 27, 2023 |
---|---|
0.0.4 | Dec 1, 2021 |
0.0.3 | Oct 7, 2021 |
0.0.2 | Oct 6, 2021 |
0.0.1 | Oct 6, 2021 |
#2 in #ripple
21 downloads per month
68KB
1K
SLoC
Rippled Binary Codec
rippled_binary_codec is a library for serializing a transaction into their canonical binary format.
The core function serialize_tx
takes a transaction JSON and returns a bytes object representing
the transaction in binary format.
Example
A basis transaction serialization example.
Make sure you import the rippled_binary_codec crate on Cargo.toml:
[dependencies]
rippled_binary_codec = 0.0.3
Then, on your main.rs:
use rippled_binary_codec::serialize::serialize_tx;
fn serialize_tx_example(){
// The input json string will be deserialized to serde_json:Value.
let input= r#"{
"Account": "rMBzp8CgpE441cp5PVyA9rpVV7oT8hP3ys",
"Expiration": 595640108,
"Fee": "10",
"Flags": 524288,
"OfferSequence": 1752791,
"Sequence": 1752792,
"SigningPubKey": "03EE83BB432547885C219634A1BC407A9DB0474145D69737D09CCDC63E1DEE7FE3",
"TakerGets": "15000000000",
"TakerPays": {
"currency": "USD",
"issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",
"value": "7072.8"
},
"TransactionType": "OfferCreate",
"TxnSignature": "30440220143759437C04F7B61F012563AFE90D8DAFC46E86035E1D965A9CED282C97D4CE02204CFD241E86F17E011298FC1A39B63386C74306A5DE047E213B0F29EFA4571C2C",
"hash": "73734B611DDA23D3F5F62E20A173B78AB8406AC5015094DA53F53D39B9EDB06C"
}"#;
serialize_tx(input.to_string(), true);
}
For a larger "real world" example, see the crypto-coin-lib repository.
Contributing
Thanks for your help improving the project! We are so happy to have you! PRs and Issues are welcomed.
Related Projects
The serialization processes are implemented in different programming languages:
- In C++ in the rippled code base.
- In Javascript rippled_binary_codec package.
- In Python 3 this repository's code samples section.
Additionally, the following libraries also provide serialization support:
- xrpl4j: A pure Java implementation of the core functionality necessary to interact with the XRP Ledger.
- xrpl: A JavaScript/TypeScript API for interacting with the XRP Ledger.
- xrpl-py: A pure Python implementation for interacting with the XRP Ledger.
License
This project is licensed under the MIT license
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in rippled_binary_codec
by you, shall be licensed as MIT, without any additional terms or conditions.
Dependencies
~9–12MB
~329K SLoC