rippled_binary_codec

Crates.iorippled_binary_codec
lib.rsrippled_binary_codec
version0.0.5
sourcesrc
created_at2021-10-06 09:31:43.435043
updated_at2023-06-27 11:52:38.230387
descriptionSerializing a XRP transaction from JSON into their canonical binary format.
homepage
repositoryhttps://github.com/KeystoneHQ/rippled_binary_codec.git
max_upload_size
id461053
size106,553
owners (github:keystonehq:owners)

documentation

https://docs.rs/rippled_binary_codec

README

Rippled Binary Codec

rippled_binary_codec is a library for serializing a transaction into their canonical binary format.

Build status

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:

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.

Commit count: 21

cargo fmt