Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,10 @@ Improve `dfx canister logs` with several options

Updated Motoko to [0.14.9](https://github.com/dfinity/motoko/releases/tag/0.14.9)

### Bitcoin canister

Upgraded Bitcoin canister to [release/2024-08-30](https://github.com/dfinity/bitcoin-canister/releases/tag/release%2F2024-08-30)

# 0.26.1

### fix: clear state when switching from shared to project network
Expand Down
206 changes: 139 additions & 67 deletions e2e/assets/bitcoin/bitcoin.did
Original file line number Diff line number Diff line change
@@ -1,75 +1,147 @@
type satoshi = nat64;
type bitcoin_network = variant {
mainnet;
testnet;
regtest;
type network = variant {
mainnet;
testnet;
regtest;
};
type bitcoin_address = text;

type satoshi = nat64;

type address = text;

type block_hash = blob;

type block_header = blob;

type block_height = nat32;

type outpoint = record {
txid : blob;
vout : nat32;
txid : blob;
vout : nat32;
};

type utxo = record {
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;
};
};
type bitcoin_get_current_fee_percentiles_args = record {
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;
};
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;
};
type bitcoin_send_transaction_args = record {
transaction : blob;
network : bitcoin_network;
outpoint : outpoint;
value : satoshi;
height : block_height;
};

type flag = variant {
enabled;
disabled;
};

type init_config = record {
stability_threshold : opt nat;
network : opt network;
blocks_source : opt principal;
syncing : opt flag;
fees : opt fees;
api_access : opt flag;
disable_api_if_not_fully_synced : opt flag;
watchdog_canister : opt opt principal;
burn_cycles : opt flag;
lazily_evaluate_fee_percentiles : opt flag;
};

type config = record {
stability_threshold : nat;
network : network;
blocks_source : principal;
syncing : flag;
fees : fees;
api_access : flag;
disable_api_if_not_fully_synced : flag;
watchdog_canister : opt principal;
burn_cycles : flag;
lazily_evaluate_fee_percentiles : flag;
};

type fees = record {
get_utxos_base : nat;
get_utxos_cycles_per_ten_instructions : nat;
get_utxos_maximum : nat;
get_balance : nat;
get_balance_maximum : nat;
get_current_fee_percentiles : nat;
get_current_fee_percentiles_maximum : nat;
send_transaction_base : nat;
send_transaction_per_byte : nat;
get_block_headers_base : nat;
get_block_headers_cycles_per_ten_instructions : nat;
get_block_headers_maximum : nat;
};

type get_balance_request = record {
network : network;
address : address;
min_confirmations : opt nat32;
};

type get_utxos_request = record {
network : network;
address : address;
filter : opt variant {
min_confirmations : nat32;
page : blob;
};
};

type get_utxos_response = record {
utxos : vec utxo;
tip_block_hash : block_hash;
tip_height : block_height;
next_page : opt blob;
};

type get_current_fee_percentiles_request = record {
network : network;
};

type send_transaction_request = record {
network : network;
transaction : blob;
};

type millisatoshi_per_byte = nat64;
type bitcoin_get_balance_result = satoshi;
type bitcoin_get_balance_query_result = satoshi;
type bitcoin_get_current_fee_percentiles_result = vec millisatoshi_per_byte;
service ic : {
// 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);

type set_config_request = record {
stability_threshold : opt nat;
syncing : opt flag;
fees : opt fees;
api_access : opt flag;
disable_api_if_not_fully_synced : opt flag;
watchdog_canister : opt opt principal;
burn_cycles : opt flag;
lazily_evaluate_fee_percentiles : opt flag;
};

type get_block_headers_request = record {
start_height : block_height;
end_height : opt block_height;
network : network;
};

type get_block_headers_response = record {
tip_height : block_height;
block_headers : vec block_header;
};

service bitcoin : (init_config) -> {
bitcoin_get_balance : (get_balance_request) -> (satoshi);

bitcoin_get_balance_query : (get_balance_request) -> (satoshi) query;

bitcoin_get_utxos : (get_utxos_request) -> (get_utxos_response);

bitcoin_get_utxos_query : (get_utxos_request) -> (get_utxos_response) query;

bitcoin_get_current_fee_percentiles : (get_current_fee_percentiles_request) -> (vec millisatoshi_per_byte);

bitcoin_get_block_headers : (get_block_headers_request) -> (get_block_headers_response);

bitcoin_send_transaction : (send_transaction_request) -> ();

get_config : () -> (config) query;

set_config : (set_config_request) -> ();
};
6 changes: 3 additions & 3 deletions nix/sources.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"ic-btc-canister": {
"sha256": "1b34jpxkk72h07ls0fspwrgmndmj7xhlivdhn82msvgz8mx69x89",
"sha256": "0giwl43l1rlwc116zrnr4ss8cb23c0jxk2jxshvmy189pqaadbfh",
"type": "file",
"url": "https://github.com/dfinity/bitcoin-canister/releases/download/release%2F2023-10-13/ic-btc-canister.wasm.gz",
"url": "https://github.com/dfinity/bitcoin-canister/releases/download/release%2F2024-08-30/ic-btc-canister.wasm.gz",
"url_template": "https://github.com/dfinity/bitcoin-canister/releases/download/<version>/ic-btc-canister.wasm.gz",
"version": "release%2F2023-10-13"
"version": "release%2F2024-08-30"
},
"motoko-base": {
"builtin": false,
Expand Down
8 changes: 4 additions & 4 deletions src/dfx/assets/dfx-asset-sources.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ url = 'https://github.com/dfinity/motoko/releases/download/0.14.9/motoko-base-li
sha256 = 'df6fcc13142bd384f9401504660a880d80e1d2d35086092f45694147dc962730'

[x86_64-darwin.ic-btc-canister]
url = 'https://github.com/dfinity/bitcoin-canister/releases/download/release%2F2023-10-13/ic-btc-canister.wasm.gz'
sha256 = '09f5647a45ff6d5d05b2b0ed48613fb2365b5fe6573ba0e901509c39fb9564ac'
url = 'https://github.com/dfinity/bitcoin-canister/releases/download/release%2F2024-08-30/ic-btc-canister.wasm.gz'
sha256 = 'd0ada614be09055f37d45d8ad92560432c86b426d9e66f42609ce64007a13c3e'

[x86_64-linux.motoko]
url = 'https://github.com/dfinity/motoko/releases/download/0.14.9/motoko-Linux-x86_64-0.14.9.tar.gz'
Expand All @@ -30,5 +30,5 @@ url = 'https://github.com/dfinity/motoko/releases/download/0.14.9/motoko-base-li
sha256 = 'df6fcc13142bd384f9401504660a880d80e1d2d35086092f45694147dc962730'

[x86_64-linux.ic-btc-canister]
url = 'https://github.com/dfinity/bitcoin-canister/releases/download/release%2F2023-10-13/ic-btc-canister.wasm.gz'
sha256 = '09f5647a45ff6d5d05b2b0ed48613fb2365b5fe6573ba0e901509c39fb9564ac'
url = 'https://github.com/dfinity/bitcoin-canister/releases/download/release%2F2024-08-30/ic-btc-canister.wasm.gz'
sha256 = 'd0ada614be09055f37d45d8ad92560432c86b426d9e66f42609ce64007a13c3e'