AURA

Address Lists

Recipient and contract allow/deny lists.

The address-lists domain manages per-treasury allow/deny lists evaluated during propose_transaction. Builders live under instructions::address_lists::*. Examples assume:

use aura_sdk::{anchor_accounts as accounts, AuraClient};
use solana_sdk::signature::{Keypair, Signer};

let client = AuraClient::devnet();
let now = chrono::Utc::now().timestamp();
let sys = solana_sdk::system_program::ID;
// `address_list` is the treasury's address-list PDA.

init_address_list

Creates an address list. mode: 0 = allow, 1 = deny; chain is the Ika chain code (positional). Accounts: owner (s, w), treasury, address_list (w), system_program.

let sig = client.init_address_list(
    &owner,
    accounts::InitAddressList { owner: owner.pubkey(), treasury, address_list, system_program: sys },
    0, // mode (allow)
    1, // chain (Ethereum)
    now,
)?;

manage_address_list

Replaces the list's addresses (positional args). Accounts: operator (s), treasury, operator_role?, address_list (w) via ManageAddressList.

let sig = client.manage_address_list(
    &operator,
    accounts::ManageAddressList { operator: operator.pubkey(), treasury, operator_role: None, address_list },
    0, // mode
    2, // chain
    vec!["0x000000000000000000000000000000000000dead".to_string()],
    now,
)?;

update_address_list_entry

Adds (add: true) or removes (add: false) a single address. Accounts: operator (s), treasury, operator_role?, address_list (w).

let sig = client.update_address_list_entry(
    &operator,
    accounts::ManageAddressList { operator: operator.pubkey(), treasury, operator_role: None, address_list },
    "0x000000000000000000000000000000000000beef".to_string(),
    true, // add
    now,
)?;

clear_address_list

Removes all addresses. Accounts: operator (s), treasury, operator_role?, address_list (w).

let sig = client.clear_address_list(
    &operator,
    accounts::ManageAddressList { operator: operator.pubkey(), treasury, operator_role: None, address_list },
    now,
)?;

close_address_list

Closes the list account and reclaims rent. Accounts: owner (s, w), treasury, address_list (w). No arguments.

let sig = client.close_address_list(
    &owner,
    accounts::CloseAddressList { owner: owner.pubkey(), treasury, address_list },
)?;

On this page