diff --git a/bin/update-management-idl.ts b/bin/update-management-idl.ts index 638255f8..9756a8f3 100644 --- a/bin/update-management-idl.ts +++ b/bin/update-management-idl.ts @@ -1,17 +1,24 @@ import { $, cd, fetch } from 'zx'; import path from 'path'; -fetch( - 'https://raw.githubusercontent.com/dfinity/interface-spec/master/spec/_attachments/ic.did', -).then(async res => { +const main = async () => { + const res = await fetch( + 'https://raw.githubusercontent.com/dfinity/interface-spec/master/spec/_attachments/ic.did', + ); res.text().then(async text => { const root = path.resolve(__dirname, '..'); - const candid = text; + // TODO: remove this function once the bitcoin queries are removed from the candid spec + const candid = stripBitcoinQueries(text); await cd(`${root}/packages/agent/src/canisters`); await $`echo ${candid} > management.did`; + + // Format the candid file + await $`npx prettier --write --plugin=prettier-plugin-motoko **/*.did`; + + // Generate the idl and interface files let ts = (await $`didc bind management.did -t ts`).toString(); let js = (await $`didc bind management.did -t js`).toString(); @@ -27,7 +34,6 @@ fetch( `; // replace first line of service - ts = ts.replace(`export interface _SERVICE {`, `export default interface _SERVICE {`); js = js.replace(`export const idlFactory = ({ IDL }) => {`, `export default ({ IDL }) => {`); @@ -37,13 +43,71 @@ fetch( ts = prefix + ts; js = prefix + js; + // write the files await $`echo ${js} > management_idl.ts`; await $`echo ${ts} > management_service.ts`; await cd(`${root}`); + // Format the generated files await $`npm run prettier:format`; console.log('Done!'); }); -}); +}; + +function stripBitcoinQueries(text: string): string { + // get_utxos_query + let newText = text.replace( + `type bitcoin_get_utxos_query_args = record { + address : bitcoin_address; + network : bitcoin_network; + filter : opt variant { + min_confirmations : nat32; + page : blob; + }; +};`, + '', + ); + newText = newText.replace( + ` +type bitcoin_get_utxos_query_result = record { + utxos : vec utxo; + tip_block_hash : block_hash; + tip_height : nat32; + next_page : opt blob; +};`, + '', + ); + + newText = newText.replace( + `bitcoin_get_utxos_query : (bitcoin_get_utxos_query_args) -> (bitcoin_get_utxos_query_result) query;`, + '', + ); + + // bitcoin_get_balance_query + newText = newText.replace( + `bitcoin_get_balance_query : (bitcoin_get_balance_query_args) -> (bitcoin_get_balance_query_result) query;`, + '', + ); + + newText = newText.replace( + ` +type bitcoin_get_balance_query_args = record { + address : bitcoin_address; + network : bitcoin_network; + min_confirmations : opt nat32; +};`, + '', + ); + + newText = newText.replace( + ` +type bitcoin_get_balance_query_result = satoshi;`, + '', + ); + + return newText; +} + +main(); diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index d12079e7..9d761885 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -313,6 +313,7 @@ Changes default stored key for `auth-client` to use ECDSAKey* Also updates the ### Changed +* feat: strips out bitcoin query methods from management canister IDL * Adds retry logic to `HttpAgent`. By default, retries three times before throwing an error, to offer a more cohesive workflow * Improves and truncates error messages in Candid * fixes flaky tests for syncTime diff --git a/e2e/node/basic/mainnet.test.ts b/e2e/node/basic/mainnet.test.ts index e96a040c..3fea750e 100644 --- a/e2e/node/basic/mainnet.test.ts +++ b/e2e/node/basic/mainnet.test.ts @@ -1,11 +1,4 @@ -import { - Actor, - AnonymousIdentity, - HttpAgent, - Identity, - CanisterStatus, - getManagementCanister, -} from '@dfinity/agent'; +import { Actor, AnonymousIdentity, HttpAgent, Identity, CanisterStatus } from '@dfinity/agent'; import { IDL } from '@dfinity/candid'; import { Ed25519KeyIdentity } from '@dfinity/identity'; import { Principal } from '@dfinity/principal'; @@ -168,20 +161,3 @@ describe('controllers', () => { }); }); -describe('bitcoin query', async () => { - it('should return the balance of a bitcoin address', async () => { - // TODO - verify node signature for bitcoin once supported - const agent = await makeAgent({ host: 'https://icp-api.io', verifyQuerySignatures: false }); - const management = getManagementCanister({ - agent, - }); - - const result = await management.bitcoin_get_balance_query({ - address: 'bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh', - network: { mainnet: null }, - min_confirmations: [6], - }); - console.log(`balance for address: ${result}`); - expect(result).toBeGreaterThan(0n); - }); -}); diff --git a/e2e/node/canisters/declarations/counter/counter.did b/e2e/node/canisters/declarations/counter/counter.did index 6bddc58e..781e9ea8 100644 --- a/e2e/node/canisters/declarations/counter/counter.did +++ b/e2e/node/canisters/declarations/counter/counter.did @@ -1,8 +1,8 @@ service : { - greet: (text) -> (text); - inc: () -> (); - inc_read: () -> (nat); - queryGreet: (text) -> (text) query; - read: () -> (nat) query; - write: (nat) -> (); -} + greet : (text) -> (text); + inc : () -> (); + inc_read : () -> (nat); + queryGreet : (text) -> (text) query; + read : () -> (nat) query; + write : (nat) -> (); +}; diff --git a/package-lock.json b/package-lock.json index 0666de14..19985659 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,6 +30,7 @@ "os": "^0.1.2", "path": "^0.12.7", "prettier": "^2.8.8", + "prettier-plugin-motoko": "^0.8.4", "pretty-quick": "^3.1.3", "release-it": "^16.2.1", "size-limit": "^11.0.2", @@ -15459,6 +15460,45 @@ "dev": true, "license": "MIT" }, + "node_modules/out-of-character": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/out-of-character/-/out-of-character-1.2.2.tgz", + "integrity": "sha512-UpQ85sBLHdx84mnHR3jjX4xWpr06s7ptAVYYO2ya+xIvgHf+XDBtK1GOxNfXXIUXV8hHFEAXUIG1K+juchKaUQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "colorette": "2.0.20", + "glob": "7.1.7" + }, + "bin": { + "out-of-character": "bin/out-of-character.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/out-of-character/node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/p-cancelable": { "version": "3.0.0", "dev": true, @@ -16256,6 +16296,8 @@ }, "node_modules/prettier": { "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true, "license": "MIT", "bin": { @@ -16279,6 +16321,19 @@ "node": ">=6.0.0" } }, + "node_modules/prettier-plugin-motoko": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/prettier-plugin-motoko/-/prettier-plugin-motoko-0.8.4.tgz", + "integrity": "sha512-LfCyp93m+Sgfu1CmZEYmeE89tJm2aLbAJ7Yy5NlJx0GOZjWqFDGE441bZSuHxxL8LKuJ4CpnLgP0FOc7CqTXow==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "out-of-character": "^1.2.1" + }, + "peerDependencies": { + "prettier": "^2.7 || ^3.0" + } + }, "node_modules/pretty-bytes": { "version": "5.6.0", "dev": true, diff --git a/package.json b/package.json index 7f30f593..2e18b302 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,7 @@ "os": "^0.1.2", "path": "^0.12.7", "prettier": "^2.8.8", + "prettier-plugin-motoko": "^0.8.4", "pretty-quick": "^3.1.3", "release-it": "^16.2.1", "size-limit": "^11.0.2", diff --git a/packages/agent/src/actor.ts b/packages/agent/src/actor.ts index cc4193ea..bb285a73 100644 --- a/packages/agent/src/actor.ts +++ b/packages/agent/src/actor.ts @@ -280,6 +280,7 @@ export class Actor { memory_allocation: settings.memory_allocation ? [settings.memory_allocation] : [], reserved_cycles_limit: [], log_visibility: [], + wasm_memory_limit: [], }, ]; } diff --git a/packages/agent/src/agent/http/http.test.ts b/packages/agent/src/agent/http/http.test.ts index 2b8e4d48..c3d926a4 100644 --- a/packages/agent/src/agent/http/http.test.ts +++ b/packages/agent/src/agent/http/http.test.ts @@ -17,7 +17,6 @@ import { AnonymousIdentity, SignIdentity, toHex } from '../..'; import { Ed25519KeyIdentity } from '@dfinity/identity'; import { AgentError } from '../../errors'; import { AgentHTTPResponseError } from './errors'; -import { ExponentialBackoff } from '../../polling/backoff'; const { window } = new JSDOM(`
Hello world
`); window.fetch = global.fetch; (global as any).window = window; diff --git a/packages/agent/src/canisters/management.did b/packages/agent/src/canisters/management.did index 5af5069a..cf8ae065 100644 --- a/packages/agent/src/canisters/management.did +++ b/packages/agent/src/canisters/management.did @@ -2,57 +2,59 @@ type canister_id = principal; type wasm_module = blob; type log_visibility = variant { - controllers; - public; + controllers; + public; }; type canister_settings = record { - controllers : opt vec principal; - compute_allocation : opt nat; - memory_allocation : opt nat; - freezing_threshold : opt nat; - reserved_cycles_limit : opt nat; - log_visibility : opt log_visibility; + controllers : opt vec principal; + compute_allocation : opt nat; + memory_allocation : opt nat; + freezing_threshold : opt nat; + reserved_cycles_limit : opt nat; + log_visibility : opt log_visibility; + wasm_memory_limit : opt nat; }; type definite_canister_settings = record { - controllers : vec principal; - compute_allocation : nat; - memory_allocation : nat; - freezing_threshold : nat; - reserved_cycles_limit : nat; - log_visibility : log_visibility; + controllers : vec principal; + compute_allocation : nat; + memory_allocation : nat; + freezing_threshold : nat; + reserved_cycles_limit : nat; + log_visibility : log_visibility; + wasm_memory_limit : nat; }; type change_origin = variant { - from_user : record { - user_id : principal; - }; - from_canister : record { - canister_id : principal; - canister_version : opt nat64; - }; + from_user : record { + user_id : principal; + }; + from_canister : record { + canister_id : principal; + canister_version : opt nat64; + }; }; type change_details = variant { - creation : record { - controllers : vec principal; - }; - code_uninstall; - code_deployment : record { - mode : variant { install; reinstall; upgrade }; - module_hash : blob; - }; - controllers_change : record { - controllers : vec principal; - }; + creation : record { + controllers : vec principal; + }; + code_uninstall; + code_deployment : record { + mode : variant { install; reinstall; upgrade }; + module_hash : blob; + }; + controllers_change : record { + controllers : vec principal; + }; }; type change = record { - timestamp_nanos : nat64; - canister_version : nat64; - origin : change_origin; - details : change_details; + timestamp_nanos : nat64; + canister_version : nat64; + origin : change_origin; + details : change_details; }; type chunk_hash = record { @@ -60,25 +62,25 @@ type chunk_hash = record { }; type http_header = record { - name : text; - value : text; + name : text; + value : text; }; type http_request_result = record { - status : nat; - headers : vec http_header; - body : blob; + status : nat; + headers : vec http_header; + body : blob; }; type ecdsa_curve = variant { - secp256k1; + secp256k1; }; type satoshi = nat64; type bitcoin_network = variant { - mainnet; - testnet; + mainnet; + testnet; }; type bitcoin_address = text; @@ -86,245 +88,223 @@ type bitcoin_address = text; type block_hash = blob; type outpoint = record { - txid : blob; - vout : nat32; + txid : blob; + vout : nat32; }; type utxo = record { - outpoint : outpoint; - value : satoshi; - height : nat32; + outpoint : outpoint; + value : satoshi; + height : nat32; }; type bitcoin_get_utxos_args = record { - address : bitcoin_address; - network : bitcoin_network; - filter : opt variant { - min_confirmations : nat32; - page : blob; - }; -}; - -type bitcoin_get_utxos_query_args = record { - address : bitcoin_address; - network : bitcoin_network; - filter : opt variant { - min_confirmations : nat32; - page : blob; - }; + address : bitcoin_address; + network : bitcoin_network; + filter : opt variant { + min_confirmations : nat32; + page : blob; + }; }; type bitcoin_get_current_fee_percentiles_args = record { - network : bitcoin_network; + network : bitcoin_network; }; type bitcoin_get_utxos_result = record { - utxos : vec utxo; - tip_block_hash : block_hash; - tip_height : nat32; - next_page : opt blob; -}; - -type bitcoin_get_utxos_query_result = record { - utxos : vec utxo; - tip_block_hash : block_hash; - tip_height : nat32; - next_page : opt blob; + utxos : vec utxo; + tip_block_hash : block_hash; + tip_height : nat32; + next_page : opt blob; }; type bitcoin_get_balance_args = record { - address : bitcoin_address; - network : bitcoin_network; - min_confirmations : opt nat32; -}; - -type bitcoin_get_balance_query_args = record { - address : bitcoin_address; - network : bitcoin_network; - min_confirmations : opt nat32; + address : bitcoin_address; + network : bitcoin_network; + min_confirmations : opt nat32; }; type bitcoin_send_transaction_args = record { - transaction : blob; - network : bitcoin_network; + transaction : blob; + network : bitcoin_network; }; type millisatoshi_per_byte = nat64; type node_metrics = record { - node_id : principal; - num_blocks_proposed_total : nat64; - num_block_failures_total : nat64; + node_id : principal; + num_blocks_proposed_total : nat64; + num_block_failures_total : nat64; }; type create_canister_args = record { - settings : opt canister_settings; - sender_canister_version : opt nat64; + settings : opt canister_settings; + sender_canister_version : opt nat64; }; type create_canister_result = record { - canister_id : canister_id; + canister_id : canister_id; }; type update_settings_args = record { - canister_id : principal; - settings : canister_settings; - sender_canister_version : opt nat64; + canister_id : principal; + settings : canister_settings; + sender_canister_version : opt nat64; }; type upload_chunk_args = record { - canister_id : principal; - chunk : blob; + canister_id : principal; + chunk : blob; }; type clear_chunk_store_args = record { - canister_id : canister_id; + canister_id : canister_id; }; type stored_chunks_args = record { - canister_id : canister_id; + canister_id : canister_id; }; type canister_install_mode = variant { - install; - reinstall; - upgrade : opt record { - skip_pre_upgrade : opt bool; - wasm_memory_persistence : opt variant { - keep; - replace; - }; + install; + reinstall; + upgrade : opt record { + skip_pre_upgrade : opt bool; + wasm_memory_persistence : opt variant { + keep; + replace; }; + }; }; type install_code_args = record { - mode : canister_install_mode; - canister_id : canister_id; - wasm_module : wasm_module; - arg : blob; - sender_canister_version : opt nat64; + mode : canister_install_mode; + canister_id : canister_id; + wasm_module : wasm_module; + arg : blob; + sender_canister_version : opt nat64; }; type install_chunked_code_args = record { - mode : canister_install_mode; - target_canister : canister_id; - store_canister : opt canister_id; - chunk_hashes_list : vec chunk_hash; - wasm_module_hash : blob; - arg : blob; - sender_canister_version : opt nat64; + mode : canister_install_mode; + target_canister : canister_id; + store_canister : opt canister_id; + chunk_hashes_list : vec chunk_hash; + wasm_module_hash : blob; + arg : blob; + sender_canister_version : opt nat64; }; type uninstall_code_args = record { - canister_id : canister_id; - sender_canister_version : opt nat64; + canister_id : canister_id; + sender_canister_version : opt nat64; }; type start_canister_args = record { - canister_id : canister_id; + canister_id : canister_id; }; type stop_canister_args = record { - canister_id : canister_id; + canister_id : canister_id; }; type canister_status_args = record { - canister_id : canister_id; + canister_id : canister_id; }; type canister_status_result = record { - status : variant { running; stopping; stopped }; - settings : definite_canister_settings; - module_hash : opt blob; - memory_size : nat; - cycles : nat; - reserved_cycles : nat; - idle_cycles_burned_per_day : nat; - query_stats: record { - num_calls_total: nat; - num_instructions_total: nat; - request_payload_bytes_total: nat; - response_payload_bytes_total: nat; - }; + status : variant { running; stopping; stopped }; + settings : definite_canister_settings; + module_hash : opt blob; + memory_size : nat; + cycles : nat; + reserved_cycles : nat; + idle_cycles_burned_per_day : nat; + query_stats : record { + num_calls_total : nat; + num_instructions_total : nat; + request_payload_bytes_total : nat; + response_payload_bytes_total : nat; + }; }; type canister_info_args = record { - canister_id : canister_id; - num_requested_changes : opt nat64; + canister_id : canister_id; + num_requested_changes : opt nat64; }; type canister_info_result = record { - total_num_changes : nat64; - recent_changes : vec change; - module_hash : opt blob; - controllers : vec principal; + total_num_changes : nat64; + recent_changes : vec change; + module_hash : opt blob; + controllers : vec principal; }; type delete_canister_args = record { - canister_id : canister_id; + canister_id : canister_id; }; type deposit_cycles_args = record { - canister_id : canister_id; + canister_id : canister_id; }; type http_request_args = record { - url : text; - max_response_bytes : opt nat64; - method : variant { get; head; post }; - headers : vec http_header; - body : opt blob; - transform : opt record { - function : func(record { response : http_request_result; context : blob }) -> (http_request_result) query; - context : blob; - }; + url : text; + max_response_bytes : opt nat64; + method : variant { get; head; post }; + headers : vec http_header; + body : opt blob; + transform : opt record { + function : func(record { response : http_request_result; context : blob }) -> (http_request_result) query; + context : blob; + }; }; type ecdsa_public_key_args = record { - canister_id : opt canister_id; - derivation_path : vec blob; - key_id : record { curve : ecdsa_curve; name : text }; + canister_id : opt canister_id; + derivation_path : vec blob; + key_id : record { curve : ecdsa_curve; name : text }; }; type ecdsa_public_key_result = record { - public_key : blob; - chain_code : blob; + public_key : blob; + chain_code : blob; }; type sign_with_ecdsa_args = record { - message_hash : blob; - derivation_path : vec blob; - key_id : record { curve : ecdsa_curve; name : text }; + message_hash : blob; + derivation_path : vec blob; + key_id : record { curve : ecdsa_curve; name : text }; }; type sign_with_ecdsa_result = record { - signature : blob; + signature : blob; }; type node_metrics_history_args = record { - subnet_id : principal; - start_at_timestamp_nanos : nat64; + subnet_id : principal; + start_at_timestamp_nanos : nat64; }; type node_metrics_history_result = vec record { - timestamp_nanos : nat64; - node_metrics : vec node_metrics; + timestamp_nanos : nat64; + node_metrics : vec node_metrics; }; type provisional_create_canister_with_cycles_args = record { - amount : opt nat; - settings : opt canister_settings; - specified_id : opt canister_id; - sender_canister_version : opt nat64; + amount : opt nat; + settings : opt canister_settings; + specified_id : opt canister_id; + sender_canister_version : opt nat64; }; type provisional_create_canister_with_cycles_result = record { - canister_id : canister_id; + canister_id : canister_id; }; type provisional_top_up_canister_args = record { - canister_id : canister_id; - amount : nat; + canister_id : canister_id; + amount : nat; }; type raw_rand_result = blob; @@ -335,62 +315,59 @@ type upload_chunk_result = chunk_hash; type bitcoin_get_balance_result = satoshi; -type bitcoin_get_balance_query_result = satoshi; - type bitcoin_get_current_fee_percentiles_result = vec millisatoshi_per_byte; type fetch_canister_logs_args = record { - canister_id : canister_id; + canister_id : canister_id; }; type canister_log_record = record { - idx: nat64; - timestamp_nanos: nat64; - content: blob; + idx : nat64; + timestamp_nanos : nat64; + content : blob; }; type fetch_canister_logs_result = record { - canister_log_records: vec canister_log_record; + canister_log_records : vec canister_log_record; }; service ic : { - create_canister : (create_canister_args) -> (create_canister_result); - update_settings : (update_settings_args) -> (); - upload_chunk : (upload_chunk_args) -> (upload_chunk_result); - clear_chunk_store : (clear_chunk_store_args) -> (); - stored_chunks : (stored_chunks_args) -> (stored_chunks_result); - install_code : (install_code_args) -> (); - install_chunked_code : (install_chunked_code_args) -> (); - uninstall_code : (uninstall_code_args) -> (); - start_canister : (start_canister_args) -> (); - stop_canister : (stop_canister_args) -> (); - canister_status : (canister_status_args) -> (canister_status_result); - canister_info : (canister_info_args) -> (canister_info_result); - delete_canister : (delete_canister_args) -> (); - deposit_cycles : (deposit_cycles_args) -> (); - raw_rand : () -> (raw_rand_result); - http_request : (http_request_args) -> (http_request_result); - - // Threshold ECDSA signature - ecdsa_public_key : (ecdsa_public_key_args) -> (ecdsa_public_key_result); - sign_with_ecdsa : (sign_with_ecdsa_args) -> (sign_with_ecdsa_result); - - // bitcoin interface - bitcoin_get_balance : (bitcoin_get_balance_args) -> (bitcoin_get_balance_result); - bitcoin_get_balance_query : (bitcoin_get_balance_query_args) -> (bitcoin_get_balance_query_result) query; - bitcoin_get_utxos : (bitcoin_get_utxos_args) -> (bitcoin_get_utxos_result); - bitcoin_get_utxos_query : (bitcoin_get_utxos_query_args) -> (bitcoin_get_utxos_query_result) query; - bitcoin_send_transaction : (bitcoin_send_transaction_args) -> (); - bitcoin_get_current_fee_percentiles : (bitcoin_get_current_fee_percentiles_args) -> (bitcoin_get_current_fee_percentiles_result); - - // metrics interface - node_metrics_history : (node_metrics_history_args) -> (node_metrics_history_result); - - // provisional interfaces for the pre-ledger world - provisional_create_canister_with_cycles : (provisional_create_canister_with_cycles_args) -> (provisional_create_canister_with_cycles_result); - provisional_top_up_canister : (provisional_top_up_canister_args) -> (); - - // canister logging - fetch_canister_logs : (fetch_canister_logs_args) -> (fetch_canister_logs_result) query; + create_canister : (create_canister_args) -> (create_canister_result); + update_settings : (update_settings_args) -> (); + upload_chunk : (upload_chunk_args) -> (upload_chunk_result); + clear_chunk_store : (clear_chunk_store_args) -> (); + stored_chunks : (stored_chunks_args) -> (stored_chunks_result); + install_code : (install_code_args) -> (); + install_chunked_code : (install_chunked_code_args) -> (); + uninstall_code : (uninstall_code_args) -> (); + start_canister : (start_canister_args) -> (); + stop_canister : (stop_canister_args) -> (); + canister_status : (canister_status_args) -> (canister_status_result); + canister_info : (canister_info_args) -> (canister_info_result); + delete_canister : (delete_canister_args) -> (); + deposit_cycles : (deposit_cycles_args) -> (); + raw_rand : () -> (raw_rand_result); + http_request : (http_request_args) -> (http_request_result); + + // Threshold ECDSA signature + ecdsa_public_key : (ecdsa_public_key_args) -> (ecdsa_public_key_result); + sign_with_ecdsa : (sign_with_ecdsa_args) -> (sign_with_ecdsa_result); + + // bitcoin interface + bitcoin_get_balance : (bitcoin_get_balance_args) -> (bitcoin_get_balance_result); + + bitcoin_get_utxos : (bitcoin_get_utxos_args) -> (bitcoin_get_utxos_result); + + bitcoin_send_transaction : (bitcoin_send_transaction_args) -> (); + bitcoin_get_current_fee_percentiles : (bitcoin_get_current_fee_percentiles_args) -> (bitcoin_get_current_fee_percentiles_result); + + // metrics interface + node_metrics_history : (node_metrics_history_args) -> (node_metrics_history_result); + + // provisional interfaces for the pre-ledger world + provisional_create_canister_with_cycles : (provisional_create_canister_with_cycles_args) -> (provisional_create_canister_with_cycles_result); + provisional_top_up_canister : (provisional_top_up_canister_args) -> (); + + // canister logging + fetch_canister_logs : (fetch_canister_logs_args) -> (fetch_canister_logs_result) query; }; - diff --git a/packages/agent/src/canisters/management_idl.ts b/packages/agent/src/canisters/management_idl.ts index aaf376a2..72fd4d41 100644 --- a/packages/agent/src/canisters/management_idl.ts +++ b/packages/agent/src/canisters/management_idl.ts @@ -18,12 +18,6 @@ export default ({ IDL }) => { }); const satoshi = IDL.Nat64; const bitcoin_get_balance_result = satoshi; - const bitcoin_get_balance_query_args = IDL.Record({ - network: bitcoin_network, - address: bitcoin_address, - min_confirmations: IDL.Opt(IDL.Nat32), - }); - const bitcoin_get_balance_query_result = satoshi; const bitcoin_get_current_fee_percentiles_args = IDL.Record({ network: bitcoin_network, }); @@ -55,22 +49,6 @@ export default ({ IDL }) => { tip_block_hash: block_hash, utxos: IDL.Vec(utxo), }); - const bitcoin_get_utxos_query_args = IDL.Record({ - network: bitcoin_network, - filter: IDL.Opt( - IDL.Variant({ - page: IDL.Vec(IDL.Nat8), - min_confirmations: IDL.Nat32, - }), - ), - address: bitcoin_address, - }); - const bitcoin_get_utxos_query_result = IDL.Record({ - next_page: IDL.Opt(IDL.Vec(IDL.Nat8)), - tip_height: IDL.Nat32, - tip_block_hash: block_hash, - utxos: IDL.Vec(utxo), - }); const bitcoin_send_transaction_args = IDL.Record({ transaction: IDL.Vec(IDL.Nat8), network: bitcoin_network, @@ -124,6 +102,7 @@ export default ({ IDL }) => { controllers: IDL.Vec(IDL.Principal), reserved_cycles_limit: IDL.Nat, log_visibility: log_visibility, + wasm_memory_limit: IDL.Nat, memory_allocation: IDL.Nat, compute_allocation: IDL.Nat, }); @@ -152,6 +131,7 @@ export default ({ IDL }) => { controllers: IDL.Opt(IDL.Vec(IDL.Principal)), reserved_cycles_limit: IDL.Opt(IDL.Nat), log_visibility: IDL.Opt(log_visibility), + wasm_memory_limit: IDL.Opt(IDL.Nat), memory_allocation: IDL.Opt(IDL.Nat), compute_allocation: IDL.Opt(IDL.Nat), }); @@ -298,22 +278,12 @@ export default ({ IDL }) => { const upload_chunk_result = chunk_hash; return IDL.Service({ bitcoin_get_balance: IDL.Func([bitcoin_get_balance_args], [bitcoin_get_balance_result], []), - bitcoin_get_balance_query: IDL.Func( - [bitcoin_get_balance_query_args], - [bitcoin_get_balance_query_result], - ['query'], - ), bitcoin_get_current_fee_percentiles: IDL.Func( [bitcoin_get_current_fee_percentiles_args], [bitcoin_get_current_fee_percentiles_result], [], ), bitcoin_get_utxos: IDL.Func([bitcoin_get_utxos_args], [bitcoin_get_utxos_result], []), - bitcoin_get_utxos_query: IDL.Func( - [bitcoin_get_utxos_query_args], - [bitcoin_get_utxos_query_result], - ['query'], - ), bitcoin_send_transaction: IDL.Func([bitcoin_send_transaction_args], [], []), canister_info: IDL.Func([canister_info_args], [canister_info_result], []), canister_status: IDL.Func([canister_status_args], [canister_status_result], []), diff --git a/packages/agent/src/canisters/management_service.ts b/packages/agent/src/canisters/management_service.ts index 10041ac2..dbbc5c8b 100644 --- a/packages/agent/src/canisters/management_service.ts +++ b/packages/agent/src/canisters/management_service.ts @@ -15,12 +15,6 @@ export interface bitcoin_get_balance_args { address: bitcoin_address; min_confirmations: [] | [number]; } -export interface bitcoin_get_balance_query_args { - network: bitcoin_network; - address: bitcoin_address; - min_confirmations: [] | [number]; -} -export type bitcoin_get_balance_query_result = satoshi; export type bitcoin_get_balance_result = satoshi; export interface bitcoin_get_current_fee_percentiles_args { network: bitcoin_network; @@ -31,17 +25,6 @@ export interface bitcoin_get_utxos_args { filter: [] | [{ page: Uint8Array | number[] } | { min_confirmations: number }]; address: bitcoin_address; } -export interface bitcoin_get_utxos_query_args { - network: bitcoin_network; - filter: [] | [{ page: Uint8Array | number[] } | { min_confirmations: number }]; - address: bitcoin_address; -} -export interface bitcoin_get_utxos_query_result { - next_page: [] | [Uint8Array | number[]]; - tip_height: number; - tip_block_hash: block_hash; - utxos: Array