Skip to main content

amm_id

Function amm_id 

Source
pub fn amm_id(issue1: &Issue, issue2: &Issue) -> Result<LedgerEntryIdBytes>
Expand description

Generates an AMM ledger entry ID for a given pair of accounts and currency code.

An AMM ledger entry ID is used to reference AMM entries in the XRP Ledger.

§Arguments

  • issue1 - The first Issue in the AMM relationship
  • issue2 - The second Issue in the AMM relationship

§Returns

  • Result<LedgerEntryIdBytes> - On success, returns a 32-byte AMM ledger entry ID. On failure, returns an Error with the corresponding error code.

§Safety

This function makes unsafe FFI calls to the host environment through the host::amm_id function.

§Example

use xrpl_common_stdlib::types::account_id::AccountID;
use xrpl_common_stdlib::types::issue::{Issue, XrpIssue, IouIssue};
use xrpl_common_stdlib::types::currency::Currency;
use xrpl_common_stdlib::ledger_entry_ids::amm_id;
use xrpl_common_stdlib::host::trace::{ trace_hex, trace_num };
fn main() -> Result<(), Box<dyn std::error::Error>> {
 let issue1: Issue = Issue::XRP(XrpIssue {});
 let issuer: AccountID =
   AccountID::from(*b"\xd5\xb9\x84VP\x9f \xb5'\x9d\x1eJ.\xe8\xb2\xaa\x82\xaec\xe3");
 let currency = b"RLUSD\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"; // RLUSD currency code
 let currency: Currency = Currency::from(*currency);
 let issue2 = Issue::IOU(IouIssue::new(issuer, currency));
 match amm_id(&issue1, &issue2) {
   xrpl_common_stdlib::host::Result::Ok(id) => {
     trace_hex("Generated ledger entry ID", &id);
   }
   xrpl_common_stdlib::host::Result::Err(e) => {
     trace_num("Error assembling ledger entry ID", e.code() as i64);
   }
 }
 Ok(())
}