Arche Protocol Collaterals
Fetch collateral events for versions 0
to 130000
.
Code
Rust
use futures::StreamExt;
use std::{collections::HashSet, sync::Arc};
use pangea_client::{
core::types::ChainId, query::Bound,
ClientBuilder, Format, WsProvider,
provider::MoveProvider, requests::arche::GetCollateralsRequest,
};
#[tokio::main]
async fn main() {
dotenvy::dotenv_override().ok();
let client = match ClientBuilder::default()
.endpoint("movement.app.pangea.foundation")
.build::<WsProvider>()
.await
{
Ok(client) => Arc::new(client),
Err(e) => {
eprintln!("Client failed to initialize:\n{e}");
return;
}
};
{
let request = GetCollateralsRequest {
chains: HashSet::from([ChainId::MOVEMENT]),
from_block: Bound::Exact(0),
to_block: Bound::Exact(130000),
..Default::default()
};
let stream = match client
.get_move_arche_collaterals_by_format(request, Format::JsonStream, false)
.await
{
Ok(stream) => stream,
Err(e) => {
eprintln!("Request failed\n{e}");
return;
}
};
futures::pin_mut!(stream);
while let Some(chunk) = stream.next().await {
let chunk = String::from_utf8(chunk.unwrap()).unwrap();
println!("{chunk}");
}
}
}
Response
{
...
{
"block_number": 127617,
"transaction_hash": "0x26aa5f47e898f0982106397ed55662330b3bcf4b3b91955647fc0beab4196b22",
"log_index": 2,
"timestamp": 1741605374912112,
"arche_address": "0xbcc40f56a3538c9cc25254f485f48e6f150f9acac53a2e92c6d698a9c1751a0b",
"event_type": "NewAnnualPercentageYield",
"asset_address": "0x000000000000000000000000000000000000000000000000000000000000000a",
"asset_name": "Move Coin",
"asset_symbol": "MOVE",
"asset_decimals": 8,
"state": null,
"ltv_numerator": 13,
"ltv_denominator": 200,
"annual_interest_rate_numerator": null,
"annual_interest_rate_denominator": null,
"liquidation_discount_numerator": null,
"liquidation_discount_denominator": null,
"max_borrowable_amount": null,
"borrow_fee_numerator": null,
"borrow_fee_denominator": null
}
}
Query parameters
chains
: Filters the data bychain
.from_block
: Filters the data by a startingversion
. As Move chains use a per-transaction versioned database, we useversion
interchangably withblock_number
and omit blocks altogether.to_block
: Filters the data by an endingversion
. As Move chains use a per-transaction versioned database, we useversion
interchangably withblock_number
and omit blocks altogether.event_type__in
: Filters the data by a list ofevent_type
.asset_address__in
: Filters the data by a list of collateralasset_address
.state__in
: Filters the data by a list of collateralstate
(Activated
,Deactivated
,Removed
).