You need to create RPC connection before actually sending rpc request to the service.
Please remember that all rpc API is provided as an async function.
const {RPCAgent} = require("chia-agent");
const {create_data_store} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({
service: "data_layer", // connect to local farmer service using config file.
});
// Then call RPC function
const response = await create_data_store(agent, {...});
// Once agent is instantiated, you can re-use it everytime you want to request farmer API.
/*
* You can instantiate `agent` with hostname/port.
* See https://github.com/Chia-Mine/chia-agent/blob/main/src/rpc/index.ts
*/
const agent = new RPCAgent({
protocol: "https",
host: "aaa.bbb.ccc",
port: 8559,
ca_cert: fs.readFileSync(...),
client_cert: fs.readFileSync(...),
client_key: fs.readFileSync(...),
});
const {RPCAgent} = require("chia-agent");
const {wallet_log_in} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await wallet_log_in(agent, params);
{
fingerprint: int;
}
{}
const {RPCAgent} = require("chia-agent");
const {create_data_store} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await create_data_store(agent, params);
{
fee?: uint64;
verbose?: bool;
}
{
txs?: TransactionRecord[];
id: str;
}
For content of TransactionRecord
,
see https://github.com/Chia-Mine/chia-agent/blob/main/src/api/chia/wallet/transaction_record.ts
const {RPCAgent} = require("chia-agent");
const {get_owned_stores} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await get_owned_stores(agent);
{
store_ids: str[];
}
const {RPCAgent} = require("chia-agent");
const {batch_update} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await batch_update(agent, params);
{
fee?: uint64;
changelist: BatchUpdateChange[];
id: str;
submit_on_chain?: bool;
}
{
tx_id?: bytes32;
}
For content of BatchUpdateChange
,
see https://github.com/Chia-Mine/chia-agent/blob/main/src/api/rpc/data_layer/index.ts
const {RPCAgent} = require("chia-agent");
const {multistore_batch_update} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await multistore_batch_update(agent, params);
{
fee?: uint64;
store_updates: Array<{
store_id: str;
changelist: BatchUpdateChange[];
}>;
submit_on_chain?: bool;
}
{
tx_id?: bytes32[];
}
For content of BatchUpdateChange
,
see https://github.com/Chia-Mine/chia-agent/blob/main/src/api/rpc/data_layer/index.ts
const {RPCAgent} = require("chia-agent");
const {submit_pending_root} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await submit_pending_root(agent, params);
{
id: str;
fee?: uint64;
}
{
tx_id: bytes32;
}
const {RPCAgent} = require("chia-agent");
const {submit_all_pending_roots} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await submit_all_pending_roots(agent, params);
{
fee?: uint64;
}
{
tx_id: bytes32[];
}
const {RPCAgent} = require("chia-agent");
const {get_value} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await get_value(agent, params);
{
id: str;
key: str;
root_hash?: str;
}
{
value: str|None;
}
const {RPCAgent} = require("chia-agent");
const {get_keys} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await get_keys(agent, params);
{
id: str;
root_hash?: str;
page?: int;
max_page_size?: int;
}
{
keys: str[];
} | {
keys: str[];
total_pages: int;
total_bytes: int;
root_hash: Optional<bytes32>;
}
const {RPCAgent} = require("chia-agent");
const {get_keys_values} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await get_keys_values(agent, params);
{
id: str;
root_hash?: str;
}
{
keys_values: Array<{
hash: str;
key: str;
value: str;
}>;
}
const {RPCAgent} = require("chia-agent");
const {get_ancestors} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await get_ancestors(agent, params);
{
id: str;
hash: str;
}
{
ancestors: Array<{
hash: str;
left_hash: str;
right_hash: str;
}>;
}
const {RPCAgent} = require("chia-agent");
const {get_root} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await get_root(agent, params);
{
id: str;
}
{
hash: bytes32;
confirmed: bool;
timestamp: uint64;
}
const {RPCAgent} = require("chia-agent");
const {get_local_root} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await get_local_root(agent, params);
{
id: str;
}
{
hash: bytes32|None;
}
const {RPCAgent} = require("chia-agent");
const {get_roots} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await get_roots(agent, params);
{
ids: str[];
}
{
root_hashes: Array<{
id: bytes32;
hash: bytes32;
confirmed: bool;
timestamp: uint64;
}>;
}
const {RPCAgent} = require("chia-agent");
const {delete_key} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await delete_key(agent, params);
{
fee?: uint64;
key: str;
id: str;
}
{
tx_id: bytes32;
}
const {RPCAgent} = require("chia-agent");
const {insert} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await insert(agent, params);
{
fee?: uint64;
key: str;
value: str;
id: str;
}
{
tx_id: bytes32;
}
const {RPCAgent} = require("chia-agent");
const {subscribe} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await subscribe(agent, params);
{
id: str;
urls: str[];
}
{
}
const {RPCAgent} = require("chia-agent");
const {unsubscribe} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await unsubscribe(agent, params);
{
id: str;
retain? : bool;
}
{
}
const {RPCAgent} = require("chia-agent");
const {add_mirror} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await add_mirror(agent, params);
{
id: str;
urls: str[];
amount: uint64;
fee?: uint64;
}
{
}
const {RPCAgent} = require("chia-agent");
const {delete_mirror} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await delete_mirror(agent, params);
{
coin_id: str;
fee?: uint64;
}
{
}
const {RPCAgent} = require("chia-agent");
const {get_mirrors} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await get_mirrors(agent, params);
{
id: str;
}
{
mirrors: Array<{
coin_id: str;
launcher_id: str;
amount: uint64;
urls: str[];
ours: bool;
}>;
}
const {RPCAgent} = require("chia-agent");
const {remove_subscriptions} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await remove_subscriptions(agent, params);
{
id: str;
urls: str[];
}
{
}
const {RPCAgent} = require("chia-agent");
const {subscriptions} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await subscriptions(agent);
{
store_ids: str[];
}
const {RPCAgent} = require("chia-agent");
const {get_kv_diff} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await get_kv_diff(agent, params);
{
id: str;
hash_1: str;
hash_2: str;
page?: int;
max_page_size?: int;
}
{
diff: Array<{
type: str;
key: str;
value: str;
}>;
} | {
diff: Array<{
type: str;
key: str;
value: str;
}>;
total_pages: int;
total_bytes: int;
}
const {RPCAgent} = require("chia-agent");
const {get_root_history} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await get_root_history(agent, params);
{
id: str;
}
{
root_history: Array<{
root_hash: bytes32;
confirmed: bool;
timestamp: uint64;
}>;
}
const {RPCAgent} = require("chia-agent");
const {add_missing_files} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await add_missing_files(agent, params);
{
ids?: str[];
overwrite?: bool;
foldername?: str;
}
{
}
const {RPCAgent} = require("chia-agent");
const {make_offer} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await make_offer(agent, params);
{
fee?: uint64;
maker: OfferStoreMarshalled;
taker: OfferStoreMarshalled;
}
{
success: bool;
offer: OfferMarshalled;
}
For content of OfferStoreMarshalled
and OfferMarshalled
,
see https://github.com/Chia-Mine/chia-agent/blob/main/src/api/chia/data_layer/data_layer.util.ts
const {RPCAgent} = require("chia-agent");
const {take_offer} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await take_offer(agent, params);
{
fee?: uint64;
offer: OfferMarshalled;
}
{
success: bool;
trade_id: str;
}
For content of OfferMarshalled
,
see https://github.com/Chia-Mine/chia-agent/blob/main/src/api/chia/data_layer/data_layer.util.ts
const {RPCAgent} = require("chia-agent");
const {verify_offer} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await verify_offer(agent, params);
{
fee?: uint64;
offer: OfferMarshalled;
}
{
success: bool;
valid: bool;
error: Optional<str>;
fee: Optional<uint64>;
}
const {RPCAgent} = require("chia-agent");
const {cancel_offer} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await cancel_offer(agent, params);
{
trade_id: str;
secure: bool;
fee?: uint64;
}
{
success: bool;
}
const {RPCAgent} = require("chia-agent");
const {get_sync_status} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await get_sync_status(agent, params);
{
id: str;
}
{
sync_status: SyncStatus;
}
For content of SyncStatus
,
see https://github.com/Chia-Mine/chia-agent/blob/main/src/api/chia/data_layer/data_layer.util.ts
const {RPCAgent} = require("chia-agent");
const {check_plugins} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await check_plugins(agent, params);
PluginStatusMarshalled
For content of PluginStatusMarshalled
,
see https://github.com/Chia-Mine/chia-agent/blob/main/src/api/chia/data_layer/data_layer.util.ts
const {RPCAgent} = require("chia-agent");
const {clear_pending_roots} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await clear_pending_roots(agent, params);
{
store_id: str;
}
{
success: bool;
root: Optional<RootMarshalled>;
}
For content of RootMarshalled
,
see https://github.com/Chia-Mine/chia-agent/blob/main/src/api/chia/data_layer/data_layer.util.ts
const {RPCAgent} = require("chia-agent");
const {get_proof} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await get_proof(agent, params);
{
store_id: bytes32;
keys: bytes[];
}
{
proof: DLProof;
success: bool;
}
For content of DLProof
,
see https://github.com/Chia-Mine/chia-agent/blob/main/src/api/chia/data_layer/data_layer.util.ts
const {RPCAgent} = require("chia-agent");
const {verify_proof} = require("chia-agent/api/rpc/data_layer");
const agent = new RPCAgent({service: "data_layer"});
const response = await verify_proof(agent, params);
DLProof
VerifyProofResponse
For content of DLProof
and VerifyProofResponse
,
see https://github.com/Chia-Mine/chia-agent/blob/main/src/api/chia/data_layer/data_layer.util.ts