UNPKG

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
// 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 };