toncenter-v3-api
Version:
Complete TypeScript/JavaScript library for TON Center v3 API with ALL methods support
1,136 lines (1,134 loc) • 39 kB
JavaScript
// src/const.ts
var BASE_URLS = {
mainnet: "https://toncenter.com/api/v3",
testnet: "https://testnet.toncenter.com/api/v3"
};
var DEFAULT_CHAIN = "mainnet";
// src/blockchain/adjacentTransactions.ts
async function getAdjacentTransactions(params, options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/adjacentTransactions`);
if (params.hash)
url.searchParams.append("hash", params.hash);
if (params.direction)
url.searchParams.append("direction", params.direction);
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "GET",
headers
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
// src/blockchain/blocks.ts
async function getBlocks(params = {}, options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/blocks`);
if (params.workchain !== undefined)
url.searchParams.append("workchain", params.workchain.toString());
if (params.shard)
url.searchParams.append("shard", params.shard);
if (params.seqno !== undefined)
url.searchParams.append("seqno", params.seqno.toString());
if (params.mc_seqno !== undefined)
url.searchParams.append("mc_seqno", params.mc_seqno.toString());
if (params.start_utime !== undefined)
url.searchParams.append("start_utime", params.start_utime.toString());
if (params.end_utime !== undefined)
url.searchParams.append("end_utime", params.end_utime.toString());
if (params.start_lt !== undefined)
url.searchParams.append("start_lt", params.start_lt.toString());
if (params.end_lt !== undefined)
url.searchParams.append("end_lt", params.end_lt.toString());
if (params.limit !== undefined)
url.searchParams.append("limit", params.limit.toString());
if (params.offset !== undefined)
url.searchParams.append("offset", params.offset.toString());
if (params.sort)
url.searchParams.append("sort", params.sort);
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "GET",
headers
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
// src/blockchain/masterchainBlockShardState.ts
async function getMasterchainBlockShardState(params, options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/masterchainBlockShardState`);
url.searchParams.append("seqno", params.seqno.toString());
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "GET",
headers
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
// src/blockchain/masterchainBlockShards.ts
async function getMasterchainBlockShards(params, options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/masterchainBlockShards`);
url.searchParams.append("seqno", params.seqno.toString());
if (params.limit !== undefined)
url.searchParams.append("limit", params.limit.toString());
if (params.offset !== undefined)
url.searchParams.append("offset", params.offset.toString());
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "GET",
headers
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
// src/blockchain/masterchainInfo.ts
async function getMasterchainInfo(options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/masterchainInfo`);
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "GET",
headers
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
// src/blockchain/messages.ts
async function getMessages(params = {}, options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/messages`);
if (params.msg_hash) {
params.msg_hash.forEach((hash) => url.searchParams.append("msg_hash", hash));
}
if (params.body_hash)
url.searchParams.append("body_hash", params.body_hash);
if (params.source)
url.searchParams.append("source", params.source);
if (params.destination)
url.searchParams.append("destination", params.destination);
if (params.opcode)
url.searchParams.append("opcode", params.opcode);
if (params.start_utime !== undefined)
url.searchParams.append("start_utime", params.start_utime.toString());
if (params.end_utime !== undefined)
url.searchParams.append("end_utime", params.end_utime.toString());
if (params.start_lt !== undefined)
url.searchParams.append("start_lt", params.start_lt.toString());
if (params.end_lt !== undefined)
url.searchParams.append("end_lt", params.end_lt.toString());
if (params.direction)
url.searchParams.append("direction", params.direction);
if (params.exclude_externals !== undefined)
url.searchParams.append("exclude_externals", params.exclude_externals.toString());
if (params.only_externals !== undefined)
url.searchParams.append("only_externals", params.only_externals.toString());
if (params.limit !== undefined)
url.searchParams.append("limit", params.limit.toString());
if (params.offset !== undefined)
url.searchParams.append("offset", params.offset.toString());
if (params.sort)
url.searchParams.append("sort", params.sort);
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "GET",
headers
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
// src/blockchain/pendingTransactions.ts
async function getPendingTransactions(params = {}, options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/pendingTransactions`);
if (params.account) {
params.account.forEach((acc) => url.searchParams.append("account", acc));
}
if (params.trace_id) {
params.trace_id.forEach((id) => url.searchParams.append("trace_id", id));
}
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "GET",
headers
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
// src/blockchain/transactions.ts
async function getTransactions(params = {}, options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/transactions`);
if (params.workchain !== undefined)
url.searchParams.append("workchain", params.workchain.toString());
if (params.shard)
url.searchParams.append("shard", params.shard);
if (params.seqno !== undefined)
url.searchParams.append("seqno", params.seqno.toString());
if (params.mc_seqno !== undefined)
url.searchParams.append("mc_seqno", params.mc_seqno.toString());
if (params.account) {
params.account.forEach((acc) => url.searchParams.append("account", acc));
}
if (params.exclude_account) {
params.exclude_account.forEach((acc) => url.searchParams.append("exclude_account", acc));
}
if (params.hash)
url.searchParams.append("hash", params.hash);
if (params.lt !== undefined)
url.searchParams.append("lt", params.lt.toString());
if (params.start_utime !== undefined)
url.searchParams.append("start_utime", params.start_utime.toString());
if (params.end_utime !== undefined)
url.searchParams.append("end_utime", params.end_utime.toString());
if (params.start_lt !== undefined)
url.searchParams.append("start_lt", params.start_lt.toString());
if (params.end_lt !== undefined)
url.searchParams.append("end_lt", params.end_lt.toString());
if (params.limit !== undefined)
url.searchParams.append("limit", params.limit.toString());
if (params.offset !== undefined)
url.searchParams.append("offset", params.offset.toString());
if (params.sort)
url.searchParams.append("sort", params.sort);
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "GET",
headers
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
// src/blockchain/transactionsByMasterchainBlock.ts
async function getTransactionsByMasterchainBlock(params, options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/transactionsByMasterchainBlock`);
url.searchParams.append("seqno", params.seqno.toString());
if (params.limit !== undefined)
url.searchParams.append("limit", params.limit.toString());
if (params.offset !== undefined)
url.searchParams.append("offset", params.offset.toString());
if (params.sort)
url.searchParams.append("sort", params.sort);
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "GET",
headers
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
// src/blockchain/transactionsByMessage.ts
async function getTransactionsByMessage(params = {}, options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/transactionsByMessage`);
if (params.msg_hash)
url.searchParams.append("msg_hash", params.msg_hash);
if (params.body_hash)
url.searchParams.append("body_hash", params.body_hash);
if (params.opcode)
url.searchParams.append("opcode", params.opcode);
if (params.direction)
url.searchParams.append("direction", params.direction);
if (params.limit !== undefined)
url.searchParams.append("limit", params.limit.toString());
if (params.offset !== undefined)
url.searchParams.append("offset", params.offset.toString());
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "GET",
headers
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
// src/actions/getActions.ts
async function getActions(params = {}, options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/actions`);
if (params.account)
url.searchParams.append("account", params.account);
if (params.tx_hash) {
params.tx_hash.forEach((hash) => url.searchParams.append("tx_hash", hash));
}
if (params.msg_hash) {
params.msg_hash.forEach((hash) => url.searchParams.append("msg_hash", hash));
}
if (params.action_id) {
params.action_id.forEach((id) => url.searchParams.append("action_id", id));
}
if (params.trace_id) {
params.trace_id.forEach((id) => url.searchParams.append("trace_id", id));
}
if (params.mc_seqno !== undefined)
url.searchParams.append("mc_seqno", params.mc_seqno.toString());
if (params.start_utime !== undefined)
url.searchParams.append("start_utime", params.start_utime.toString());
if (params.end_utime !== undefined)
url.searchParams.append("end_utime", params.end_utime.toString());
if (params.start_lt !== undefined)
url.searchParams.append("start_lt", params.start_lt.toString());
if (params.end_lt !== undefined)
url.searchParams.append("end_lt", params.end_lt.toString());
if (params.action_type) {
params.action_type.forEach((type) => url.searchParams.append("action_type", type));
}
if (params.exclude_action_type) {
params.exclude_action_type.forEach((type) => url.searchParams.append("exclude_action_type", type));
}
if (params.supported_action_types) {
params.supported_action_types.forEach((type) => url.searchParams.append("supported_action_types", type));
}
if (params.include_accounts !== undefined)
url.searchParams.append("include_accounts", params.include_accounts.toString());
if (params.limit !== undefined)
url.searchParams.append("limit", params.limit.toString());
if (params.offset !== undefined)
url.searchParams.append("offset", params.offset.toString());
if (params.sort)
url.searchParams.append("sort", params.sort);
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "GET",
headers
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
// src/actions/getPendingActions.ts
async function getPendingActions(params = {}, options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/pendingActions`);
if (params.account)
url.searchParams.append("account", params.account);
if (params.ext_msg_hash) {
params.ext_msg_hash.forEach((hash) => url.searchParams.append("ext_msg_hash", hash));
}
if (params.supported_action_types) {
params.supported_action_types.forEach((type) => url.searchParams.append("supported_action_types", type));
}
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "GET",
headers
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
// src/actions/getPendingTraces.ts
async function getPendingTraces(params = {}, options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/pendingTraces`);
if (params.account)
url.searchParams.append("account", params.account);
if (params.ext_msg_hash) {
params.ext_msg_hash.forEach((hash) => url.searchParams.append("ext_msg_hash", hash));
}
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "GET",
headers
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
// src/actions/getTraces.ts
async function getTraces(params = {}, options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/traces`);
if (params.account)
url.searchParams.append("account", params.account);
if (params.trace_id) {
params.trace_id.forEach((id) => url.searchParams.append("trace_id", id));
}
if (params.tx_hash) {
params.tx_hash.forEach((hash) => url.searchParams.append("tx_hash", hash));
}
if (params.msg_hash) {
params.msg_hash.forEach((hash) => url.searchParams.append("msg_hash", hash));
}
if (params.mc_seqno !== undefined)
url.searchParams.append("mc_seqno", params.mc_seqno.toString());
if (params.start_utime !== undefined)
url.searchParams.append("start_utime", params.start_utime.toString());
if (params.end_utime !== undefined)
url.searchParams.append("end_utime", params.end_utime.toString());
if (params.start_lt !== undefined)
url.searchParams.append("start_lt", params.start_lt.toString());
if (params.end_lt !== undefined)
url.searchParams.append("end_lt", params.end_lt.toString());
if (params.include_actions !== undefined)
url.searchParams.append("include_actions", params.include_actions.toString());
if (params.supported_action_types) {
params.supported_action_types.forEach((type) => url.searchParams.append("supported_action_types", type));
}
if (params.limit !== undefined)
url.searchParams.append("limit", params.limit.toString());
if (params.offset !== undefined)
url.searchParams.append("offset", params.offset.toString());
if (params.sort)
url.searchParams.append("sort", params.sort);
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "GET",
headers
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
// src/accounts/getAccountStates.ts
async function getAccountStates(params, options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/accountStates`);
params.address.forEach((addr) => url.searchParams.append("address", addr));
if (params.include_boc !== undefined)
url.searchParams.append("include_boc", params.include_boc.toString());
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "GET",
headers
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
// src/accounts/getAddressBook.ts
async function getAddressBook(params, options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/addressBook`);
params.address.forEach((addr) => url.searchParams.append("address", addr));
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "GET",
headers
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
// src/accounts/getMetadata.ts
async function getMetadata(params, options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/metadata`);
params.address.forEach((addr) => url.searchParams.append("address", addr));
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "GET",
headers
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
// src/accounts/getWalletStates.ts
async function getWalletStates(params, options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/walletStates`);
params.address.forEach((addr) => url.searchParams.append("address", addr));
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "GET",
headers
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
// src/api-v2/getAddressInformation.ts
async function getAddressInformation(params, options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/addressInformation`);
url.searchParams.append("address", params.address);
if (params.use_v2 !== undefined)
url.searchParams.append("use_v2", params.use_v2.toString());
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "GET",
headers
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
// src/api-v2/getWalletInformation.ts
async function getWalletInformation(params, options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/walletInformation`);
url.searchParams.append("address", params.address);
if (params.use_v2 !== undefined)
url.searchParams.append("use_v2", params.use_v2.toString());
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "GET",
headers
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
// src/api-v2/estimateFee.ts
async function estimateFee(request, options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/estimateFee`);
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "POST",
headers,
body: JSON.stringify(request)
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
// src/api-v2/sendMessage.ts
async function sendMessage(request, options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/message`);
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "POST",
headers,
body: JSON.stringify(request)
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
// src/api-v2/runGetMethod.ts
async function runGetMethod(request, options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/runGetMethod`);
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "POST",
headers,
body: JSON.stringify(request)
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
// src/jettons/getJettonBurns.ts
async function getJettonBurns(params = {}, options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/jetton/burns`);
if (params.address) {
params.address.forEach((addr) => url.searchParams.append("address", addr));
}
if (params.jetton_wallet) {
params.jetton_wallet.forEach((wallet) => url.searchParams.append("jetton_wallet", wallet));
}
if (params.jetton_master)
url.searchParams.append("jetton_master", params.jetton_master);
if (params.start_utime !== undefined)
url.searchParams.append("start_utime", params.start_utime.toString());
if (params.end_utime !== undefined)
url.searchParams.append("end_utime", params.end_utime.toString());
if (params.start_lt !== undefined)
url.searchParams.append("start_lt", params.start_lt.toString());
if (params.end_lt !== undefined)
url.searchParams.append("end_lt", params.end_lt.toString());
if (params.limit !== undefined)
url.searchParams.append("limit", params.limit.toString());
if (params.offset !== undefined)
url.searchParams.append("offset", params.offset.toString());
if (params.sort)
url.searchParams.append("sort", params.sort);
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "GET",
headers
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
// src/jettons/getJettonMasters.ts
async function getJettonMasters(params = {}, options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/jetton/masters`);
if (params.address) {
params.address.forEach((addr) => url.searchParams.append("address", addr));
}
if (params.admin_address) {
params.admin_address.forEach((addr) => url.searchParams.append("admin_address", addr));
}
if (params.limit !== undefined)
url.searchParams.append("limit", params.limit.toString());
if (params.offset !== undefined)
url.searchParams.append("offset", params.offset.toString());
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "GET",
headers
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
// src/jettons/getJettonTransfers.ts
async function getJettonTransfers(params = {}, options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/jetton/transfers`);
if (params.owner_address) {
params.owner_address.forEach((addr) => url.searchParams.append("owner_address", addr));
}
if (params.jetton_wallet) {
params.jetton_wallet.forEach((wallet) => url.searchParams.append("jetton_wallet", wallet));
}
if (params.jetton_master)
url.searchParams.append("jetton_master", params.jetton_master);
if (params.direction)
url.searchParams.append("direction", params.direction);
if (params.start_utime !== undefined)
url.searchParams.append("start_utime", params.start_utime.toString());
if (params.end_utime !== undefined)
url.searchParams.append("end_utime", params.end_utime.toString());
if (params.start_lt !== undefined)
url.searchParams.append("start_lt", params.start_lt.toString());
if (params.end_lt !== undefined)
url.searchParams.append("end_lt", params.end_lt.toString());
if (params.limit !== undefined)
url.searchParams.append("limit", params.limit.toString());
if (params.offset !== undefined)
url.searchParams.append("offset", params.offset.toString());
if (params.sort)
url.searchParams.append("sort", params.sort);
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "GET",
headers
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
// src/jettons/getJettonWallets.ts
async function getJettonWallets(params = {}, options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/jetton/wallets`);
if (params.address) {
params.address.forEach((addr) => url.searchParams.append("address", addr));
}
if (params.owner_address) {
params.owner_address.forEach((addr) => url.searchParams.append("owner_address", addr));
}
if (params.jetton_address) {
params.jetton_address.forEach((addr) => url.searchParams.append("jetton_address", addr));
}
if (params.exclude_zero_balance !== undefined)
url.searchParams.append("exclude_zero_balance", params.exclude_zero_balance.toString());
if (params.limit !== undefined)
url.searchParams.append("limit", params.limit.toString());
if (params.offset !== undefined)
url.searchParams.append("offset", params.offset.toString());
if (params.sort)
url.searchParams.append("sort", params.sort);
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "GET",
headers
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
// src/nfts/getNFTCollections.ts
async function getNFTCollections(params = {}, options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/nft/collections`);
if (params.collection_address) {
params.collection_address.forEach((addr) => url.searchParams.append("collection_address", addr));
}
if (params.owner_address) {
params.owner_address.forEach((addr) => url.searchParams.append("owner_address", addr));
}
if (params.limit !== undefined)
url.searchParams.append("limit", params.limit.toString());
if (params.offset !== undefined)
url.searchParams.append("offset", params.offset.toString());
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "GET",
headers
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
// src/nfts/getNFTItems.ts
async function getNFTItems(params = {}, options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/nft/items`);
if (params.address) {
params.address.forEach((addr) => url.searchParams.append("address", addr));
}
if (params.owner_address) {
params.owner_address.forEach((addr) => url.searchParams.append("owner_address", addr));
}
if (params.collection_address) {
params.collection_address.forEach((addr) => url.searchParams.append("collection_address", addr));
}
if (params.index) {
params.index.forEach((idx) => url.searchParams.append("index", idx));
}
if (params.limit !== undefined)
url.searchParams.append("limit", params.limit.toString());
if (params.offset !== undefined)
url.searchParams.append("offset", params.offset.toString());
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "GET",
headers
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
// src/nfts/getNFTTransfers.ts
async function getNFTTransfers(params = {}, options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/nft/transfers`);
if (params.owner_address) {
params.owner_address.forEach((addr) => url.searchParams.append("owner_address", addr));
}
if (params.item_address) {
params.item_address.forEach((addr) => url.searchParams.append("item_address", addr));
}
if (params.collection_address)
url.searchParams.append("collection_address", params.collection_address);
if (params.direction)
url.searchParams.append("direction", params.direction);
if (params.start_utime !== undefined)
url.searchParams.append("start_utime", params.start_utime.toString());
if (params.end_utime !== undefined)
url.searchParams.append("end_utime", params.end_utime.toString());
if (params.start_lt !== undefined)
url.searchParams.append("start_lt", params.start_lt.toString());
if (params.end_lt !== undefined)
url.searchParams.append("end_lt", params.end_lt.toString());
if (params.limit !== undefined)
url.searchParams.append("limit", params.limit.toString());
if (params.offset !== undefined)
url.searchParams.append("offset", params.offset.toString());
if (params.sort)
url.searchParams.append("sort", params.sort);
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "GET",
headers
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
// src/dns/getDNSRecords.ts
async function getDNSRecords(params, options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/dns/records`);
url.searchParams.append("wallet", params.wallet);
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "GET",
headers
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
// src/multisig/getMultisigOrders.ts
async function getMultisigOrders(params = {}, options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/multisig/orders`);
if (params.address) {
params.address.forEach((addr) => url.searchParams.append("address", addr));
}
if (params.multisig_address) {
params.multisig_address.forEach((addr) => url.searchParams.append("multisig_address", addr));
}
if (params.parse_actions !== undefined)
url.searchParams.append("parse_actions", params.parse_actions.toString());
if (params.limit !== undefined)
url.searchParams.append("limit", params.limit.toString());
if (params.offset !== undefined)
url.searchParams.append("offset", params.offset.toString());
if (params.sort)
url.searchParams.append("sort", params.sort);
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "GET",
headers
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
// src/multisig/getMultisigWallets.ts
async function getMultisigWallets(params = {}, options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/multisig/wallets`);
if (params.address) {
params.address.forEach((addr) => url.searchParams.append("address", addr));
}
if (params.wallet_address) {
params.wallet_address.forEach((addr) => url.searchParams.append("wallet_address", addr));
}
if (params.limit !== undefined)
url.searchParams.append("limit", params.limit.toString());
if (params.offset !== undefined)
url.searchParams.append("offset", params.offset.toString());
if (params.sort)
url.searchParams.append("sort", params.sort);
if (params.include_orders !== undefined)
url.searchParams.append("include_orders", params.include_orders.toString());
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "GET",
headers
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
// src/stats/getTopAccountsByBalance.ts
async function getTopAccountsByBalance(params = {}, options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/topAccountsByBalance`);
if (params.limit !== undefined)
url.searchParams.append("limit", params.limit.toString());
if (params.offset !== undefined)
url.searchParams.append("offset", params.offset.toString());
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "GET",
headers
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
// src/vesting/getVestingContracts.ts
async function getVestingContracts(params = {}, options = {}) {
const { apiKey, chain = DEFAULT_CHAIN } = options;
const url = new URL(`${BASE_URLS[chain]}/vesting`);
if (params.contract_address) {
params.contract_address.forEach((addr) => url.searchParams.append("contract_address", addr));
}
if (params.wallet_address) {
params.wallet_address.forEach((addr) => url.searchParams.append("wallet_address", addr));
}
if (params.check_whitelist !== undefined)
url.searchParams.append("check_whitelist", params.check_whitelist.toString());
if (params.limit !== undefined)
url.searchParams.append("limit", params.limit.toString());
if (params.offset !== undefined)
url.searchParams.append("offset", params.offset.toString());
const headers = {
"Content-Type": "application/json"
};
if (apiKey) {
headers["X-API-Key"] = apiKey;
}
const response = await fetch(url.toString(), {
method: "GET",
headers
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error ${error.code}: ${error.error}`);
}
return response.json();
}
export {
sendMessage,
runGetMethod,
getWalletStates,
getWalletInformation,
getVestingContracts,
getTransactionsByMessage,
getTransactionsByMasterchainBlock,
getTransactions,
getTraces,
getTopAccountsByBalance,
getPendingTransactions,
getPendingTraces,
getPendingActions,
getNFTTransfers,
getNFTItems,
getNFTCollections,
getMultisigWallets,
getMultisigOrders,
getMetadata,
getMessages,
getMasterchainInfo,
getMasterchainBlockShards,
getMasterchainBlockShardState,
getJettonWallets,
getJettonTransfers,
getJettonMasters,
getJettonBurns,
getDNSRecords,
getBlocks,
getAdjacentTransactions,
getAddressInformation,
getAddressBook,
getActions,
getAccountStates,
estimateFee,
DEFAULT_CHAIN,
BASE_URLS
};