Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Conversation

@dnjscksdn98
Copy link
Collaborator

Description

psbt 제출시 extrinsic ensure 보강

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Something else (simple changes that are not related to existing functionality or others)

Checklist

  • I have selected the correct base branch.
  • I have performed a self-review of my own code.
  • I have made corresponding changes to the documentation.
  • I have made new test codes regarding to my changes.
  • I have no personal secrets or credentials described on my changes.
  • I have run cargo-clippy and linted my code.
  • My changes generate no new warnings.
  • My changes passed the existing test codes.
  • My changes are able to compile.

@dnjscksdn98 dnjscksdn98 added the bug Working incorrectly label Jun 19, 2024
@dnjscksdn98 dnjscksdn98 requested a review from SunoukMun June 19, 2024 09:49
@dnjscksdn98 dnjscksdn98 self-assigned this Jun 19, 2024
@dnjscksdn98 dnjscksdn98 requested a review from alstjd0921 as a code owner June 19, 2024 09:49
pallets/btc-socket-queue/src/pallet/mod.rs Outdated Show resolved Hide resolved
Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>
@dnjscksdn98 dnjscksdn98 merged commit 67f8216 into testbed Jun 19, 2024
@dnjscksdn98 dnjscksdn98 deleted the alex/ensure-updates branch June 19, 2024 10:07
dnjscksdn98 added a commit that referenced this pull request Jul 10, 2024
* NODE-98, feat: bitcoin registration pool (#41)

* NODE-96, feature: initialize pallet

* NODE-96, feature: init storage

* NODE-96, feature: init extrinsics

* NODE-96, feature: impl signature verification

* NODE-96, docs: add missing doc-strings

* NODE-96, feature: attach precompile

* NODE-96, fix: resolve precompile interface

* NODE-96, fix: use correct string bound

* NODE-96, fix: use vector

* NODE-96, test: add tests

* NODE-96, chore: simple fix

* NODE-98, feat: add relay executives

* NODE-98, feat: finalize pallet

* NODE-98, feat: update precompile

* NODE-98, feat: add config set extrinsics

* NODE-98, fix: resolve imports

* NODE-98, fix: update types

* NODE-98, fix: n check

* NODE-98, test: add test

* NODE-98, chore: apply feedback

* NODE-98, refactor: use better structure

* NODE-98, refactor: use better structure (2)

* NODE-98, feat: add system vault

* NODE-98, test: fix test code

* NODE-98, chore: simplify message

* NODE-98, chore: remove unused import

* NODE-99, feature: btc socket queue (#42)

* NODE-99, chore: init pallet

* NODE-99, feat: init pallet

* NODE-99, refactor: use multi-sig primitive

* NODE-99, chore: temp

* NODE-99, feat: impl extrinsics

* NODE-99, feat: add pallet

* NODE-99, fix: support no-std

* NODE-99, fix: resolve wasm build

* NODE-99, fix: comment out build

* NODE-99, feat: set submitter

* NODE-99, fix: use correct psbt hash

* NODE-99, test: add tests

* NODE-99, feat: verify duplicate signed psbt

* NODE-99, feat: verify socket message

* NODE-99, feat: verify psbt outputs

* NODE-99, fix: signed psbt

* NODE-99, refactor: update

* NODE-99, chore: set genesis config

* NODE-99, feat: add precompile

* NODE-99, feat: add relay exec precompile

* NODE-99, refactor: use unbounded bytes

* NODE-99, refactor: move miniscript to primitive only

* NODE-99, chore: check token len

* NODE-99, chore: use amount unit as sat

* NODE-99, chore: remove impl code

* NODE-99, chore: simplify code with closure

* NODE-99, chore: impl TryFrom

* NODE-99, chore: add missing docstrings

* NODE-99, fix: replace T::Signer to T::AccountId

* NODE-99, feat: store socket messages to check duplications

* NODE-99, feat: check duplicate socket message submission

* NODE-99, test: test unsigned psbt submission

* NODE-99, test: test signed psbt submission

* NODE-99, test: test finalize request

* NODE-99, fix: resolve registration pool test errors

* NODE-99, fix: check bonded pubKeys

* NODE-99, test: system vault test

* NODE-99, feat: add set_refund

* NODE-99, chore: apply cargo-clippy

* NODE-99, feat: add pending registrations

* NODE-99, fix: rename function

* NODE-99, feat: add role checker

* NODE-99, fix: apply change suggestions

* NODE-99, feat: add BondedOutboundTx

* NODE-99, feat: add precompile function

* NODE-99, fix: allow every bitcoin network type

* NODE-99, feat: add registration_info()

* NODE-102, feature: socket queue update (#43)

* NODE-102, feat: add system vout

* NODE-102, feat: try psbt finalization

* NODE-102, feat: check if message is outbound

* NODE-102, fix: update system vault interface

* NODE-102, fix: remove system vault from function

* NODE-102, fix: use correct uint type

* NODE-102, feat: allow multiple signed psbt submissions

* NODE-102, test: fix tests

* NODE-98, feat: build address script from descriptor

* NODE-98, chore: `[u8; 33]` can convert into `PublicKeyBytes`

* NODE-98, chore: not max length. should be length

* NODE-98, fix: multisig `m` could be 20 & bech32 max length is 90

* NODE-98, refactor:

* NODE-98, chore: remove unused import

* NODE-98, fix: typo

* NODE-98, refactor: remove redundant

* NODE-98, chore: unnecessary path prefix

* Update precompiles/btc-socket-queue/src/lib.rs

* NODE-98, chore: resolve comment

* NODE-98, fix: swap txid endian format

* NODE-98, test: update test code

* NODE-98, chore: update npm packages

* NODE-98, test: use correct socket message

* NODE-98, feat: store descriptor

* NODE-98, test: check descriptor existance

* NODE-98, feat: viewable descriptor

* NODE-98, refactor: use same struct

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* deploy: init testbed config

* deps: update dev chain spec

* fix: use correct context and update precompile

* fix: use single event

* test: update test

* feat: update precompile

* deps: increase runtime version

* fix: rename extrinsic

* deps: increase runtime version

* NODE-108, feat: socket queue update(2) (#48)

* NODE-108, fix: use txid as storage key

* NODE-108, feat: update precompile

* NODE-108, test: update test code

* NODE-109, feat: registration pool update (#49)

* NODE-109, feat: add clear_vault()

* NODE-109, fix: remove duplicate genesis config

* NODE-109, test: update test

* NODE-109, fix: consider system vault clear

* NODE-109, test: update test

* deps: increase runtime version

* NODE-110, fix: use desc address (#50)

* deps: increase runtime version (335)

* fix: resolve pallet issue

* NODE-114, fix: use dynamic multiSig fields & allow duplicate refund addresses (#51)

* NODE-114, fix: use dynamic n and ratio

* NODE-114, test: update tests

* NODE-114, chore: add migration

* NODE-114, fix: allow duplicate refund addresses

* NODE-114, test: update tests

* NODE-114, fix: remove unused weights

* fix: resolve import error

* deps: reset testbed

* fix: (review) move event recording

* [CCCP-385] registration-pool migration process (#55)

* CCCP-385, feature: registration pool roundup process

* CCCP-385, chore: move migration sequence enum to primitives

* CCCP-385, feature: add pool_round argument for registration pool's evm interface

* CCCP-385, chore: add default state

* CCCP-385, chore: remove `DefaultPoolRound`

* CCCP-385, fix: use correct access control

* CCCP-385, chore: set storageVersion to 1, remove migrations.rs

* NODE-117, feat: rollback protocol (#54)

* NODE-117, feat: impl rollback request submission

* NODE-117, feat: impl rollback poll submission

* NODE-117, fix: insert BondedOutboundTx only for non-rollback requests

* NODE-117, chore: cleanup palet

* NODE-117, feat: update precompile

* NODE-117, chore: update doc-string

* NODE-117, test: resolve test failures

* NODE-117, fix: use correct origin

* NODE-117, test: add rollback tests

* NODE-117, fix: resolve encode errors

* NODE-117, chore: add missing docstrings

* NODE-117, fix: prevent same side voting

* NODE-117, feat: update precompile

* NODE-117, feat: bond rollback output

* NODE-117, test: update ttest

* NODE-117, fix: use correct key prefix

* chore: remove redundant

* chore: remove unused import

* fix: typo

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

---------

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* fix: add missing imports

* fix: double check storage existence

* NODE-119, unsigned psbt message update (#56)

* NODE-119, fix: update psbt output verification

* NODE-119, fix: check psbt output amount only for refunds

* NODE-119, fix: resolve wrong state check

* NODE-119, fix: check migration sequence

* NODE-119, feat: add migration request submission

* NODE-119, fix: set correct runtime error

* fix: set default code for precompiles

* deps: update dev chain spec

* fix: use vec instead of map

* fix: check system vault

* feat: add precompile function

* chore: add missing event

* fix: add function inputs

* minor fixes (#57)

* feat: add multisig ration set extrinsic

* fix: use correct duplication check

* deps: update rust docker version

* fix: change output can not always exist

* deps: use latest rust image

* [CCCP-403] Implement `vault_key_presubmission` (#58)

* CCCP-403, feature: storage `PresubmittedPubKeys`

* CCCP-403, feature: implement vault key pre-submission

* CCCP-403, feature: Immediately generate vault address when all executives pre-submitted keys

* CCCP-403, fix: resolve comments

* chore: update ensure (#59)

* chore: update ensure

* chore: update comment

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

---------

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* fix: socket queue minor update (#60)

* fix: use psbt txid

* fix: remove useless state checks

* deps: increase runtime version (349)

* fix: use correct output len check & add output to check

* fix: use ensure_root (#61)

* fix: simply use txid instead of psbt bytes (#62)

* chore: add missing pool events (#63)

* NODE-120, test code update (#64)

* NODE-120, fix: update ethers

* NODE-120, fix: update ethers (2)

* NODE-120, fix: registration pool tests

* NODE-120, fix: socket queue tests

* NODE-120, chore: rollback to dev runtime

* NODE-120, chore: update npm package

* fix: simplify context

* deps: release pre-v2.0.0

* NODE-122, feature: apply brp to testnet (#65)

* NODE-122, feature: apply brp to testnet

* NODE-122, chore: init pallet storage v1

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>
dnjscksdn98 added a commit that referenced this pull request Oct 17, 2024
* [Testnet] Apply Bitcoin Relay Protocol (BRP) (#53)

* NODE-98, feat: bitcoin registration pool (#41)

* NODE-96, feature: initialize pallet

* NODE-96, feature: init storage

* NODE-96, feature: init extrinsics

* NODE-96, feature: impl signature verification

* NODE-96, docs: add missing doc-strings

* NODE-96, feature: attach precompile

* NODE-96, fix: resolve precompile interface

* NODE-96, fix: use correct string bound

* NODE-96, fix: use vector

* NODE-96, test: add tests

* NODE-96, chore: simple fix

* NODE-98, feat: add relay executives

* NODE-98, feat: finalize pallet

* NODE-98, feat: update precompile

* NODE-98, feat: add config set extrinsics

* NODE-98, fix: resolve imports

* NODE-98, fix: update types

* NODE-98, fix: n check

* NODE-98, test: add test

* NODE-98, chore: apply feedback

* NODE-98, refactor: use better structure

* NODE-98, refactor: use better structure (2)

* NODE-98, feat: add system vault

* NODE-98, test: fix test code

* NODE-98, chore: simplify message

* NODE-98, chore: remove unused import

* NODE-99, feature: btc socket queue (#42)

* NODE-99, chore: init pallet

* NODE-99, feat: init pallet

* NODE-99, refactor: use multi-sig primitive

* NODE-99, chore: temp

* NODE-99, feat: impl extrinsics

* NODE-99, feat: add pallet

* NODE-99, fix: support no-std

* NODE-99, fix: resolve wasm build

* NODE-99, fix: comment out build

* NODE-99, feat: set submitter

* NODE-99, fix: use correct psbt hash

* NODE-99, test: add tests

* NODE-99, feat: verify duplicate signed psbt

* NODE-99, feat: verify socket message

* NODE-99, feat: verify psbt outputs

* NODE-99, fix: signed psbt

* NODE-99, refactor: update

* NODE-99, chore: set genesis config

* NODE-99, feat: add precompile

* NODE-99, feat: add relay exec precompile

* NODE-99, refactor: use unbounded bytes

* NODE-99, refactor: move miniscript to primitive only

* NODE-99, chore: check token len

* NODE-99, chore: use amount unit as sat

* NODE-99, chore: remove impl code

* NODE-99, chore: simplify code with closure

* NODE-99, chore: impl TryFrom

* NODE-99, chore: add missing docstrings

* NODE-99, fix: replace T::Signer to T::AccountId

* NODE-99, feat: store socket messages to check duplications

* NODE-99, feat: check duplicate socket message submission

* NODE-99, test: test unsigned psbt submission

* NODE-99, test: test signed psbt submission

* NODE-99, test: test finalize request

* NODE-99, fix: resolve registration pool test errors

* NODE-99, fix: check bonded pubKeys

* NODE-99, test: system vault test

* NODE-99, feat: add set_refund

* NODE-99, chore: apply cargo-clippy

* NODE-99, feat: add pending registrations

* NODE-99, fix: rename function

* NODE-99, feat: add role checker

* NODE-99, fix: apply change suggestions

* NODE-99, feat: add BondedOutboundTx

* NODE-99, feat: add precompile function

* NODE-99, fix: allow every bitcoin network type

* NODE-99, feat: add registration_info()

* NODE-102, feature: socket queue update (#43)

* NODE-102, feat: add system vout

* NODE-102, feat: try psbt finalization

* NODE-102, feat: check if message is outbound

* NODE-102, fix: update system vault interface

* NODE-102, fix: remove system vault from function

* NODE-102, fix: use correct uint type

* NODE-102, feat: allow multiple signed psbt submissions

* NODE-102, test: fix tests

* NODE-98, feat: build address script from descriptor

* NODE-98, chore: `[u8; 33]` can convert into `PublicKeyBytes`

* NODE-98, chore: not max length. should be length

* NODE-98, fix: multisig `m` could be 20 & bech32 max length is 90

* NODE-98, refactor:

* NODE-98, chore: remove unused import

* NODE-98, fix: typo

* NODE-98, refactor: remove redundant

* NODE-98, chore: unnecessary path prefix

* Update precompiles/btc-socket-queue/src/lib.rs

* NODE-98, chore: resolve comment

* NODE-98, fix: swap txid endian format

* NODE-98, test: update test code

* NODE-98, chore: update npm packages

* NODE-98, test: use correct socket message

* NODE-98, feat: store descriptor

* NODE-98, test: check descriptor existance

* NODE-98, feat: viewable descriptor

* NODE-98, refactor: use same struct

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* deploy: init testbed config

* deps: update dev chain spec

* fix: use correct context and update precompile

* fix: use single event

* test: update test

* feat: update precompile

* deps: increase runtime version

* fix: rename extrinsic

* deps: increase runtime version

* NODE-108, feat: socket queue update(2) (#48)

* NODE-108, fix: use txid as storage key

* NODE-108, feat: update precompile

* NODE-108, test: update test code

* NODE-109, feat: registration pool update (#49)

* NODE-109, feat: add clear_vault()

* NODE-109, fix: remove duplicate genesis config

* NODE-109, test: update test

* NODE-109, fix: consider system vault clear

* NODE-109, test: update test

* deps: increase runtime version

* NODE-110, fix: use desc address (#50)

* deps: increase runtime version (335)

* fix: resolve pallet issue

* NODE-114, fix: use dynamic multiSig fields & allow duplicate refund addresses (#51)

* NODE-114, fix: use dynamic n and ratio

* NODE-114, test: update tests

* NODE-114, chore: add migration

* NODE-114, fix: allow duplicate refund addresses

* NODE-114, test: update tests

* NODE-114, fix: remove unused weights

* fix: resolve import error

* deps: reset testbed

* fix: (review) move event recording

* [CCCP-385] registration-pool migration process (#55)

* CCCP-385, feature: registration pool roundup process

* CCCP-385, chore: move migration sequence enum to primitives

* CCCP-385, feature: add pool_round argument for registration pool's evm interface

* CCCP-385, chore: add default state

* CCCP-385, chore: remove `DefaultPoolRound`

* CCCP-385, fix: use correct access control

* CCCP-385, chore: set storageVersion to 1, remove migrations.rs

* NODE-117, feat: rollback protocol (#54)

* NODE-117, feat: impl rollback request submission

* NODE-117, feat: impl rollback poll submission

* NODE-117, fix: insert BondedOutboundTx only for non-rollback requests

* NODE-117, chore: cleanup palet

* NODE-117, feat: update precompile

* NODE-117, chore: update doc-string

* NODE-117, test: resolve test failures

* NODE-117, fix: use correct origin

* NODE-117, test: add rollback tests

* NODE-117, fix: resolve encode errors

* NODE-117, chore: add missing docstrings

* NODE-117, fix: prevent same side voting

* NODE-117, feat: update precompile

* NODE-117, feat: bond rollback output

* NODE-117, test: update ttest

* NODE-117, fix: use correct key prefix

* chore: remove redundant

* chore: remove unused import

* fix: typo

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

---------

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* fix: add missing imports

* fix: double check storage existence

* NODE-119, unsigned psbt message update (#56)

* NODE-119, fix: update psbt output verification

* NODE-119, fix: check psbt output amount only for refunds

* NODE-119, fix: resolve wrong state check

* NODE-119, fix: check migration sequence

* NODE-119, feat: add migration request submission

* NODE-119, fix: set correct runtime error

* fix: set default code for precompiles

* deps: update dev chain spec

* fix: use vec instead of map

* fix: check system vault

* feat: add precompile function

* chore: add missing event

* fix: add function inputs

* minor fixes (#57)

* feat: add multisig ration set extrinsic

* fix: use correct duplication check

* deps: update rust docker version

* fix: change output can not always exist

* deps: use latest rust image

* [CCCP-403] Implement `vault_key_presubmission` (#58)

* CCCP-403, feature: storage `PresubmittedPubKeys`

* CCCP-403, feature: implement vault key pre-submission

* CCCP-403, feature: Immediately generate vault address when all executives pre-submitted keys

* CCCP-403, fix: resolve comments

* chore: update ensure (#59)

* chore: update ensure

* chore: update comment

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

---------

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* fix: socket queue minor update (#60)

* fix: use psbt txid

* fix: remove useless state checks

* deps: increase runtime version (349)

* fix: use correct output len check & add output to check

* fix: use ensure_root (#61)

* fix: simply use txid instead of psbt bytes (#62)

* chore: add missing pool events (#63)

* NODE-120, test code update (#64)

* NODE-120, fix: update ethers

* NODE-120, fix: update ethers (2)

* NODE-120, fix: registration pool tests

* NODE-120, fix: socket queue tests

* NODE-120, chore: rollback to dev runtime

* NODE-120, chore: update npm package

* fix: simplify context

* deps: release pre-v2.0.0

* NODE-122, feature: apply brp to testnet (#65)

* NODE-122, feature: apply brp to testnet

* NODE-122, chore: init pallet storage v1

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* chore: remove passed storage migration

* NODE-123, let sequence id to psbt txid available (#66)

* NODE-123, fix: add psbt txid

* NODE-123, feat: migrate SocketMessages

* NODE-123, feat: add set_refund

* NODE-123, chore: add missing selector

* NODE-123, chore: rename function

* NODE-127, fix: add psbt fee verification logic (#69)

* NODE-127, fix: filter meaningless psbt

* NODE-127, chore: resolve `unexpected cfg condition value`

* NODE-127, fix: add psbt fee verification logic

* Update pallets/btc-socket-queue/src/pallet/mod.rs

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-127, fix: add missing psbt fee verification logic

* NODE-127, chore: set default max fee rate

---------

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-129, fix: remove hard-coded index usage (#71)

* NODE-128, fix: add `SetExecutiveMembers` to `MigrationSequence` (#70)

* NODE-128, fix: add SetExecutiveMembers to MigrationSequence

* NODE-128, chore: add doc-strings

* NODE-130, fix: Update to unpayable extrinsics (#72)

* NODE-130, fix: replace unsigned transactions to unpayable extrinsics - registration pool

* NODE-130, fix: replace unsigned transactions to unpayable extrinsics - socket queue

* NODE-130, fix: remove unused Config type

* NODE-130, chore: add AuthorityDNE error

* NODE-126, fix: consider address check after vault generation (#68)

* NODE-126, fix: consider address check after vault generation

* NODE-126, fix: remove pubkey clear logic

* NODE-126, fix: insert default on failure

* fix: replace to `ensure_signed` (#73)

* fix: replace to ensure_signed

* test: replace test to signed tx

* Revert "fix: replace to `ensure_signed` (#73)" (#74)

This reverts commit b64dc4b.

* Revert "NODE-130, fix: Update to unpayable extrinsics (#72)" (#75)

This reverts commit 883262e.

* NODE-131, fix: add verifiers to signature (#76)

* NODE-131, fix: add pool_round to signature

* NODE-131, fix: add SigDomain

* NODE-131, fix: use concatenated bytes

* NODE-131, fix: use remove :?

* fix: resolve import error

* NODE-128, fix: use correct service state check (#77)

* deps: update testnet runtime version

* NODE-134, feat: add `submit_bump_fee_request()` (#78)

* NODE-134, feat: add submit_bump_fee_request

* NODE-134, feat: insert new SocketMessages

* NODE-134, fix: improve verification

* Update pallets/btc-socket-queue/src/pallet/impls.rs

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* Update pallets/btc-socket-queue/src/pallet/impls.rs

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

---------

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* deps: update dev runtime version

* chore: set mcpu for mac

* NODE-135, fix: estimate size of finalized psbt's tx for fee verification (#80)

* deps: update runtime version

* NODE-137, fix: add missing #[precompile::view] macro (#82)

* NODE-138, fix: use ensure_root() and remove SetOrigin (#83)

* NODE-139, fix: only permit when the migration tx broadcast (#84)

* NODE-139, fix: only permit when the migration tx broadcast

* NODE-139, fix: consider multiple migration transactions

* NODE-141, fix: include field `is_approved` into signature message (#86)

* NODE-140, fix: `btc-socket-queue` should be empty before pool migration (#85)

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-142, refactor: apply pending and approval process when setting refunds (#87)

* NODE-142, refactor: apply pending and approval process when setting refunds

* chore: remove unnecessary `return`

* NODE-142, chore: store current and present addresses both

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* deps: fix signature format & increase runtime version

* fix: update signature format

* feat: add drop_pending_rollback_request (#88)

* fix: resolve is_ready_for_migrate

* NODE-144, feat: update `submit_bump_fee_request()` (#89)

* NODE-144, feat: make it compatible with rollbacks/migrations

* NODE-144, fix: use correct output check

* NODE-144, fix: use correct storage key

* NODE-144, fix: use mutate

* Improve `approve_set_refunds()` (#90)

* NODE-144, feat: add deadline to signature

* NODE-144, feat: add domain to signature

* NODE-144, feat: check BondedVault existance

* NODE-144, chore: use correct error

* NODE-144, chore: impl Display

* deps: update runtime version

* BRP cleanup (#91)

* chore: add missing doc strings

* chore: rename primitive to bp-btc-relay

* chore: typo

* chore: remove unnecessary return

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* fix: make all tests success (#92)

* fix: make all registration-pool tests success

* fix: make all socket-queue tests success

* NODE-136, feat: Apply Bitcoin Relay Protocol (BRP) to Mainnet (#81)

* NODE-136, feat: apply BRP to mainnet

* NODE-136, fix: update runtime

* NODE-136, chore: set DefaultMaxFeeRate

* release v2.0.0

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>
dnjscksdn98 added a commit that referenced this pull request Oct 22, 2024
* NODE-98, feat: bitcoin registration pool (#41)

* NODE-96, feature: initialize pallet

* NODE-96, feature: init storage

* NODE-96, feature: init extrinsics

* NODE-96, feature: impl signature verification

* NODE-96, docs: add missing doc-strings

* NODE-96, feature: attach precompile

* NODE-96, fix: resolve precompile interface

* NODE-96, fix: use correct string bound

* NODE-96, fix: use vector

* NODE-96, test: add tests

* NODE-96, chore: simple fix

* NODE-98, feat: add relay executives

* NODE-98, feat: finalize pallet

* NODE-98, feat: update precompile

* NODE-98, feat: add config set extrinsics

* NODE-98, fix: resolve imports

* NODE-98, fix: update types

* NODE-98, fix: n check

* NODE-98, test: add test

* NODE-98, chore: apply feedback

* NODE-98, refactor: use better structure

* NODE-98, refactor: use better structure (2)

* NODE-98, feat: add system vault

* NODE-98, test: fix test code

* NODE-98, chore: simplify message

* NODE-98, chore: remove unused import

* NODE-99, feature: btc socket queue (#42)

* NODE-99, chore: init pallet

* NODE-99, feat: init pallet

* NODE-99, refactor: use multi-sig primitive

* NODE-99, chore: temp

* NODE-99, feat: impl extrinsics

* NODE-99, feat: add pallet

* NODE-99, fix: support no-std

* NODE-99, fix: resolve wasm build

* NODE-99, fix: comment out build

* NODE-99, feat: set submitter

* NODE-99, fix: use correct psbt hash

* NODE-99, test: add tests

* NODE-99, feat: verify duplicate signed psbt

* NODE-99, feat: verify socket message

* NODE-99, feat: verify psbt outputs

* NODE-99, fix: signed psbt

* NODE-99, refactor: update

* NODE-99, chore: set genesis config

* NODE-99, feat: add precompile

* NODE-99, feat: add relay exec precompile

* NODE-99, refactor: use unbounded bytes

* NODE-99, refactor: move miniscript to primitive only

* NODE-99, chore: check token len

* NODE-99, chore: use amount unit as sat

* NODE-99, chore: remove impl code

* NODE-99, chore: simplify code with closure

* NODE-99, chore: impl TryFrom

* NODE-99, chore: add missing docstrings

* NODE-99, fix: replace T::Signer to T::AccountId

* NODE-99, feat: store socket messages to check duplications

* NODE-99, feat: check duplicate socket message submission

* NODE-99, test: test unsigned psbt submission

* NODE-99, test: test signed psbt submission

* NODE-99, test: test finalize request

* NODE-99, fix: resolve registration pool test errors

* NODE-99, fix: check bonded pubKeys

* NODE-99, test: system vault test

* NODE-99, feat: add set_refund

* NODE-99, chore: apply cargo-clippy

* NODE-99, feat: add pending registrations

* NODE-99, fix: rename function

* NODE-99, feat: add role checker

* NODE-99, fix: apply change suggestions

* NODE-99, feat: add BondedOutboundTx

* NODE-99, feat: add precompile function

* NODE-99, fix: allow every bitcoin network type

* NODE-99, feat: add registration_info()

* NODE-102, feature: socket queue update (#43)

* NODE-102, feat: add system vout

* NODE-102, feat: try psbt finalization

* NODE-102, feat: check if message is outbound

* NODE-102, fix: update system vault interface

* NODE-102, fix: remove system vault from function

* NODE-102, fix: use correct uint type

* NODE-102, feat: allow multiple signed psbt submissions

* NODE-102, test: fix tests

* NODE-98, feat: build address script from descriptor

* NODE-98, chore: `[u8; 33]` can convert into `PublicKeyBytes`

* NODE-98, chore: not max length. should be length

* NODE-98, fix: multisig `m` could be 20 & bech32 max length is 90

* NODE-98, refactor:

* NODE-98, chore: remove unused import

* NODE-98, fix: typo

* NODE-98, refactor: remove redundant

* NODE-98, chore: unnecessary path prefix

* Update precompiles/btc-socket-queue/src/lib.rs

* NODE-98, chore: resolve comment

* NODE-98, fix: swap txid endian format

* NODE-98, test: update test code

* NODE-98, chore: update npm packages

* NODE-98, test: use correct socket message

* NODE-98, feat: store descriptor

* NODE-98, test: check descriptor existance

* NODE-98, feat: viewable descriptor

* NODE-98, refactor: use same struct

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* deploy: init testbed config

* deps: update dev chain spec

* fix: use correct context and update precompile

* fix: use single event

* test: update test

* feat: update precompile

* deps: increase runtime version

* fix: rename extrinsic

* deps: increase runtime version

* NODE-108, feat: socket queue update(2) (#48)

* NODE-108, fix: use txid as storage key

* NODE-108, feat: update precompile

* NODE-108, test: update test code

* NODE-109, feat: registration pool update (#49)

* NODE-109, feat: add clear_vault()

* NODE-109, fix: remove duplicate genesis config

* NODE-109, test: update test

* NODE-109, fix: consider system vault clear

* NODE-109, test: update test

* deps: increase runtime version

* NODE-110, fix: use desc address (#50)

* deps: increase runtime version (335)

* fix: resolve pallet issue

* NODE-114, fix: use dynamic multiSig fields & allow duplicate refund addresses (#51)

* NODE-114, fix: use dynamic n and ratio

* NODE-114, test: update tests

* NODE-114, chore: add migration

* NODE-114, fix: allow duplicate refund addresses

* NODE-114, test: update tests

* NODE-114, fix: remove unused weights

* fix: resolve import error

* deps: reset testbed

* fix: (review) move event recording

* [CCCP-385] registration-pool migration process (#55)

* CCCP-385, feature: registration pool roundup process

* CCCP-385, chore: move migration sequence enum to primitives

* CCCP-385, feature: add pool_round argument for registration pool's evm interface

* CCCP-385, chore: add default state

* CCCP-385, chore: remove `DefaultPoolRound`

* CCCP-385, fix: use correct access control

* CCCP-385, chore: set storageVersion to 1, remove migrations.rs

* NODE-117, feat: rollback protocol (#54)

* NODE-117, feat: impl rollback request submission

* NODE-117, feat: impl rollback poll submission

* NODE-117, fix: insert BondedOutboundTx only for non-rollback requests

* NODE-117, chore: cleanup palet

* NODE-117, feat: update precompile

* NODE-117, chore: update doc-string

* NODE-117, test: resolve test failures

* NODE-117, fix: use correct origin

* NODE-117, test: add rollback tests

* NODE-117, fix: resolve encode errors

* NODE-117, chore: add missing docstrings

* NODE-117, fix: prevent same side voting

* NODE-117, feat: update precompile

* NODE-117, feat: bond rollback output

* NODE-117, test: update ttest

* NODE-117, fix: use correct key prefix

* chore: remove redundant

* chore: remove unused import

* fix: typo

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

---------

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* fix: add missing imports

* fix: double check storage existence

* NODE-119, unsigned psbt message update (#56)

* NODE-119, fix: update psbt output verification

* NODE-119, fix: check psbt output amount only for refunds

* NODE-119, fix: resolve wrong state check

* NODE-119, fix: check migration sequence

* NODE-119, feat: add migration request submission

* NODE-119, fix: set correct runtime error

* fix: set default code for precompiles

* deps: update dev chain spec

* fix: use vec instead of map

* fix: check system vault

* feat: add precompile function

* chore: add missing event

* fix: add function inputs

* minor fixes (#57)

* feat: add multisig ration set extrinsic

* fix: use correct duplication check

* deps: update rust docker version

* fix: change output can not always exist

* deps: use latest rust image

* [CCCP-403] Implement `vault_key_presubmission` (#58)

* CCCP-403, feature: storage `PresubmittedPubKeys`

* CCCP-403, feature: implement vault key pre-submission

* CCCP-403, feature: Immediately generate vault address when all executives pre-submitted keys

* CCCP-403, fix: resolve comments

* chore: update ensure (#59)

* chore: update ensure

* chore: update comment

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

---------

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* fix: socket queue minor update (#60)

* fix: use psbt txid

* fix: remove useless state checks

* deps: increase runtime version (349)

* fix: use correct output len check & add output to check

* fix: use ensure_root (#61)

* fix: simply use txid instead of psbt bytes (#62)

* chore: add missing pool events (#63)

* NODE-120, test code update (#64)

* NODE-120, fix: update ethers

* NODE-120, fix: update ethers (2)

* NODE-120, fix: registration pool tests

* NODE-120, fix: socket queue tests

* NODE-120, chore: rollback to dev runtime

* NODE-120, chore: update npm package

* fix: simplify context

* deps: release pre-v2.0.0

* NODE-122, feature: apply brp to testnet (#65)

* NODE-122, feature: apply brp to testnet

* NODE-122, chore: init pallet storage v1

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>
dnjscksdn98 added a commit that referenced this pull request Oct 28, 2024
* [Testnet] Apply Bitcoin Relay Protocol (BRP) (#53)

* NODE-98, feat: bitcoin registration pool (#41)

* NODE-96, feature: initialize pallet

* NODE-96, feature: init storage

* NODE-96, feature: init extrinsics

* NODE-96, feature: impl signature verification

* NODE-96, docs: add missing doc-strings

* NODE-96, feature: attach precompile

* NODE-96, fix: resolve precompile interface

* NODE-96, fix: use correct string bound

* NODE-96, fix: use vector

* NODE-96, test: add tests

* NODE-96, chore: simple fix

* NODE-98, feat: add relay executives

* NODE-98, feat: finalize pallet

* NODE-98, feat: update precompile

* NODE-98, feat: add config set extrinsics

* NODE-98, fix: resolve imports

* NODE-98, fix: update types

* NODE-98, fix: n check

* NODE-98, test: add test

* NODE-98, chore: apply feedback

* NODE-98, refactor: use better structure

* NODE-98, refactor: use better structure (2)

* NODE-98, feat: add system vault

* NODE-98, test: fix test code

* NODE-98, chore: simplify message

* NODE-98, chore: remove unused import

* NODE-99, feature: btc socket queue (#42)

* NODE-99, chore: init pallet

* NODE-99, feat: init pallet

* NODE-99, refactor: use multi-sig primitive

* NODE-99, chore: temp

* NODE-99, feat: impl extrinsics

* NODE-99, feat: add pallet

* NODE-99, fix: support no-std

* NODE-99, fix: resolve wasm build

* NODE-99, fix: comment out build

* NODE-99, feat: set submitter

* NODE-99, fix: use correct psbt hash

* NODE-99, test: add tests

* NODE-99, feat: verify duplicate signed psbt

* NODE-99, feat: verify socket message

* NODE-99, feat: verify psbt outputs

* NODE-99, fix: signed psbt

* NODE-99, refactor: update

* NODE-99, chore: set genesis config

* NODE-99, feat: add precompile

* NODE-99, feat: add relay exec precompile

* NODE-99, refactor: use unbounded bytes

* NODE-99, refactor: move miniscript to primitive only

* NODE-99, chore: check token len

* NODE-99, chore: use amount unit as sat

* NODE-99, chore: remove impl code

* NODE-99, chore: simplify code with closure

* NODE-99, chore: impl TryFrom

* NODE-99, chore: add missing docstrings

* NODE-99, fix: replace T::Signer to T::AccountId

* NODE-99, feat: store socket messages to check duplications

* NODE-99, feat: check duplicate socket message submission

* NODE-99, test: test unsigned psbt submission

* NODE-99, test: test signed psbt submission

* NODE-99, test: test finalize request

* NODE-99, fix: resolve registration pool test errors

* NODE-99, fix: check bonded pubKeys

* NODE-99, test: system vault test

* NODE-99, feat: add set_refund

* NODE-99, chore: apply cargo-clippy

* NODE-99, feat: add pending registrations

* NODE-99, fix: rename function

* NODE-99, feat: add role checker

* NODE-99, fix: apply change suggestions

* NODE-99, feat: add BondedOutboundTx

* NODE-99, feat: add precompile function

* NODE-99, fix: allow every bitcoin network type

* NODE-99, feat: add registration_info()

* NODE-102, feature: socket queue update (#43)

* NODE-102, feat: add system vout

* NODE-102, feat: try psbt finalization

* NODE-102, feat: check if message is outbound

* NODE-102, fix: update system vault interface

* NODE-102, fix: remove system vault from function

* NODE-102, fix: use correct uint type

* NODE-102, feat: allow multiple signed psbt submissions

* NODE-102, test: fix tests

* NODE-98, feat: build address script from descriptor

* NODE-98, chore: `[u8; 33]` can convert into `PublicKeyBytes`

* NODE-98, chore: not max length. should be length

* NODE-98, fix: multisig `m` could be 20 & bech32 max length is 90

* NODE-98, refactor:

* NODE-98, chore: remove unused import

* NODE-98, fix: typo

* NODE-98, refactor: remove redundant

* NODE-98, chore: unnecessary path prefix

* Update precompiles/btc-socket-queue/src/lib.rs

* NODE-98, chore: resolve comment

* NODE-98, fix: swap txid endian format

* NODE-98, test: update test code

* NODE-98, chore: update npm packages

* NODE-98, test: use correct socket message

* NODE-98, feat: store descriptor

* NODE-98, test: check descriptor existance

* NODE-98, feat: viewable descriptor

* NODE-98, refactor: use same struct

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* deploy: init testbed config

* deps: update dev chain spec

* fix: use correct context and update precompile

* fix: use single event

* test: update test

* feat: update precompile

* deps: increase runtime version

* fix: rename extrinsic

* deps: increase runtime version

* NODE-108, feat: socket queue update(2) (#48)

* NODE-108, fix: use txid as storage key

* NODE-108, feat: update precompile

* NODE-108, test: update test code

* NODE-109, feat: registration pool update (#49)

* NODE-109, feat: add clear_vault()

* NODE-109, fix: remove duplicate genesis config

* NODE-109, test: update test

* NODE-109, fix: consider system vault clear

* NODE-109, test: update test

* deps: increase runtime version

* NODE-110, fix: use desc address (#50)

* deps: increase runtime version (335)

* fix: resolve pallet issue

* NODE-114, fix: use dynamic multiSig fields & allow duplicate refund addresses (#51)

* NODE-114, fix: use dynamic n and ratio

* NODE-114, test: update tests

* NODE-114, chore: add migration

* NODE-114, fix: allow duplicate refund addresses

* NODE-114, test: update tests

* NODE-114, fix: remove unused weights

* fix: resolve import error

* deps: reset testbed

* fix: (review) move event recording

* [CCCP-385] registration-pool migration process (#55)

* CCCP-385, feature: registration pool roundup process

* CCCP-385, chore: move migration sequence enum to primitives

* CCCP-385, feature: add pool_round argument for registration pool's evm interface

* CCCP-385, chore: add default state

* CCCP-385, chore: remove `DefaultPoolRound`

* CCCP-385, fix: use correct access control

* CCCP-385, chore: set storageVersion to 1, remove migrations.rs

* NODE-117, feat: rollback protocol (#54)

* NODE-117, feat: impl rollback request submission

* NODE-117, feat: impl rollback poll submission

* NODE-117, fix: insert BondedOutboundTx only for non-rollback requests

* NODE-117, chore: cleanup palet

* NODE-117, feat: update precompile

* NODE-117, chore: update doc-string

* NODE-117, test: resolve test failures

* NODE-117, fix: use correct origin

* NODE-117, test: add rollback tests

* NODE-117, fix: resolve encode errors

* NODE-117, chore: add missing docstrings

* NODE-117, fix: prevent same side voting

* NODE-117, feat: update precompile

* NODE-117, feat: bond rollback output

* NODE-117, test: update ttest

* NODE-117, fix: use correct key prefix

* chore: remove redundant

* chore: remove unused import

* fix: typo

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

---------

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* fix: add missing imports

* fix: double check storage existence

* NODE-119, unsigned psbt message update (#56)

* NODE-119, fix: update psbt output verification

* NODE-119, fix: check psbt output amount only for refunds

* NODE-119, fix: resolve wrong state check

* NODE-119, fix: check migration sequence

* NODE-119, feat: add migration request submission

* NODE-119, fix: set correct runtime error

* fix: set default code for precompiles

* deps: update dev chain spec

* fix: use vec instead of map

* fix: check system vault

* feat: add precompile function

* chore: add missing event

* fix: add function inputs

* minor fixes (#57)

* feat: add multisig ration set extrinsic

* fix: use correct duplication check

* deps: update rust docker version

* fix: change output can not always exist

* deps: use latest rust image

* [CCCP-403] Implement `vault_key_presubmission` (#58)

* CCCP-403, feature: storage `PresubmittedPubKeys`

* CCCP-403, feature: implement vault key pre-submission

* CCCP-403, feature: Immediately generate vault address when all executives pre-submitted keys

* CCCP-403, fix: resolve comments

* chore: update ensure (#59)

* chore: update ensure

* chore: update comment

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

---------

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* fix: socket queue minor update (#60)

* fix: use psbt txid

* fix: remove useless state checks

* deps: increase runtime version (349)

* fix: use correct output len check & add output to check

* fix: use ensure_root (#61)

* fix: simply use txid instead of psbt bytes (#62)

* chore: add missing pool events (#63)

* NODE-120, test code update (#64)

* NODE-120, fix: update ethers

* NODE-120, fix: update ethers (2)

* NODE-120, fix: registration pool tests

* NODE-120, fix: socket queue tests

* NODE-120, chore: rollback to dev runtime

* NODE-120, chore: update npm package

* fix: simplify context

* deps: release pre-v2.0.0

* NODE-122, feature: apply brp to testnet (#65)

* NODE-122, feature: apply brp to testnet

* NODE-122, chore: init pallet storage v1

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* chore: remove passed storage migration

* NODE-127, fix: add psbt fee verification logic (#69)

* NODE-127, fix: filter meaningless psbt

* NODE-127, chore: resolve `unexpected cfg condition value`

* NODE-127, fix: add psbt fee verification logic

* Update pallets/btc-socket-queue/src/pallet/mod.rs

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-127, fix: add missing psbt fee verification logic

* NODE-127, chore: set default max fee rate

---------

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-128, fix: add `SetExecutiveMembers` to `MigrationSequence` (#70)

* NODE-128, fix: add SetExecutiveMembers to MigrationSequence

* NODE-128, chore: add doc-strings

* NODE-130, fix: Update to unpayable extrinsics (#72)

* NODE-130, fix: replace unsigned transactions to unpayable extrinsics - registration pool

* NODE-130, fix: replace unsigned transactions to unpayable extrinsics - socket queue

* NODE-130, fix: remove unused Config type

* NODE-130, chore: add AuthorityDNE error

* NODE-126, fix: consider address check after vault generation (#68)

* NODE-126, fix: consider address check after vault generation

* NODE-126, fix: remove pubkey clear logic

* NODE-126, fix: insert default on failure

* fix: replace to `ensure_signed` (#73)

* fix: replace to ensure_signed

* test: replace test to signed tx

* Revert "fix: replace to `ensure_signed` (#73)" (#74)

This reverts commit b64dc4b.

* Revert "NODE-130, fix: Update to unpayable extrinsics (#72)" (#75)

This reverts commit 883262e.

* NODE-131, fix: add verifiers to signature (#76)

* NODE-131, fix: add pool_round to signature

* NODE-131, fix: add SigDomain

* NODE-131, fix: use concatenated bytes

* NODE-131, fix: use remove :?

* NODE-134, feat: add `submit_bump_fee_request()` (#78)

* NODE-134, feat: add submit_bump_fee_request

* NODE-134, feat: insert new SocketMessages

* NODE-134, fix: improve verification

* Update pallets/btc-socket-queue/src/pallet/impls.rs

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* Update pallets/btc-socket-queue/src/pallet/impls.rs

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

---------

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* NODE-139, fix: only permit when the migration tx broadcast (#84)

* NODE-139, fix: only permit when the migration tx broadcast

* NODE-139, fix: consider multiple migration transactions

* NODE-141, fix: include field `is_approved` into signature message (#86)

* NODE-140, fix: `btc-socket-queue` should be empty before pool migration (#85)

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-142, refactor: apply pending and approval process when setting refunds (#87)

* NODE-142, refactor: apply pending and approval process when setting refunds

* chore: remove unnecessary `return`

* NODE-142, chore: store current and present addresses both

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* NODE-144, feat: update `submit_bump_fee_request()` (#89)

* NODE-144, feat: make it compatible with rollbacks/migrations

* NODE-144, fix: use correct output check

* NODE-144, fix: use correct storage key

* NODE-144, fix: use mutate

* NODE-106, deps: update to bifrost-polkadot-v1.12.0

* NODE-106, fix: use in_code_storage_version()

* NODE-106, fix: resolve collective precompile compile error

* NODE-106, fix: resolve UnboundedBytes comparison

* NODE-106, fix: remove unused param

* NODE-106, fix: use legacy

* NODE-106, feat: update pallet_balances config

* NODE-106, feat: update pallet_identity config

* NODE-106, feat: add RuntimeTask type

* NODE-106, feat: add migrations and system callbacks

* NODE-106, feat: expose SlotDuration

* NODE-106, feat: add runtime apis

* NODE-106, fix: resolve Aura storage access

* NODE-106, feat: migrate to fungible

* NODE-106, deps: std and serde setup

* NODE-106, fix: rollback GasWeightMapping import

* NODE-106, feat: update client side

* NODE-106, fix: rollback CurrencyAdaptor

* NODE-106, deps: add Migrations

* NODE-106, feat: impl safe-mode and tx-pause

* NODE-106, feat: replace to derive_impl and v2 runtime construction

* NODE-106, chore: set CFLAGS mcpu=mvp on aarch64 arch

* NODE-106, deps: replace substrate-fixed to concrete version

* NODE-106, refactor: remove pallet::getter from custom pallets

* NODE-106, chore: possibly overflow

* NODE-106, deps: remove unused dependencies

* NODE-106, fix: remove deprecated getter

* NODE-106, deps: bump to stable2407

* NODE-106, chore: replace deprecated getters

* NODE-106, chore: Add RPC api pending_initialize_block

* NODE-106, chore: update pallet_treasury config

* NODE-106, chore: remove generic

* NODE-106, fix: remove deprecated getter

* NODE-106, fix: resolve merge conflicts

* NODE-106, deps: release v2.0.1

* NODE-106, fix: use correct balance

* NODE-106, fix: remove duplicate test code

* NODE-106, fix: remove deposit amount

* NODE-106, chore: update SafeModeWhitelistedCalls

* NODE-106, fix: remove experimental features

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>
dnjscksdn98 added a commit that referenced this pull request Nov 13, 2024
* [Testnet] Apply Bitcoin Relay Protocol (BRP) (#53)

* NODE-98, feat: bitcoin registration pool (#41)

* NODE-96, feature: initialize pallet

* NODE-96, feature: init storage

* NODE-96, feature: init extrinsics

* NODE-96, feature: impl signature verification

* NODE-96, docs: add missing doc-strings

* NODE-96, feature: attach precompile

* NODE-96, fix: resolve precompile interface

* NODE-96, fix: use correct string bound

* NODE-96, fix: use vector

* NODE-96, test: add tests

* NODE-96, chore: simple fix

* NODE-98, feat: add relay executives

* NODE-98, feat: finalize pallet

* NODE-98, feat: update precompile

* NODE-98, feat: add config set extrinsics

* NODE-98, fix: resolve imports

* NODE-98, fix: update types

* NODE-98, fix: n check

* NODE-98, test: add test

* NODE-98, chore: apply feedback

* NODE-98, refactor: use better structure

* NODE-98, refactor: use better structure (2)

* NODE-98, feat: add system vault

* NODE-98, test: fix test code

* NODE-98, chore: simplify message

* NODE-98, chore: remove unused import

* NODE-99, feature: btc socket queue (#42)

* NODE-99, chore: init pallet

* NODE-99, feat: init pallet

* NODE-99, refactor: use multi-sig primitive

* NODE-99, chore: temp

* NODE-99, feat: impl extrinsics

* NODE-99, feat: add pallet

* NODE-99, fix: support no-std

* NODE-99, fix: resolve wasm build

* NODE-99, fix: comment out build

* NODE-99, feat: set submitter

* NODE-99, fix: use correct psbt hash

* NODE-99, test: add tests

* NODE-99, feat: verify duplicate signed psbt

* NODE-99, feat: verify socket message

* NODE-99, feat: verify psbt outputs

* NODE-99, fix: signed psbt

* NODE-99, refactor: update

* NODE-99, chore: set genesis config

* NODE-99, feat: add precompile

* NODE-99, feat: add relay exec precompile

* NODE-99, refactor: use unbounded bytes

* NODE-99, refactor: move miniscript to primitive only

* NODE-99, chore: check token len

* NODE-99, chore: use amount unit as sat

* NODE-99, chore: remove impl code

* NODE-99, chore: simplify code with closure

* NODE-99, chore: impl TryFrom

* NODE-99, chore: add missing docstrings

* NODE-99, fix: replace T::Signer to T::AccountId

* NODE-99, feat: store socket messages to check duplications

* NODE-99, feat: check duplicate socket message submission

* NODE-99, test: test unsigned psbt submission

* NODE-99, test: test signed psbt submission

* NODE-99, test: test finalize request

* NODE-99, fix: resolve registration pool test errors

* NODE-99, fix: check bonded pubKeys

* NODE-99, test: system vault test

* NODE-99, feat: add set_refund

* NODE-99, chore: apply cargo-clippy

* NODE-99, feat: add pending registrations

* NODE-99, fix: rename function

* NODE-99, feat: add role checker

* NODE-99, fix: apply change suggestions

* NODE-99, feat: add BondedOutboundTx

* NODE-99, feat: add precompile function

* NODE-99, fix: allow every bitcoin network type

* NODE-99, feat: add registration_info()

* NODE-102, feature: socket queue update (#43)

* NODE-102, feat: add system vout

* NODE-102, feat: try psbt finalization

* NODE-102, feat: check if message is outbound

* NODE-102, fix: update system vault interface

* NODE-102, fix: remove system vault from function

* NODE-102, fix: use correct uint type

* NODE-102, feat: allow multiple signed psbt submissions

* NODE-102, test: fix tests

* NODE-98, feat: build address script from descriptor

* NODE-98, chore: `[u8; 33]` can convert into `PublicKeyBytes`

* NODE-98, chore: not max length. should be length

* NODE-98, fix: multisig `m` could be 20 & bech32 max length is 90

* NODE-98, refactor:

* NODE-98, chore: remove unused import

* NODE-98, fix: typo

* NODE-98, refactor: remove redundant

* NODE-98, chore: unnecessary path prefix

* Update precompiles/btc-socket-queue/src/lib.rs

* NODE-98, chore: resolve comment

* NODE-98, fix: swap txid endian format

* NODE-98, test: update test code

* NODE-98, chore: update npm packages

* NODE-98, test: use correct socket message

* NODE-98, feat: store descriptor

* NODE-98, test: check descriptor existance

* NODE-98, feat: viewable descriptor

* NODE-98, refactor: use same struct

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* deploy: init testbed config

* deps: update dev chain spec

* fix: use correct context and update precompile

* fix: use single event

* test: update test

* feat: update precompile

* deps: increase runtime version

* fix: rename extrinsic

* deps: increase runtime version

* NODE-108, feat: socket queue update(2) (#48)

* NODE-108, fix: use txid as storage key

* NODE-108, feat: update precompile

* NODE-108, test: update test code

* NODE-109, feat: registration pool update (#49)

* NODE-109, feat: add clear_vault()

* NODE-109, fix: remove duplicate genesis config

* NODE-109, test: update test

* NODE-109, fix: consider system vault clear

* NODE-109, test: update test

* deps: increase runtime version

* NODE-110, fix: use desc address (#50)

* deps: increase runtime version (335)

* fix: resolve pallet issue

* NODE-114, fix: use dynamic multiSig fields & allow duplicate refund addresses (#51)

* NODE-114, fix: use dynamic n and ratio

* NODE-114, test: update tests

* NODE-114, chore: add migration

* NODE-114, fix: allow duplicate refund addresses

* NODE-114, test: update tests

* NODE-114, fix: remove unused weights

* fix: resolve import error

* deps: reset testbed

* fix: (review) move event recording

* [CCCP-385] registration-pool migration process (#55)

* CCCP-385, feature: registration pool roundup process

* CCCP-385, chore: move migration sequence enum to primitives

* CCCP-385, feature: add pool_round argument for registration pool's evm interface

* CCCP-385, chore: add default state

* CCCP-385, chore: remove `DefaultPoolRound`

* CCCP-385, fix: use correct access control

* CCCP-385, chore: set storageVersion to 1, remove migrations.rs

* NODE-117, feat: rollback protocol (#54)

* NODE-117, feat: impl rollback request submission

* NODE-117, feat: impl rollback poll submission

* NODE-117, fix: insert BondedOutboundTx only for non-rollback requests

* NODE-117, chore: cleanup palet

* NODE-117, feat: update precompile

* NODE-117, chore: update doc-string

* NODE-117, test: resolve test failures

* NODE-117, fix: use correct origin

* NODE-117, test: add rollback tests

* NODE-117, fix: resolve encode errors

* NODE-117, chore: add missing docstrings

* NODE-117, fix: prevent same side voting

* NODE-117, feat: update precompile

* NODE-117, feat: bond rollback output

* NODE-117, test: update ttest

* NODE-117, fix: use correct key prefix

* chore: remove redundant

* chore: remove unused import

* fix: typo

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

---------

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* fix: add missing imports

* fix: double check storage existence

* NODE-119, unsigned psbt message update (#56)

* NODE-119, fix: update psbt output verification

* NODE-119, fix: check psbt output amount only for refunds

* NODE-119, fix: resolve wrong state check

* NODE-119, fix: check migration sequence

* NODE-119, feat: add migration request submission

* NODE-119, fix: set correct runtime error

* fix: set default code for precompiles

* deps: update dev chain spec

* fix: use vec instead of map

* fix: check system vault

* feat: add precompile function

* chore: add missing event

* fix: add function inputs

* minor fixes (#57)

* feat: add multisig ration set extrinsic

* fix: use correct duplication check

* deps: update rust docker version

* fix: change output can not always exist

* deps: use latest rust image

* [CCCP-403] Implement `vault_key_presubmission` (#58)

* CCCP-403, feature: storage `PresubmittedPubKeys`

* CCCP-403, feature: implement vault key pre-submission

* CCCP-403, feature: Immediately generate vault address when all executives pre-submitted keys

* CCCP-403, fix: resolve comments

* chore: update ensure (#59)

* chore: update ensure

* chore: update comment

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

---------

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* fix: socket queue minor update (#60)

* fix: use psbt txid

* fix: remove useless state checks

* deps: increase runtime version (349)

* fix: use correct output len check & add output to check

* fix: use ensure_root (#61)

* fix: simply use txid instead of psbt bytes (#62)

* chore: add missing pool events (#63)

* NODE-120, test code update (#64)

* NODE-120, fix: update ethers

* NODE-120, fix: update ethers (2)

* NODE-120, fix: registration pool tests

* NODE-120, fix: socket queue tests

* NODE-120, chore: rollback to dev runtime

* NODE-120, chore: update npm package

* fix: simplify context

* deps: release pre-v2.0.0

* NODE-122, feature: apply brp to testnet (#65)

* NODE-122, feature: apply brp to testnet

* NODE-122, chore: init pallet storage v1

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* chore: remove passed storage migration

* NODE-127, fix: add psbt fee verification logic (#69)

* NODE-127, fix: filter meaningless psbt

* NODE-127, chore: resolve `unexpected cfg condition value`

* NODE-127, fix: add psbt fee verification logic

* Update pallets/btc-socket-queue/src/pallet/mod.rs

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-127, fix: add missing psbt fee verification logic

* NODE-127, chore: set default max fee rate

---------

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-128, fix: add `SetExecutiveMembers` to `MigrationSequence` (#70)

* NODE-128, fix: add SetExecutiveMembers to MigrationSequence

* NODE-128, chore: add doc-strings

* NODE-130, fix: Update to unpayable extrinsics (#72)

* NODE-130, fix: replace unsigned transactions to unpayable extrinsics - registration pool

* NODE-130, fix: replace unsigned transactions to unpayable extrinsics - socket queue

* NODE-130, fix: remove unused Config type

* NODE-130, chore: add AuthorityDNE error

* NODE-126, fix: consider address check after vault generation (#68)

* NODE-126, fix: consider address check after vault generation

* NODE-126, fix: remove pubkey clear logic

* NODE-126, fix: insert default on failure

* fix: replace to `ensure_signed` (#73)

* fix: replace to ensure_signed

* test: replace test to signed tx

* Revert "fix: replace to `ensure_signed` (#73)" (#74)

This reverts commit b64dc4b.

* Revert "NODE-130, fix: Update to unpayable extrinsics (#72)" (#75)

This reverts commit 883262e.

* NODE-131, fix: add verifiers to signature (#76)

* NODE-131, fix: add pool_round to signature

* NODE-131, fix: add SigDomain

* NODE-131, fix: use concatenated bytes

* NODE-131, fix: use remove :?

* NODE-134, feat: add `submit_bump_fee_request()` (#78)

* NODE-134, feat: add submit_bump_fee_request

* NODE-134, feat: insert new SocketMessages

* NODE-134, fix: improve verification

* Update pallets/btc-socket-queue/src/pallet/impls.rs

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* Update pallets/btc-socket-queue/src/pallet/impls.rs

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

---------

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* NODE-139, fix: only permit when the migration tx broadcast (#84)

* NODE-139, fix: only permit when the migration tx broadcast

* NODE-139, fix: consider multiple migration transactions

* NODE-141, fix: include field `is_approved` into signature message (#86)

* NODE-140, fix: `btc-socket-queue` should be empty before pool migration (#85)

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-142, refactor: apply pending and approval process when setting refunds (#87)

* NODE-142, refactor: apply pending and approval process when setting refunds

* chore: remove unnecessary `return`

* NODE-142, chore: store current and present addresses both

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* NODE-144, feat: update `submit_bump_fee_request()` (#89)

* NODE-144, feat: make it compatible with rollbacks/migrations

* NODE-144, fix: use correct output check

* NODE-144, fix: use correct storage key

* NODE-144, fix: use mutate

* NODE-106, deps: update to bifrost-polkadot-v1.12.0

* NODE-106, fix: use in_code_storage_version()

* NODE-106, fix: resolve collective precompile compile error

* NODE-106, fix: resolve UnboundedBytes comparison

* NODE-106, fix: remove unused param

* NODE-106, fix: use legacy

* NODE-106, feat: update pallet_balances config

* NODE-106, feat: update pallet_identity config

* NODE-106, feat: add RuntimeTask type

* NODE-106, feat: add migrations and system callbacks

* NODE-106, feat: expose SlotDuration

* NODE-106, feat: add runtime apis

* NODE-106, fix: resolve Aura storage access

* NODE-106, feat: migrate to fungible

* NODE-106, deps: std and serde setup

* NODE-106, fix: rollback GasWeightMapping import

* NODE-106, feat: update client side

* NODE-106, fix: rollback CurrencyAdaptor

* NODE-106, deps: add Migrations

* NODE-106, feat: impl safe-mode and tx-pause

* NODE-106, feat: replace to derive_impl and v2 runtime construction

* NODE-106, chore: set CFLAGS mcpu=mvp on aarch64 arch

* NODE-106, deps: replace substrate-fixed to concrete version

* NODE-106, refactor: remove pallet::getter from custom pallets

* NODE-106, chore: possibly overflow

* NODE-106, deps: remove unused dependencies

* NODE-106, fix: remove deprecated getter

* NODE-106, deps: bump to stable2407

* NODE-106, chore: replace deprecated getters

* NODE-106, chore: Add RPC api pending_initialize_block

* NODE-106, chore: update pallet_treasury config

* NODE-106, chore: remove generic

* NODE-106, fix: remove deprecated getter

* NODE-106, fix: resolve merge conflicts

* NODE-106, deps: release v2.0.1

* NODE-106, fix: use correct balance

* NODE-106, fix: remove duplicate test code

* NODE-106, fix: remove deposit amount

* NODE-106, chore: update SafeModeWhitelistedCalls

* NODE-106, fix: remove experimental features

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>
dnjscksdn98 added a commit that referenced this pull request Dec 10, 2024
* NODE-106, deps: `polkadot-sdk@stable2407` migration (#67)

* [Testnet] Apply Bitcoin Relay Protocol (BRP) (#53)

* NODE-98, feat: bitcoin registration pool (#41)

* NODE-96, feature: initialize pallet

* NODE-96, feature: init storage

* NODE-96, feature: init extrinsics

* NODE-96, feature: impl signature verification

* NODE-96, docs: add missing doc-strings

* NODE-96, feature: attach precompile

* NODE-96, fix: resolve precompile interface

* NODE-96, fix: use correct string bound

* NODE-96, fix: use vector

* NODE-96, test: add tests

* NODE-96, chore: simple fix

* NODE-98, feat: add relay executives

* NODE-98, feat: finalize pallet

* NODE-98, feat: update precompile

* NODE-98, feat: add config set extrinsics

* NODE-98, fix: resolve imports

* NODE-98, fix: update types

* NODE-98, fix: n check

* NODE-98, test: add test

* NODE-98, chore: apply feedback

* NODE-98, refactor: use better structure

* NODE-98, refactor: use better structure (2)

* NODE-98, feat: add system vault

* NODE-98, test: fix test code

* NODE-98, chore: simplify message

* NODE-98, chore: remove unused import

* NODE-99, feature: btc socket queue (#42)

* NODE-99, chore: init pallet

* NODE-99, feat: init pallet

* NODE-99, refactor: use multi-sig primitive

* NODE-99, chore: temp

* NODE-99, feat: impl extrinsics

* NODE-99, feat: add pallet

* NODE-99, fix: support no-std

* NODE-99, fix: resolve wasm build

* NODE-99, fix: comment out build

* NODE-99, feat: set submitter

* NODE-99, fix: use correct psbt hash

* NODE-99, test: add tests

* NODE-99, feat: verify duplicate signed psbt

* NODE-99, feat: verify socket message

* NODE-99, feat: verify psbt outputs

* NODE-99, fix: signed psbt

* NODE-99, refactor: update

* NODE-99, chore: set genesis config

* NODE-99, feat: add precompile

* NODE-99, feat: add relay exec precompile

* NODE-99, refactor: use unbounded bytes

* NODE-99, refactor: move miniscript to primitive only

* NODE-99, chore: check token len

* NODE-99, chore: use amount unit as sat

* NODE-99, chore: remove impl code

* NODE-99, chore: simplify code with closure

* NODE-99, chore: impl TryFrom

* NODE-99, chore: add missing docstrings

* NODE-99, fix: replace T::Signer to T::AccountId

* NODE-99, feat: store socket messages to check duplications

* NODE-99, feat: check duplicate socket message submission

* NODE-99, test: test unsigned psbt submission

* NODE-99, test: test signed psbt submission

* NODE-99, test: test finalize request

* NODE-99, fix: resolve registration pool test errors

* NODE-99, fix: check bonded pubKeys

* NODE-99, test: system vault test

* NODE-99, feat: add set_refund

* NODE-99, chore: apply cargo-clippy

* NODE-99, feat: add pending registrations

* NODE-99, fix: rename function

* NODE-99, feat: add role checker

* NODE-99, fix: apply change suggestions

* NODE-99, feat: add BondedOutboundTx

* NODE-99, feat: add precompile function

* NODE-99, fix: allow every bitcoin network type

* NODE-99, feat: add registration_info()

* NODE-102, feature: socket queue update (#43)

* NODE-102, feat: add system vout

* NODE-102, feat: try psbt finalization

* NODE-102, feat: check if message is outbound

* NODE-102, fix: update system vault interface

* NODE-102, fix: remove system vault from function

* NODE-102, fix: use correct uint type

* NODE-102, feat: allow multiple signed psbt submissions

* NODE-102, test: fix tests

* NODE-98, feat: build address script from descriptor

* NODE-98, chore: `[u8; 33]` can convert into `PublicKeyBytes`

* NODE-98, chore: not max length. should be length

* NODE-98, fix: multisig `m` could be 20 & bech32 max length is 90

* NODE-98, refactor:

* NODE-98, chore: remove unused import

* NODE-98, fix: typo

* NODE-98, refactor: remove redundant

* NODE-98, chore: unnecessary path prefix

* Update precompiles/btc-socket-queue/src/lib.rs

* NODE-98, chore: resolve comment

* NODE-98, fix: swap txid endian format

* NODE-98, test: update test code

* NODE-98, chore: update npm packages

* NODE-98, test: use correct socket message

* NODE-98, feat: store descriptor

* NODE-98, test: check descriptor existance

* NODE-98, feat: viewable descriptor

* NODE-98, refactor: use same struct

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* deploy: init testbed config

* deps: update dev chain spec

* fix: use correct context and update precompile

* fix: use single event

* test: update test

* feat: update precompile

* deps: increase runtime version

* fix: rename extrinsic

* deps: increase runtime version

* NODE-108, feat: socket queue update(2) (#48)

* NODE-108, fix: use txid as storage key

* NODE-108, feat: update precompile

* NODE-108, test: update test code

* NODE-109, feat: registration pool update (#49)

* NODE-109, feat: add clear_vault()

* NODE-109, fix: remove duplicate genesis config

* NODE-109, test: update test

* NODE-109, fix: consider system vault clear

* NODE-109, test: update test

* deps: increase runtime version

* NODE-110, fix: use desc address (#50)

* deps: increase runtime version (335)

* fix: resolve pallet issue

* NODE-114, fix: use dynamic multiSig fields & allow duplicate refund addresses (#51)

* NODE-114, fix: use dynamic n and ratio

* NODE-114, test: update tests

* NODE-114, chore: add migration

* NODE-114, fix: allow duplicate refund addresses

* NODE-114, test: update tests

* NODE-114, fix: remove unused weights

* fix: resolve import error

* deps: reset testbed

* fix: (review) move event recording

* [CCCP-385] registration-pool migration process (#55)

* CCCP-385, feature: registration pool roundup process

* CCCP-385, chore: move migration sequence enum to primitives

* CCCP-385, feature: add pool_round argument for registration pool's evm interface

* CCCP-385, chore: add default state

* CCCP-385, chore: remove `DefaultPoolRound`

* CCCP-385, fix: use correct access control

* CCCP-385, chore: set storageVersion to 1, remove migrations.rs

* NODE-117, feat: rollback protocol (#54)

* NODE-117, feat: impl rollback request submission

* NODE-117, feat: impl rollback poll submission

* NODE-117, fix: insert BondedOutboundTx only for non-rollback requests

* NODE-117, chore: cleanup palet

* NODE-117, feat: update precompile

* NODE-117, chore: update doc-string

* NODE-117, test: resolve test failures

* NODE-117, fix: use correct origin

* NODE-117, test: add rollback tests

* NODE-117, fix: resolve encode errors

* NODE-117, chore: add missing docstrings

* NODE-117, fix: prevent same side voting

* NODE-117, feat: update precompile

* NODE-117, feat: bond rollback output

* NODE-117, test: update ttest

* NODE-117, fix: use correct key prefix

* chore: remove redundant

* chore: remove unused import

* fix: typo

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

---------

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* fix: add missing imports

* fix: double check storage existence

* NODE-119, unsigned psbt message update (#56)

* NODE-119, fix: update psbt output verification

* NODE-119, fix: check psbt output amount only for refunds

* NODE-119, fix: resolve wrong state check

* NODE-119, fix: check migration sequence

* NODE-119, feat: add migration request submission

* NODE-119, fix: set correct runtime error

* fix: set default code for precompiles

* deps: update dev chain spec

* fix: use vec instead of map

* fix: check system vault

* feat: add precompile function

* chore: add missing event

* fix: add function inputs

* minor fixes (#57)

* feat: add multisig ration set extrinsic

* fix: use correct duplication check

* deps: update rust docker version

* fix: change output can not always exist

* deps: use latest rust image

* [CCCP-403] Implement `vault_key_presubmission` (#58)

* CCCP-403, feature: storage `PresubmittedPubKeys`

* CCCP-403, feature: implement vault key pre-submission

* CCCP-403, feature: Immediately generate vault address when all executives pre-submitted keys

* CCCP-403, fix: resolve comments

* chore: update ensure (#59)

* chore: update ensure

* chore: update comment

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

---------

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* fix: socket queue minor update (#60)

* fix: use psbt txid

* fix: remove useless state checks

* deps: increase runtime version (349)

* fix: use correct output len check & add output to check

* fix: use ensure_root (#61)

* fix: simply use txid instead of psbt bytes (#62)

* chore: add missing pool events (#63)

* NODE-120, test code update (#64)

* NODE-120, fix: update ethers

* NODE-120, fix: update ethers (2)

* NODE-120, fix: registration pool tests

* NODE-120, fix: socket queue tests

* NODE-120, chore: rollback to dev runtime

* NODE-120, chore: update npm package

* fix: simplify context

* deps: release pre-v2.0.0

* NODE-122, feature: apply brp to testnet (#65)

* NODE-122, feature: apply brp to testnet

* NODE-122, chore: init pallet storage v1

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* chore: remove passed storage migration

* NODE-127, fix: add psbt fee verification logic (#69)

* NODE-127, fix: filter meaningless psbt

* NODE-127, chore: resolve `unexpected cfg condition value`

* NODE-127, fix: add psbt fee verification logic

* Update pallets/btc-socket-queue/src/pallet/mod.rs

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-127, fix: add missing psbt fee verification logic

* NODE-127, chore: set default max fee rate

---------

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-128, fix: add `SetExecutiveMembers` to `MigrationSequence` (#70)

* NODE-128, fix: add SetExecutiveMembers to MigrationSequence

* NODE-128, chore: add doc-strings

* NODE-130, fix: Update to unpayable extrinsics (#72)

* NODE-130, fix: replace unsigned transactions to unpayable extrinsics - registration pool

* NODE-130, fix: replace unsigned transactions to unpayable extrinsics - socket queue

* NODE-130, fix: remove unused Config type

* NODE-130, chore: add AuthorityDNE error

* NODE-126, fix: consider address check after vault generation (#68)

* NODE-126, fix: consider address check after vault generation

* NODE-126, fix: remove pubkey clear logic

* NODE-126, fix: insert default on failure

* fix: replace to `ensure_signed` (#73)

* fix: replace to ensure_signed

* test: replace test to signed tx

* Revert "fix: replace to `ensure_signed` (#73)" (#74)

This reverts commit b64dc4b.

* Revert "NODE-130, fix: Update to unpayable extrinsics (#72)" (#75)

This reverts commit 883262e.

* NODE-131, fix: add verifiers to signature (#76)

* NODE-131, fix: add pool_round to signature

* NODE-131, fix: add SigDomain

* NODE-131, fix: use concatenated bytes

* NODE-131, fix: use remove :?

* NODE-134, feat: add `submit_bump_fee_request()` (#78)

* NODE-134, feat: add submit_bump_fee_request

* NODE-134, feat: insert new SocketMessages

* NODE-134, fix: improve verification

* Update pallets/btc-socket-queue/src/pallet/impls.rs

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* Update pallets/btc-socket-queue/src/pallet/impls.rs

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

---------

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* NODE-139, fix: only permit when the migration tx broadcast (#84)

* NODE-139, fix: only permit when the migration tx broadcast

* NODE-139, fix: consider multiple migration transactions

* NODE-141, fix: include field `is_approved` into signature message (#86)

* NODE-140, fix: `btc-socket-queue` should be empty before pool migration (#85)

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-142, refactor: apply pending and approval process when setting refunds (#87)

* NODE-142, refactor: apply pending and approval process when setting refunds

* chore: remove unnecessary `return`

* NODE-142, chore: store current and present addresses both

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* NODE-144, feat: update `submit_bump_fee_request()` (#89)

* NODE-144, feat: make it compatible with rollbacks/migrations

* NODE-144, fix: use correct output check

* NODE-144, fix: use correct storage key

* NODE-144, fix: use mutate

* NODE-106, deps: update to bifrost-polkadot-v1.12.0

* NODE-106, fix: use in_code_storage_version()

* NODE-106, fix: resolve collective precompile compile error

* NODE-106, fix: resolve UnboundedBytes comparison

* NODE-106, fix: remove unused param

* NODE-106, fix: use legacy

* NODE-106, feat: update pallet_balances config

* NODE-106, feat: update pallet_identity config

* NODE-106, feat: add RuntimeTask type

* NODE-106, feat: add migrations and system callbacks

* NODE-106, feat: expose SlotDuration

* NODE-106, feat: add runtime apis

* NODE-106, fix: resolve Aura storage access

* NODE-106, feat: migrate to fungible

* NODE-106, deps: std and serde setup

* NODE-106, fix: rollback GasWeightMapping import

* NODE-106, feat: update client side

* NODE-106, fix: rollback CurrencyAdaptor

* NODE-106, deps: add Migrations

* NODE-106, feat: impl safe-mode and tx-pause

* NODE-106, feat: replace to derive_impl and v2 runtime construction

* NODE-106, chore: set CFLAGS mcpu=mvp on aarch64 arch

* NODE-106, deps: replace substrate-fixed to concrete version

* NODE-106, refactor: remove pallet::getter from custom pallets

* NODE-106, chore: possibly overflow

* NODE-106, deps: remove unused dependencies

* NODE-106, fix: remove deprecated getter

* NODE-106, deps: bump to stable2407

* NODE-106, chore: replace deprecated getters

* NODE-106, chore: Add RPC api pending_initialize_block

* NODE-106, chore: update pallet_treasury config

* NODE-106, chore: remove generic

* NODE-106, fix: remove deprecated getter

* NODE-106, fix: resolve merge conflicts

* NODE-106, deps: release v2.0.1

* NODE-106, fix: use correct balance

* NODE-106, fix: remove duplicate test code

* NODE-106, fix: remove deposit amount

* NODE-106, chore: update SafeModeWhitelistedCalls

* NODE-106, fix: remove experimental features

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* fix: replace deprecated function

* fix: resolve old syntax

* feat: include system vault address

* deps: update cargo

* chore: update package.json

* chore: remove passed storage migrations

* deps: update cargo

* feat: update cargo - Cancun support

* deps: update cargo (bifrost-frontier)

* (rollback): include system vault address

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>
dnjscksdn98 added a commit that referenced this pull request Dec 19, 2024
* [Testnet] Apply Bitcoin Relay Protocol (BRP) (#53)

* NODE-98, feat: bitcoin registration pool (#41)

* NODE-96, feature: initialize pallet

* NODE-96, feature: init storage

* NODE-96, feature: init extrinsics

* NODE-96, feature: impl signature verification

* NODE-96, docs: add missing doc-strings

* NODE-96, feature: attach precompile

* NODE-96, fix: resolve precompile interface

* NODE-96, fix: use correct string bound

* NODE-96, fix: use vector

* NODE-96, test: add tests

* NODE-96, chore: simple fix

* NODE-98, feat: add relay executives

* NODE-98, feat: finalize pallet

* NODE-98, feat: update precompile

* NODE-98, feat: add config set extrinsics

* NODE-98, fix: resolve imports

* NODE-98, fix: update types

* NODE-98, fix: n check

* NODE-98, test: add test

* NODE-98, chore: apply feedback

* NODE-98, refactor: use better structure

* NODE-98, refactor: use better structure (2)

* NODE-98, feat: add system vault

* NODE-98, test: fix test code

* NODE-98, chore: simplify message

* NODE-98, chore: remove unused import

* NODE-99, feature: btc socket queue (#42)

* NODE-99, chore: init pallet

* NODE-99, feat: init pallet

* NODE-99, refactor: use multi-sig primitive

* NODE-99, chore: temp

* NODE-99, feat: impl extrinsics

* NODE-99, feat: add pallet

* NODE-99, fix: support no-std

* NODE-99, fix: resolve wasm build

* NODE-99, fix: comment out build

* NODE-99, feat: set submitter

* NODE-99, fix: use correct psbt hash

* NODE-99, test: add tests

* NODE-99, feat: verify duplicate signed psbt

* NODE-99, feat: verify socket message

* NODE-99, feat: verify psbt outputs

* NODE-99, fix: signed psbt

* NODE-99, refactor: update

* NODE-99, chore: set genesis config

* NODE-99, feat: add precompile

* NODE-99, feat: add relay exec precompile

* NODE-99, refactor: use unbounded bytes

* NODE-99, refactor: move miniscript to primitive only

* NODE-99, chore: check token len

* NODE-99, chore: use amount unit as sat

* NODE-99, chore: remove impl code

* NODE-99, chore: simplify code with closure

* NODE-99, chore: impl TryFrom

* NODE-99, chore: add missing docstrings

* NODE-99, fix: replace T::Signer to T::AccountId

* NODE-99, feat: store socket messages to check duplications

* NODE-99, feat: check duplicate socket message submission

* NODE-99, test: test unsigned psbt submission

* NODE-99, test: test signed psbt submission

* NODE-99, test: test finalize request

* NODE-99, fix: resolve registration pool test errors

* NODE-99, fix: check bonded pubKeys

* NODE-99, test: system vault test

* NODE-99, feat: add set_refund

* NODE-99, chore: apply cargo-clippy

* NODE-99, feat: add pending registrations

* NODE-99, fix: rename function

* NODE-99, feat: add role checker

* NODE-99, fix: apply change suggestions

* NODE-99, feat: add BondedOutboundTx

* NODE-99, feat: add precompile function

* NODE-99, fix: allow every bitcoin network type

* NODE-99, feat: add registration_info()

* NODE-102, feature: socket queue update (#43)

* NODE-102, feat: add system vout

* NODE-102, feat: try psbt finalization

* NODE-102, feat: check if message is outbound

* NODE-102, fix: update system vault interface

* NODE-102, fix: remove system vault from function

* NODE-102, fix: use correct uint type

* NODE-102, feat: allow multiple signed psbt submissions

* NODE-102, test: fix tests

* NODE-98, feat: build address script from descriptor

* NODE-98, chore: `[u8; 33]` can convert into `PublicKeyBytes`

* NODE-98, chore: not max length. should be length

* NODE-98, fix: multisig `m` could be 20 & bech32 max length is 90

* NODE-98, refactor:

* NODE-98, chore: remove unused import

* NODE-98, fix: typo

* NODE-98, refactor: remove redundant

* NODE-98, chore: unnecessary path prefix

* Update precompiles/btc-socket-queue/src/lib.rs

* NODE-98, chore: resolve comment

* NODE-98, fix: swap txid endian format

* NODE-98, test: update test code

* NODE-98, chore: update npm packages

* NODE-98, test: use correct socket message

* NODE-98, feat: store descriptor

* NODE-98, test: check descriptor existance

* NODE-98, feat: viewable descriptor

* NODE-98, refactor: use same struct

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* deploy: init testbed config

* deps: update dev chain spec

* fix: use correct context and update precompile

* fix: use single event

* test: update test

* feat: update precompile

* deps: increase runtime version

* fix: rename extrinsic

* deps: increase runtime version

* NODE-108, feat: socket queue update(2) (#48)

* NODE-108, fix: use txid as storage key

* NODE-108, feat: update precompile

* NODE-108, test: update test code

* NODE-109, feat: registration pool update (#49)

* NODE-109, feat: add clear_vault()

* NODE-109, fix: remove duplicate genesis config

* NODE-109, test: update test

* NODE-109, fix: consider system vault clear

* NODE-109, test: update test

* deps: increase runtime version

* NODE-110, fix: use desc address (#50)

* deps: increase runtime version (335)

* fix: resolve pallet issue

* NODE-114, fix: use dynamic multiSig fields & allow duplicate refund addresses (#51)

* NODE-114, fix: use dynamic n and ratio

* NODE-114, test: update tests

* NODE-114, chore: add migration

* NODE-114, fix: allow duplicate refund addresses

* NODE-114, test: update tests

* NODE-114, fix: remove unused weights

* fix: resolve import error

* deps: reset testbed

* fix: (review) move event recording

* [CCCP-385] registration-pool migration process (#55)

* CCCP-385, feature: registration pool roundup process

* CCCP-385, chore: move migration sequence enum to primitives

* CCCP-385, feature: add pool_round argument for registration pool's evm interface

* CCCP-385, chore: add default state

* CCCP-385, chore: remove `DefaultPoolRound`

* CCCP-385, fix: use correct access control

* CCCP-385, chore: set storageVersion to 1, remove migrations.rs

* NODE-117, feat: rollback protocol (#54)

* NODE-117, feat: impl rollback request submission

* NODE-117, feat: impl rollback poll submission

* NODE-117, fix: insert BondedOutboundTx only for non-rollback requests

* NODE-117, chore: cleanup palet

* NODE-117, feat: update precompile

* NODE-117, chore: update doc-string

* NODE-117, test: resolve test failures

* NODE-117, fix: use correct origin

* NODE-117, test: add rollback tests

* NODE-117, fix: resolve encode errors

* NODE-117, chore: add missing docstrings

* NODE-117, fix: prevent same side voting

* NODE-117, feat: update precompile

* NODE-117, feat: bond rollback output

* NODE-117, test: update ttest

* NODE-117, fix: use correct key prefix

* chore: remove redundant

* chore: remove unused import

* fix: typo

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

---------

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* fix: add missing imports

* fix: double check storage existence

* NODE-119, unsigned psbt message update (#56)

* NODE-119, fix: update psbt output verification

* NODE-119, fix: check psbt output amount only for refunds

* NODE-119, fix: resolve wrong state check

* NODE-119, fix: check migration sequence

* NODE-119, feat: add migration request submission

* NODE-119, fix: set correct runtime error

* fix: set default code for precompiles

* deps: update dev chain spec

* fix: use vec instead of map

* fix: check system vault

* feat: add precompile function

* chore: add missing event

* fix: add function inputs

* minor fixes (#57)

* feat: add multisig ration set extrinsic

* fix: use correct duplication check

* deps: update rust docker version

* fix: change output can not always exist

* deps: use latest rust image

* [CCCP-403] Implement `vault_key_presubmission` (#58)

* CCCP-403, feature: storage `PresubmittedPubKeys`

* CCCP-403, feature: implement vault key pre-submission

* CCCP-403, feature: Immediately generate vault address when all executives pre-submitted keys

* CCCP-403, fix: resolve comments

* chore: update ensure (#59)

* chore: update ensure

* chore: update comment

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

---------

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* fix: socket queue minor update (#60)

* fix: use psbt txid

* fix: remove useless state checks

* deps: increase runtime version (349)

* fix: use correct output len check & add output to check

* fix: use ensure_root (#61)

* fix: simply use txid instead of psbt bytes (#62)

* chore: add missing pool events (#63)

* NODE-120, test code update (#64)

* NODE-120, fix: update ethers

* NODE-120, fix: update ethers (2)

* NODE-120, fix: registration pool tests

* NODE-120, fix: socket queue tests

* NODE-120, chore: rollback to dev runtime

* NODE-120, chore: update npm package

* fix: simplify context

* deps: release pre-v2.0.0

* NODE-122, feature: apply brp to testnet (#65)

* NODE-122, feature: apply brp to testnet

* NODE-122, chore: init pallet storage v1

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* chore: remove passed storage migration

* NODE-127, fix: add psbt fee verification logic (#69)

* NODE-127, fix: filter meaningless psbt

* NODE-127, chore: resolve `unexpected cfg condition value`

* NODE-127, fix: add psbt fee verification logic

* Update pallets/btc-socket-queue/src/pallet/mod.rs

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-127, fix: add missing psbt fee verification logic

* NODE-127, chore: set default max fee rate

---------

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-128, fix: add `SetExecutiveMembers` to `MigrationSequence` (#70)

* NODE-128, fix: add SetExecutiveMembers to MigrationSequence

* NODE-128, chore: add doc-strings

* NODE-130, fix: Update to unpayable extrinsics (#72)

* NODE-130, fix: replace unsigned transactions to unpayable extrinsics - registration pool

* NODE-130, fix: replace unsigned transactions to unpayable extrinsics - socket queue

* NODE-130, fix: remove unused Config type

* NODE-130, chore: add AuthorityDNE error

* NODE-126, fix: consider address check after vault generation (#68)

* NODE-126, fix: consider address check after vault generation

* NODE-126, fix: remove pubkey clear logic

* NODE-126, fix: insert default on failure

* fix: replace to `ensure_signed` (#73)

* fix: replace to ensure_signed

* test: replace test to signed tx

* Revert "fix: replace to `ensure_signed` (#73)" (#74)

This reverts commit b64dc4b.

* Revert "NODE-130, fix: Update to unpayable extrinsics (#72)" (#75)

This reverts commit 883262e.

* NODE-131, fix: add verifiers to signature (#76)

* NODE-131, fix: add pool_round to signature

* NODE-131, fix: add SigDomain

* NODE-131, fix: use concatenated bytes

* NODE-131, fix: use remove :?

* NODE-134, feat: add `submit_bump_fee_request()` (#78)

* NODE-134, feat: add submit_bump_fee_request

* NODE-134, feat: insert new SocketMessages

* NODE-134, fix: improve verification

* Update pallets/btc-socket-queue/src/pallet/impls.rs

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* Update pallets/btc-socket-queue/src/pallet/impls.rs

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

---------

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* NODE-139, fix: only permit when the migration tx broadcast (#84)

* NODE-139, fix: only permit when the migration tx broadcast

* NODE-139, fix: consider multiple migration transactions

* NODE-141, fix: include field `is_approved` into signature message (#86)

* NODE-140, fix: `btc-socket-queue` should be empty before pool migration (#85)

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-142, refactor: apply pending and approval process when setting refunds (#87)

* NODE-142, refactor: apply pending and approval process when setting refunds

* chore: remove unnecessary `return`

* NODE-142, chore: store current and present addresses both

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* NODE-144, feat: update `submit_bump_fee_request()` (#89)

* NODE-144, feat: make it compatible with rollbacks/migrations

* NODE-144, fix: use correct output check

* NODE-144, fix: use correct storage key

* NODE-144, fix: use mutate

* NODE-106, deps: update to bifrost-polkadot-v1.12.0

* NODE-106, fix: use in_code_storage_version()

* NODE-106, fix: resolve collective precompile compile error

* NODE-106, fix: resolve UnboundedBytes comparison

* NODE-106, fix: remove unused param

* NODE-106, fix: use legacy

* NODE-106, feat: update pallet_balances config

* NODE-106, feat: update pallet_identity config

* NODE-106, feat: add RuntimeTask type

* NODE-106, feat: add migrations and system callbacks

* NODE-106, feat: expose SlotDuration

* NODE-106, feat: add runtime apis

* NODE-106, fix: resolve Aura storage access

* NODE-106, feat: migrate to fungible

* NODE-106, deps: std and serde setup

* NODE-106, fix: rollback GasWeightMapping import

* NODE-106, feat: update client side

* NODE-106, fix: rollback CurrencyAdaptor

* NODE-106, deps: add Migrations

* NODE-106, feat: impl safe-mode and tx-pause

* NODE-106, feat: replace to derive_impl and v2 runtime construction

* NODE-106, chore: set CFLAGS mcpu=mvp on aarch64 arch

* NODE-106, deps: replace substrate-fixed to concrete version

* NODE-106, refactor: remove pallet::getter from custom pallets

* NODE-106, chore: possibly overflow

* NODE-106, deps: remove unused dependencies

* NODE-106, fix: remove deprecated getter

* NODE-106, deps: bump to stable2407

* NODE-106, chore: replace deprecated getters

* NODE-106, chore: Add RPC api pending_initialize_block

* NODE-106, chore: update pallet_treasury config

* NODE-106, chore: remove generic

* NODE-106, fix: remove deprecated getter

* NODE-106, fix: resolve merge conflicts

* NODE-106, deps: release v2.0.1

* NODE-106, fix: use correct balance

* NODE-106, fix: remove duplicate test code

* NODE-106, fix: remove deposit amount

* NODE-106, chore: update SafeModeWhitelistedCalls

* NODE-106, fix: remove experimental features

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>
dnjscksdn98 added a commit that referenced this pull request Aug 19, 2025
* [Testnet] Apply Bitcoin Relay Protocol (BRP) (#53)

* NODE-98, feat: bitcoin registration pool (#41)

* NODE-96, feature: initialize pallet

* NODE-96, feature: init storage

* NODE-96, feature: init extrinsics

* NODE-96, feature: impl signature verification

* NODE-96, docs: add missing doc-strings

* NODE-96, feature: attach precompile

* NODE-96, fix: resolve precompile interface

* NODE-96, fix: use correct string bound

* NODE-96, fix: use vector

* NODE-96, test: add tests

* NODE-96, chore: simple fix

* NODE-98, feat: add relay executives

* NODE-98, feat: finalize pallet

* NODE-98, feat: update precompile

* NODE-98, feat: add config set extrinsics

* NODE-98, fix: resolve imports

* NODE-98, fix: update types

* NODE-98, fix: n check

* NODE-98, test: add test

* NODE-98, chore: apply feedback

* NODE-98, refactor: use better structure

* NODE-98, refactor: use better structure (2)

* NODE-98, feat: add system vault

* NODE-98, test: fix test code

* NODE-98, chore: simplify message

* NODE-98, chore: remove unused import

* NODE-99, feature: btc socket queue (#42)

* NODE-99, chore: init pallet

* NODE-99, feat: init pallet

* NODE-99, refactor: use multi-sig primitive

* NODE-99, chore: temp

* NODE-99, feat: impl extrinsics

* NODE-99, feat: add pallet

* NODE-99, fix: support no-std

* NODE-99, fix: resolve wasm build

* NODE-99, fix: comment out build

* NODE-99, feat: set submitter

* NODE-99, fix: use correct psbt hash

* NODE-99, test: add tests

* NODE-99, feat: verify duplicate signed psbt

* NODE-99, feat: verify socket message

* NODE-99, feat: verify psbt outputs

* NODE-99, fix: signed psbt

* NODE-99, refactor: update

* NODE-99, chore: set genesis config

* NODE-99, feat: add precompile

* NODE-99, feat: add relay exec precompile

* NODE-99, refactor: use unbounded bytes

* NODE-99, refactor: move miniscript to primitive only

* NODE-99, chore: check token len

* NODE-99, chore: use amount unit as sat

* NODE-99, chore: remove impl code

* NODE-99, chore: simplify code with closure

* NODE-99, chore: impl TryFrom

* NODE-99, chore: add missing docstrings

* NODE-99, fix: replace T::Signer to T::AccountId

* NODE-99, feat: store socket messages to check duplications

* NODE-99, feat: check duplicate socket message submission

* NODE-99, test: test unsigned psbt submission

* NODE-99, test: test signed psbt submission

* NODE-99, test: test finalize request

* NODE-99, fix: resolve registration pool test errors

* NODE-99, fix: check bonded pubKeys

* NODE-99, test: system vault test

* NODE-99, feat: add set_refund

* NODE-99, chore: apply cargo-clippy

* NODE-99, feat: add pending registrations

* NODE-99, fix: rename function

* NODE-99, feat: add role checker

* NODE-99, fix: apply change suggestions

* NODE-99, feat: add BondedOutboundTx

* NODE-99, feat: add precompile function

* NODE-99, fix: allow every bitcoin network type

* NODE-99, feat: add registration_info()

* NODE-102, feature: socket queue update (#43)

* NODE-102, feat: add system vout

* NODE-102, feat: try psbt finalization

* NODE-102, feat: check if message is outbound

* NODE-102, fix: update system vault interface

* NODE-102, fix: remove system vault from function

* NODE-102, fix: use correct uint type

* NODE-102, feat: allow multiple signed psbt submissions

* NODE-102, test: fix tests

* NODE-98, feat: build address script from descriptor

* NODE-98, chore: `[u8; 33]` can convert into `PublicKeyBytes`

* NODE-98, chore: not max length. should be length

* NODE-98, fix: multisig `m` could be 20 & bech32 max length is 90

* NODE-98, refactor:

* NODE-98, chore: remove unused import

* NODE-98, fix: typo

* NODE-98, refactor: remove redundant

* NODE-98, chore: unnecessary path prefix

* Update precompiles/btc-socket-queue/src/lib.rs

* NODE-98, chore: resolve comment

* NODE-98, fix: swap txid endian format

* NODE-98, test: update test code

* NODE-98, chore: update npm packages

* NODE-98, test: use correct socket message

* NODE-98, feat: store descriptor

* NODE-98, test: check descriptor existance

* NODE-98, feat: viewable descriptor

* NODE-98, refactor: use same struct

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* deploy: init testbed config

* deps: update dev chain spec

* fix: use correct context and update precompile

* fix: use single event

* test: update test

* feat: update precompile

* deps: increase runtime version

* fix: rename extrinsic

* deps: increase runtime version

* NODE-108, feat: socket queue update(2) (#48)

* NODE-108, fix: use txid as storage key

* NODE-108, feat: update precompile

* NODE-108, test: update test code

* NODE-109, feat: registration pool update (#49)

* NODE-109, feat: add clear_vault()

* NODE-109, fix: remove duplicate genesis config

* NODE-109, test: update test

* NODE-109, fix: consider system vault clear

* NODE-109, test: update test

* deps: increase runtime version

* NODE-110, fix: use desc address (#50)

* deps: increase runtime version (335)

* fix: resolve pallet issue

* NODE-114, fix: use dynamic multiSig fields & allow duplicate refund addresses (#51)

* NODE-114, fix: use dynamic n and ratio

* NODE-114, test: update tests

* NODE-114, chore: add migration

* NODE-114, fix: allow duplicate refund addresses

* NODE-114, test: update tests

* NODE-114, fix: remove unused weights

* fix: resolve import error

* deps: reset testbed

* fix: (review) move event recording

* [CCCP-385] registration-pool migration process (#55)

* CCCP-385, feature: registration pool roundup process

* CCCP-385, chore: move migration sequence enum to primitives

* CCCP-385, feature: add pool_round argument for registration pool's evm interface

* CCCP-385, chore: add default state

* CCCP-385, chore: remove `DefaultPoolRound`

* CCCP-385, fix: use correct access control

* CCCP-385, chore: set storageVersion to 1, remove migrations.rs

* NODE-117, feat: rollback protocol (#54)

* NODE-117, feat: impl rollback request submission

* NODE-117, feat: impl rollback poll submission

* NODE-117, fix: insert BondedOutboundTx only for non-rollback requests

* NODE-117, chore: cleanup palet

* NODE-117, feat: update precompile

* NODE-117, chore: update doc-string

* NODE-117, test: resolve test failures

* NODE-117, fix: use correct origin

* NODE-117, test: add rollback tests

* NODE-117, fix: resolve encode errors

* NODE-117, chore: add missing docstrings

* NODE-117, fix: prevent same side voting

* NODE-117, feat: update precompile

* NODE-117, feat: bond rollback output

* NODE-117, test: update ttest

* NODE-117, fix: use correct key prefix

* chore: remove redundant

* chore: remove unused import

* fix: typo

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

---------

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* fix: add missing imports

* fix: double check storage existence

* NODE-119, unsigned psbt message update (#56)

* NODE-119, fix: update psbt output verification

* NODE-119, fix: check psbt output amount only for refunds

* NODE-119, fix: resolve wrong state check

* NODE-119, fix: check migration sequence

* NODE-119, feat: add migration request submission

* NODE-119, fix: set correct runtime error

* fix: set default code for precompiles

* deps: update dev chain spec

* fix: use vec instead of map

* fix: check system vault

* feat: add precompile function

* chore: add missing event

* fix: add function inputs

* minor fixes (#57)

* feat: add multisig ration set extrinsic

* fix: use correct duplication check

* deps: update rust docker version

* fix: change output can not always exist

* deps: use latest rust image

* [CCCP-403] Implement `vault_key_presubmission` (#58)

* CCCP-403, feature: storage `PresubmittedPubKeys`

* CCCP-403, feature: implement vault key pre-submission

* CCCP-403, feature: Immediately generate vault address when all executives pre-submitted keys

* CCCP-403, fix: resolve comments

* chore: update ensure (#59)

* chore: update ensure

* chore: update comment

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

---------

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* fix: socket queue minor update (#60)

* fix: use psbt txid

* fix: remove useless state checks

* deps: increase runtime version (349)

* fix: use correct output len check & add output to check

* fix: use ensure_root (#61)

* fix: simply use txid instead of psbt bytes (#62)

* chore: add missing pool events (#63)

* NODE-120, test code update (#64)

* NODE-120, fix: update ethers

* NODE-120, fix: update ethers (2)

* NODE-120, fix: registration pool tests

* NODE-120, fix: socket queue tests

* NODE-120, chore: rollback to dev runtime

* NODE-120, chore: update npm package

* fix: simplify context

* deps: release pre-v2.0.0

* NODE-122, feature: apply brp to testnet (#65)

* NODE-122, feature: apply brp to testnet

* NODE-122, chore: init pallet storage v1

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* chore: remove passed storage migration

* NODE-127, fix: add psbt fee verification logic (#69)

* NODE-127, fix: filter meaningless psbt

* NODE-127, chore: resolve `unexpected cfg condition value`

* NODE-127, fix: add psbt fee verification logic

* Update pallets/btc-socket-queue/src/pallet/mod.rs

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-127, fix: add missing psbt fee verification logic

* NODE-127, chore: set default max fee rate

---------

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-128, fix: add `SetExecutiveMembers` to `MigrationSequence` (#70)

* NODE-128, fix: add SetExecutiveMembers to MigrationSequence

* NODE-128, chore: add doc-strings

* NODE-130, fix: Update to unpayable extrinsics (#72)

* NODE-130, fix: replace unsigned transactions to unpayable extrinsics - registration pool

* NODE-130, fix: replace unsigned transactions to unpayable extrinsics - socket queue

* NODE-130, fix: remove unused Config type

* NODE-130, chore: add AuthorityDNE error

* NODE-126, fix: consider address check after vault generation (#68)

* NODE-126, fix: consider address check after vault generation

* NODE-126, fix: remove pubkey clear logic

* NODE-126, fix: insert default on failure

* fix: replace to `ensure_signed` (#73)

* fix: replace to ensure_signed

* test: replace test to signed tx

* Revert "fix: replace to `ensure_signed` (#73)" (#74)

This reverts commit b64dc4b.

* Revert "NODE-130, fix: Update to unpayable extrinsics (#72)" (#75)

This reverts commit 883262e.

* NODE-131, fix: add verifiers to signature (#76)

* NODE-131, fix: add pool_round to signature

* NODE-131, fix: add SigDomain

* NODE-131, fix: use concatenated bytes

* NODE-131, fix: use remove :?

* NODE-134, feat: add `submit_bump_fee_request()` (#78)

* NODE-134, feat: add submit_bump_fee_request

* NODE-134, feat: insert new SocketMessages

* NODE-134, fix: improve verification

* Update pallets/btc-socket-queue/src/pallet/impls.rs

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* Update pallets/btc-socket-queue/src/pallet/impls.rs

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

---------

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* NODE-139, fix: only permit when the migration tx broadcast (#84)

* NODE-139, fix: only permit when the migration tx broadcast

* NODE-139, fix: consider multiple migration transactions

* NODE-141, fix: include field `is_approved` into signature message (#86)

* NODE-140, fix: `btc-socket-queue` should be empty before pool migration (#85)

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-142, refactor: apply pending and approval process when setting refunds (#87)

* NODE-142, refactor: apply pending and approval process when setting refunds

* chore: remove unnecessary `return`

* NODE-142, chore: store current and present addresses both

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* NODE-144, feat: update `submit_bump_fee_request()` (#89)

* NODE-144, feat: make it compatible with rollbacks/migrations

* NODE-144, fix: use correct output check

* NODE-144, fix: use correct storage key

* NODE-144, fix: use mutate

* NODE-106, deps: update to bifrost-polkadot-v1.12.0

* NODE-106, fix: use in_code_storage_version()

* NODE-106, fix: resolve collective precompile compile error

* NODE-106, fix: resolve UnboundedBytes comparison

* NODE-106, fix: remove unused param

* NODE-106, fix: use legacy

* NODE-106, feat: update pallet_balances config

* NODE-106, feat: update pallet_identity config

* NODE-106, feat: add RuntimeTask type

* NODE-106, feat: add migrations and system callbacks

* NODE-106, feat: expose SlotDuration

* NODE-106, feat: add runtime apis

* NODE-106, fix: resolve Aura storage access

* NODE-106, feat: migrate to fungible

* NODE-106, deps: std and serde setup

* NODE-106, fix: rollback GasWeightMapping import

* NODE-106, feat: update client side

* NODE-106, fix: rollback CurrencyAdaptor

* NODE-106, deps: add Migrations

* NODE-106, feat: impl safe-mode and tx-pause

* NODE-106, feat: replace to derive_impl and v2 runtime construction

* NODE-106, chore: set CFLAGS mcpu=mvp on aarch64 arch

* NODE-106, deps: replace substrate-fixed to concrete version

* NODE-106, refactor: remove pallet::getter from custom pallets

* NODE-106, chore: possibly overflow

* NODE-106, deps: remove unused dependencies

* NODE-106, fix: remove deprecated getter

* NODE-106, deps: bump to stable2407

* NODE-106, chore: replace deprecated getters

* NODE-106, chore: Add RPC api pending_initialize_block

* NODE-106, chore: update pallet_treasury config

* NODE-106, chore: remove generic

* NODE-106, fix: remove deprecated getter

* NODE-106, fix: resolve merge conflicts

* NODE-106, deps: release v2.0.1

* NODE-106, fix: use correct balance

* NODE-106, fix: remove duplicate test code

* NODE-106, fix: remove deposit amount

* NODE-106, chore: update SafeModeWhitelistedCalls

* NODE-106, fix: remove experimental features

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>
dnjscksdn98 added a commit that referenced this pull request Aug 19, 2025
* [Testnet] Apply Bitcoin Relay Protocol (BRP) (#53)

* NODE-98, feat: bitcoin registration pool (#41)

* NODE-96, feature: initialize pallet

* NODE-96, feature: init storage

* NODE-96, feature: init extrinsics

* NODE-96, feature: impl signature verification

* NODE-96, docs: add missing doc-strings

* NODE-96, feature: attach precompile

* NODE-96, fix: resolve precompile interface

* NODE-96, fix: use correct string bound

* NODE-96, fix: use vector

* NODE-96, test: add tests

* NODE-96, chore: simple fix

* NODE-98, feat: add relay executives

* NODE-98, feat: finalize pallet

* NODE-98, feat: update precompile

* NODE-98, feat: add config set extrinsics

* NODE-98, fix: resolve imports

* NODE-98, fix: update types

* NODE-98, fix: n check

* NODE-98, test: add test

* NODE-98, chore: apply feedback

* NODE-98, refactor: use better structure

* NODE-98, refactor: use better structure (2)

* NODE-98, feat: add system vault

* NODE-98, test: fix test code

* NODE-98, chore: simplify message

* NODE-98, chore: remove unused import

* NODE-99, feature: btc socket queue (#42)

* NODE-99, chore: init pallet

* NODE-99, feat: init pallet

* NODE-99, refactor: use multi-sig primitive

* NODE-99, chore: temp

* NODE-99, feat: impl extrinsics

* NODE-99, feat: add pallet

* NODE-99, fix: support no-std

* NODE-99, fix: resolve wasm build

* NODE-99, fix: comment out build

* NODE-99, feat: set submitter

* NODE-99, fix: use correct psbt hash

* NODE-99, test: add tests

* NODE-99, feat: verify duplicate signed psbt

* NODE-99, feat: verify socket message

* NODE-99, feat: verify psbt outputs

* NODE-99, fix: signed psbt

* NODE-99, refactor: update

* NODE-99, chore: set genesis config

* NODE-99, feat: add precompile

* NODE-99, feat: add relay exec precompile

* NODE-99, refactor: use unbounded bytes

* NODE-99, refactor: move miniscript to primitive only

* NODE-99, chore: check token len

* NODE-99, chore: use amount unit as sat

* NODE-99, chore: remove impl code

* NODE-99, chore: simplify code with closure

* NODE-99, chore: impl TryFrom

* NODE-99, chore: add missing docstrings

* NODE-99, fix: replace T::Signer to T::AccountId

* NODE-99, feat: store socket messages to check duplications

* NODE-99, feat: check duplicate socket message submission

* NODE-99, test: test unsigned psbt submission

* NODE-99, test: test signed psbt submission

* NODE-99, test: test finalize request

* NODE-99, fix: resolve registration pool test errors

* NODE-99, fix: check bonded pubKeys

* NODE-99, test: system vault test

* NODE-99, feat: add set_refund

* NODE-99, chore: apply cargo-clippy

* NODE-99, feat: add pending registrations

* NODE-99, fix: rename function

* NODE-99, feat: add role checker

* NODE-99, fix: apply change suggestions

* NODE-99, feat: add BondedOutboundTx

* NODE-99, feat: add precompile function

* NODE-99, fix: allow every bitcoin network type

* NODE-99, feat: add registration_info()

* NODE-102, feature: socket queue update (#43)

* NODE-102, feat: add system vout

* NODE-102, feat: try psbt finalization

* NODE-102, feat: check if message is outbound

* NODE-102, fix: update system vault interface

* NODE-102, fix: remove system vault from function

* NODE-102, fix: use correct uint type

* NODE-102, feat: allow multiple signed psbt submissions

* NODE-102, test: fix tests

* NODE-98, feat: build address script from descriptor

* NODE-98, chore: `[u8; 33]` can convert into `PublicKeyBytes`

* NODE-98, chore: not max length. should be length

* NODE-98, fix: multisig `m` could be 20 & bech32 max length is 90

* NODE-98, refactor:

* NODE-98, chore: remove unused import

* NODE-98, fix: typo

* NODE-98, refactor: remove redundant

* NODE-98, chore: unnecessary path prefix

* Update precompiles/btc-socket-queue/src/lib.rs

* NODE-98, chore: resolve comment

* NODE-98, fix: swap txid endian format

* NODE-98, test: update test code

* NODE-98, chore: update npm packages

* NODE-98, test: use correct socket message

* NODE-98, feat: store descriptor

* NODE-98, test: check descriptor existance

* NODE-98, feat: viewable descriptor

* NODE-98, refactor: use same struct

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* deploy: init testbed config

* deps: update dev chain spec

* fix: use correct context and update precompile

* fix: use single event

* test: update test

* feat: update precompile

* deps: increase runtime version

* fix: rename extrinsic

* deps: increase runtime version

* NODE-108, feat: socket queue update(2) (#48)

* NODE-108, fix: use txid as storage key

* NODE-108, feat: update precompile

* NODE-108, test: update test code

* NODE-109, feat: registration pool update (#49)

* NODE-109, feat: add clear_vault()

* NODE-109, fix: remove duplicate genesis config

* NODE-109, test: update test

* NODE-109, fix: consider system vault clear

* NODE-109, test: update test

* deps: increase runtime version

* NODE-110, fix: use desc address (#50)

* deps: increase runtime version (335)

* fix: resolve pallet issue

* NODE-114, fix: use dynamic multiSig fields & allow duplicate refund addresses (#51)

* NODE-114, fix: use dynamic n and ratio

* NODE-114, test: update tests

* NODE-114, chore: add migration

* NODE-114, fix: allow duplicate refund addresses

* NODE-114, test: update tests

* NODE-114, fix: remove unused weights

* fix: resolve import error

* deps: reset testbed

* fix: (review) move event recording

* [CCCP-385] registration-pool migration process (#55)

* CCCP-385, feature: registration pool roundup process

* CCCP-385, chore: move migration sequence enum to primitives

* CCCP-385, feature: add pool_round argument for registration pool's evm interface

* CCCP-385, chore: add default state

* CCCP-385, chore: remove `DefaultPoolRound`

* CCCP-385, fix: use correct access control

* CCCP-385, chore: set storageVersion to 1, remove migrations.rs

* NODE-117, feat: rollback protocol (#54)

* NODE-117, feat: impl rollback request submission

* NODE-117, feat: impl rollback poll submission

* NODE-117, fix: insert BondedOutboundTx only for non-rollback requests

* NODE-117, chore: cleanup palet

* NODE-117, feat: update precompile

* NODE-117, chore: update doc-string

* NODE-117, test: resolve test failures

* NODE-117, fix: use correct origin

* NODE-117, test: add rollback tests

* NODE-117, fix: resolve encode errors

* NODE-117, chore: add missing docstrings

* NODE-117, fix: prevent same side voting

* NODE-117, feat: update precompile

* NODE-117, feat: bond rollback output

* NODE-117, test: update ttest

* NODE-117, fix: use correct key prefix

* chore: remove redundant

* chore: remove unused import

* fix: typo

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

---------

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* fix: add missing imports

* fix: double check storage existence

* NODE-119, unsigned psbt message update (#56)

* NODE-119, fix: update psbt output verification

* NODE-119, fix: check psbt output amount only for refunds

* NODE-119, fix: resolve wrong state check

* NODE-119, fix: check migration sequence

* NODE-119, feat: add migration request submission

* NODE-119, fix: set correct runtime error

* fix: set default code for precompiles

* deps: update dev chain spec

* fix: use vec instead of map

* fix: check system vault

* feat: add precompile function

* chore: add missing event

* fix: add function inputs

* minor fixes (#57)

* feat: add multisig ration set extrinsic

* fix: use correct duplication check

* deps: update rust docker version

* fix: change output can not always exist

* deps: use latest rust image

* [CCCP-403] Implement `vault_key_presubmission` (#58)

* CCCP-403, feature: storage `PresubmittedPubKeys`

* CCCP-403, feature: implement vault key pre-submission

* CCCP-403, feature: Immediately generate vault address when all executives pre-submitted keys

* CCCP-403, fix: resolve comments

* chore: update ensure (#59)

* chore: update ensure

* chore: update comment

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

---------

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* fix: socket queue minor update (#60)

* fix: use psbt txid

* fix: remove useless state checks

* deps: increase runtime version (349)

* fix: use correct output len check & add output to check

* fix: use ensure_root (#61)

* fix: simply use txid instead of psbt bytes (#62)

* chore: add missing pool events (#63)

* NODE-120, test code update (#64)

* NODE-120, fix: update ethers

* NODE-120, fix: update ethers (2)

* NODE-120, fix: registration pool tests

* NODE-120, fix: socket queue tests

* NODE-120, chore: rollback to dev runtime

* NODE-120, chore: update npm package

* fix: simplify context

* deps: release pre-v2.0.0

* NODE-122, feature: apply brp to testnet (#65)

* NODE-122, feature: apply brp to testnet

* NODE-122, chore: init pallet storage v1

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* chore: remove passed storage migration

* NODE-127, fix: add psbt fee verification logic (#69)

* NODE-127, fix: filter meaningless psbt

* NODE-127, chore: resolve `unexpected cfg condition value`

* NODE-127, fix: add psbt fee verification logic

* Update pallets/btc-socket-queue/src/pallet/mod.rs

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-127, fix: add missing psbt fee verification logic

* NODE-127, chore: set default max fee rate

---------

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-128, fix: add `SetExecutiveMembers` to `MigrationSequence` (#70)

* NODE-128, fix: add SetExecutiveMembers to MigrationSequence

* NODE-128, chore: add doc-strings

* NODE-130, fix: Update to unpayable extrinsics (#72)

* NODE-130, fix: replace unsigned transactions to unpayable extrinsics - registration pool

* NODE-130, fix: replace unsigned transactions to unpayable extrinsics - socket queue

* NODE-130, fix: remove unused Config type

* NODE-130, chore: add AuthorityDNE error

* NODE-126, fix: consider address check after vault generation (#68)

* NODE-126, fix: consider address check after vault generation

* NODE-126, fix: remove pubkey clear logic

* NODE-126, fix: insert default on failure

* fix: replace to `ensure_signed` (#73)

* fix: replace to ensure_signed

* test: replace test to signed tx

* Revert "fix: replace to `ensure_signed` (#73)" (#74)

This reverts commit b64dc4b.

* Revert "NODE-130, fix: Update to unpayable extrinsics (#72)" (#75)

This reverts commit 883262e.

* NODE-131, fix: add verifiers to signature (#76)

* NODE-131, fix: add pool_round to signature

* NODE-131, fix: add SigDomain

* NODE-131, fix: use concatenated bytes

* NODE-131, fix: use remove :?

* NODE-134, feat: add `submit_bump_fee_request()` (#78)

* NODE-134, feat: add submit_bump_fee_request

* NODE-134, feat: insert new SocketMessages

* NODE-134, fix: improve verification

* Update pallets/btc-socket-queue/src/pallet/impls.rs

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* Update pallets/btc-socket-queue/src/pallet/impls.rs

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

---------

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* NODE-139, fix: only permit when the migration tx broadcast (#84)

* NODE-139, fix: only permit when the migration tx broadcast

* NODE-139, fix: consider multiple migration transactions

* NODE-141, fix: include field `is_approved` into signature message (#86)

* NODE-140, fix: `btc-socket-queue` should be empty before pool migration (#85)

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-142, refactor: apply pending and approval process when setting refunds (#87)

* NODE-142, refactor: apply pending and approval process when setting refunds

* chore: remove unnecessary `return`

* NODE-142, chore: store current and present addresses both

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* NODE-144, feat: update `submit_bump_fee_request()` (#89)

* NODE-144, feat: make it compatible with rollbacks/migrations

* NODE-144, fix: use correct output check

* NODE-144, fix: use correct storage key

* NODE-144, fix: use mutate

* NODE-106, deps: update to bifrost-polkadot-v1.12.0

* NODE-106, fix: use in_code_storage_version()

* NODE-106, fix: resolve collective precompile compile error

* NODE-106, fix: resolve UnboundedBytes comparison

* NODE-106, fix: remove unused param

* NODE-106, fix: use legacy

* NODE-106, feat: update pallet_balances config

* NODE-106, feat: update pallet_identity config

* NODE-106, feat: add RuntimeTask type

* NODE-106, feat: add migrations and system callbacks

* NODE-106, feat: expose SlotDuration

* NODE-106, feat: add runtime apis

* NODE-106, fix: resolve Aura storage access

* NODE-106, feat: migrate to fungible

* NODE-106, deps: std and serde setup

* NODE-106, fix: rollback GasWeightMapping import

* NODE-106, feat: update client side

* NODE-106, fix: rollback CurrencyAdaptor

* NODE-106, deps: add Migrations

* NODE-106, feat: impl safe-mode and tx-pause

* NODE-106, feat: replace to derive_impl and v2 runtime construction

* NODE-106, chore: set CFLAGS mcpu=mvp on aarch64 arch

* NODE-106, deps: replace substrate-fixed to concrete version

* NODE-106, refactor: remove pallet::getter from custom pallets

* NODE-106, chore: possibly overflow

* NODE-106, deps: remove unused dependencies

* NODE-106, fix: remove deprecated getter

* NODE-106, deps: bump to stable2407

* NODE-106, chore: replace deprecated getters

* NODE-106, chore: Add RPC api pending_initialize_block

* NODE-106, chore: update pallet_treasury config

* NODE-106, chore: remove generic

* NODE-106, fix: remove deprecated getter

* NODE-106, fix: resolve merge conflicts

* NODE-106, deps: release v2.0.1

* NODE-106, fix: use correct balance

* NODE-106, fix: remove duplicate test code

* NODE-106, fix: remove deposit amount

* NODE-106, chore: update SafeModeWhitelistedCalls

* NODE-106, fix: remove experimental features

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>
dnjscksdn98 added a commit that referenced this pull request Sep 10, 2025
* [Testnet] Apply Bitcoin Relay Protocol (BRP) (#53)

* NODE-98, feat: bitcoin registration pool (#41)

* NODE-96, feature: initialize pallet

* NODE-96, feature: init storage

* NODE-96, feature: init extrinsics

* NODE-96, feature: impl signature verification

* NODE-96, docs: add missing doc-strings

* NODE-96, feature: attach precompile

* NODE-96, fix: resolve precompile interface

* NODE-96, fix: use correct string bound

* NODE-96, fix: use vector

* NODE-96, test: add tests

* NODE-96, chore: simple fix

* NODE-98, feat: add relay executives

* NODE-98, feat: finalize pallet

* NODE-98, feat: update precompile

* NODE-98, feat: add config set extrinsics

* NODE-98, fix: resolve imports

* NODE-98, fix: update types

* NODE-98, fix: n check

* NODE-98, test: add test

* NODE-98, chore: apply feedback

* NODE-98, refactor: use better structure

* NODE-98, refactor: use better structure (2)

* NODE-98, feat: add system vault

* NODE-98, test: fix test code

* NODE-98, chore: simplify message

* NODE-98, chore: remove unused import

* NODE-99, feature: btc socket queue (#42)

* NODE-99, chore: init pallet

* NODE-99, feat: init pallet

* NODE-99, refactor: use multi-sig primitive

* NODE-99, chore: temp

* NODE-99, feat: impl extrinsics

* NODE-99, feat: add pallet

* NODE-99, fix: support no-std

* NODE-99, fix: resolve wasm build

* NODE-99, fix: comment out build

* NODE-99, feat: set submitter

* NODE-99, fix: use correct psbt hash

* NODE-99, test: add tests

* NODE-99, feat: verify duplicate signed psbt

* NODE-99, feat: verify socket message

* NODE-99, feat: verify psbt outputs

* NODE-99, fix: signed psbt

* NODE-99, refactor: update

* NODE-99, chore: set genesis config

* NODE-99, feat: add precompile

* NODE-99, feat: add relay exec precompile

* NODE-99, refactor: use unbounded bytes

* NODE-99, refactor: move miniscript to primitive only

* NODE-99, chore: check token len

* NODE-99, chore: use amount unit as sat

* NODE-99, chore: remove impl code

* NODE-99, chore: simplify code with closure

* NODE-99, chore: impl TryFrom

* NODE-99, chore: add missing docstrings

* NODE-99, fix: replace T::Signer to T::AccountId

* NODE-99, feat: store socket messages to check duplications

* NODE-99, feat: check duplicate socket message submission

* NODE-99, test: test unsigned psbt submission

* NODE-99, test: test signed psbt submission

* NODE-99, test: test finalize request

* NODE-99, fix: resolve registration pool test errors

* NODE-99, fix: check bonded pubKeys

* NODE-99, test: system vault test

* NODE-99, feat: add set_refund

* NODE-99, chore: apply cargo-clippy

* NODE-99, feat: add pending registrations

* NODE-99, fix: rename function

* NODE-99, feat: add role checker

* NODE-99, fix: apply change suggestions

* NODE-99, feat: add BondedOutboundTx

* NODE-99, feat: add precompile function

* NODE-99, fix: allow every bitcoin network type

* NODE-99, feat: add registration_info()

* NODE-102, feature: socket queue update (#43)

* NODE-102, feat: add system vout

* NODE-102, feat: try psbt finalization

* NODE-102, feat: check if message is outbound

* NODE-102, fix: update system vault interface

* NODE-102, fix: remove system vault from function

* NODE-102, fix: use correct uint type

* NODE-102, feat: allow multiple signed psbt submissions

* NODE-102, test: fix tests

* NODE-98, feat: build address script from descriptor

* NODE-98, chore: `[u8; 33]` can convert into `PublicKeyBytes`

* NODE-98, chore: not max length. should be length

* NODE-98, fix: multisig `m` could be 20 & bech32 max length is 90

* NODE-98, refactor:

* NODE-98, chore: remove unused import

* NODE-98, fix: typo

* NODE-98, refactor: remove redundant

* NODE-98, chore: unnecessary path prefix

* Update precompiles/btc-socket-queue/src/lib.rs

* NODE-98, chore: resolve comment

* NODE-98, fix: swap txid endian format

* NODE-98, test: update test code

* NODE-98, chore: update npm packages

* NODE-98, test: use correct socket message

* NODE-98, feat: store descriptor

* NODE-98, test: check descriptor existance

* NODE-98, feat: viewable descriptor

* NODE-98, refactor: use same struct

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* deploy: init testbed config

* deps: update dev chain spec

* fix: use correct context and update precompile

* fix: use single event

* test: update test

* feat: update precompile

* deps: increase runtime version

* fix: rename extrinsic

* deps: increase runtime version

* NODE-108, feat: socket queue update(2) (#48)

* NODE-108, fix: use txid as storage key

* NODE-108, feat: update precompile

* NODE-108, test: update test code

* NODE-109, feat: registration pool update (#49)

* NODE-109, feat: add clear_vault()

* NODE-109, fix: remove duplicate genesis config

* NODE-109, test: update test

* NODE-109, fix: consider system vault clear

* NODE-109, test: update test

* deps: increase runtime version

* NODE-110, fix: use desc address (#50)

* deps: increase runtime version (335)

* fix: resolve pallet issue

* NODE-114, fix: use dynamic multiSig fields & allow duplicate refund addresses (#51)

* NODE-114, fix: use dynamic n and ratio

* NODE-114, test: update tests

* NODE-114, chore: add migration

* NODE-114, fix: allow duplicate refund addresses

* NODE-114, test: update tests

* NODE-114, fix: remove unused weights

* fix: resolve import error

* deps: reset testbed

* fix: (review) move event recording

* [CCCP-385] registration-pool migration process (#55)

* CCCP-385, feature: registration pool roundup process

* CCCP-385, chore: move migration sequence enum to primitives

* CCCP-385, feature: add pool_round argument for registration pool's evm interface

* CCCP-385, chore: add default state

* CCCP-385, chore: remove `DefaultPoolRound`

* CCCP-385, fix: use correct access control

* CCCP-385, chore: set storageVersion to 1, remove migrations.rs

* NODE-117, feat: rollback protocol (#54)

* NODE-117, feat: impl rollback request submission

* NODE-117, feat: impl rollback poll submission

* NODE-117, fix: insert BondedOutboundTx only for non-rollback requests

* NODE-117, chore: cleanup palet

* NODE-117, feat: update precompile

* NODE-117, chore: update doc-string

* NODE-117, test: resolve test failures

* NODE-117, fix: use correct origin

* NODE-117, test: add rollback tests

* NODE-117, fix: resolve encode errors

* NODE-117, chore: add missing docstrings

* NODE-117, fix: prevent same side voting

* NODE-117, feat: update precompile

* NODE-117, feat: bond rollback output

* NODE-117, test: update ttest

* NODE-117, fix: use correct key prefix

* chore: remove redundant

* chore: remove unused import

* fix: typo

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

---------

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* fix: add missing imports

* fix: double check storage existence

* NODE-119, unsigned psbt message update (#56)

* NODE-119, fix: update psbt output verification

* NODE-119, fix: check psbt output amount only for refunds

* NODE-119, fix: resolve wrong state check

* NODE-119, fix: check migration sequence

* NODE-119, feat: add migration request submission

* NODE-119, fix: set correct runtime error

* fix: set default code for precompiles

* deps: update dev chain spec

* fix: use vec instead of map

* fix: check system vault

* feat: add precompile function

* chore: add missing event

* fix: add function inputs

* minor fixes (#57)

* feat: add multisig ration set extrinsic

* fix: use correct duplication check

* deps: update rust docker version

* fix: change output can not always exist

* deps: use latest rust image

* [CCCP-403] Implement `vault_key_presubmission` (#58)

* CCCP-403, feature: storage `PresubmittedPubKeys`

* CCCP-403, feature: implement vault key pre-submission

* CCCP-403, feature: Immediately generate vault address when all executives pre-submitted keys

* CCCP-403, fix: resolve comments

* chore: update ensure (#59)

* chore: update ensure

* chore: update comment

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

---------

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* fix: socket queue minor update (#60)

* fix: use psbt txid

* fix: remove useless state checks

* deps: increase runtime version (349)

* fix: use correct output len check & add output to check

* fix: use ensure_root (#61)

* fix: simply use txid instead of psbt bytes (#62)

* chore: add missing pool events (#63)

* NODE-120, test code update (#64)

* NODE-120, fix: update ethers

* NODE-120, fix: update ethers (2)

* NODE-120, fix: registration pool tests

* NODE-120, fix: socket queue tests

* NODE-120, chore: rollback to dev runtime

* NODE-120, chore: update npm package

* fix: simplify context

* deps: release pre-v2.0.0

* NODE-122, feature: apply brp to testnet (#65)

* NODE-122, feature: apply brp to testnet

* NODE-122, chore: init pallet storage v1

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* chore: remove passed storage migration

* NODE-127, fix: add psbt fee verification logic (#69)

* NODE-127, fix: filter meaningless psbt

* NODE-127, chore: resolve `unexpected cfg condition value`

* NODE-127, fix: add psbt fee verification logic

* Update pallets/btc-socket-queue/src/pallet/mod.rs

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-127, fix: add missing psbt fee verification logic

* NODE-127, chore: set default max fee rate

---------

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-128, fix: add `SetExecutiveMembers` to `MigrationSequence` (#70)

* NODE-128, fix: add SetExecutiveMembers to MigrationSequence

* NODE-128, chore: add doc-strings

* NODE-130, fix: Update to unpayable extrinsics (#72)

* NODE-130, fix: replace unsigned transactions to unpayable extrinsics - registration pool

* NODE-130, fix: replace unsigned transactions to unpayable extrinsics - socket queue

* NODE-130, fix: remove unused Config type

* NODE-130, chore: add AuthorityDNE error

* NODE-126, fix: consider address check after vault generation (#68)

* NODE-126, fix: consider address check after vault generation

* NODE-126, fix: remove pubkey clear logic

* NODE-126, fix: insert default on failure

* fix: replace to `ensure_signed` (#73)

* fix: replace to ensure_signed

* test: replace test to signed tx

* Revert "fix: replace to `ensure_signed` (#73)" (#74)

This reverts commit b64dc4b.

* Revert "NODE-130, fix: Update to unpayable extrinsics (#72)" (#75)

This reverts commit 883262e.

* NODE-131, fix: add verifiers to signature (#76)

* NODE-131, fix: add pool_round to signature

* NODE-131, fix: add SigDomain

* NODE-131, fix: use concatenated bytes

* NODE-131, fix: use remove :?

* NODE-134, feat: add `submit_bump_fee_request()` (#78)

* NODE-134, feat: add submit_bump_fee_request

* NODE-134, feat: insert new SocketMessages

* NODE-134, fix: improve verification

* Update pallets/btc-socket-queue/src/pallet/impls.rs

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* Update pallets/btc-socket-queue/src/pallet/impls.rs

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

---------

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* NODE-139, fix: only permit when the migration tx broadcast (#84)

* NODE-139, fix: only permit when the migration tx broadcast

* NODE-139, fix: consider multiple migration transactions

* NODE-141, fix: include field `is_approved` into signature message (#86)

* NODE-140, fix: `btc-socket-queue` should be empty before pool migration (#85)

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-142, refactor: apply pending and approval process when setting refunds (#87)

* NODE-142, refactor: apply pending and approval process when setting refunds

* chore: remove unnecessary `return`

* NODE-142, chore: store current and present addresses both

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* NODE-144, feat: update `submit_bump_fee_request()` (#89)

* NODE-144, feat: make it compatible with rollbacks/migrations

* NODE-144, fix: use correct output check

* NODE-144, fix: use correct storage key

* NODE-144, fix: use mutate

* NODE-106, deps: update to bifrost-polkadot-v1.12.0

* NODE-106, fix: use in_code_storage_version()

* NODE-106, fix: resolve collective precompile compile error

* NODE-106, fix: resolve UnboundedBytes comparison

* NODE-106, fix: remove unused param

* NODE-106, fix: use legacy

* NODE-106, feat: update pallet_balances config

* NODE-106, feat: update pallet_identity config

* NODE-106, feat: add RuntimeTask type

* NODE-106, feat: add migrations and system callbacks

* NODE-106, feat: expose SlotDuration

* NODE-106, feat: add runtime apis

* NODE-106, fix: resolve Aura storage access

* NODE-106, feat: migrate to fungible

* NODE-106, deps: std and serde setup

* NODE-106, fix: rollback GasWeightMapping import

* NODE-106, feat: update client side

* NODE-106, fix: rollback CurrencyAdaptor

* NODE-106, deps: add Migrations

* NODE-106, feat: impl safe-mode and tx-pause

* NODE-106, feat: replace to derive_impl and v2 runtime construction

* NODE-106, chore: set CFLAGS mcpu=mvp on aarch64 arch

* NODE-106, deps: replace substrate-fixed to concrete version

* NODE-106, refactor: remove pallet::getter from custom pallets

* NODE-106, chore: possibly overflow

* NODE-106, deps: remove unused dependencies

* NODE-106, fix: remove deprecated getter

* NODE-106, deps: bump to stable2407

* NODE-106, chore: replace deprecated getters

* NODE-106, chore: Add RPC api pending_initialize_block

* NODE-106, chore: update pallet_treasury config

* NODE-106, chore: remove generic

* NODE-106, fix: remove deprecated getter

* NODE-106, fix: resolve merge conflicts

* NODE-106, deps: release v2.0.1

* NODE-106, fix: use correct balance

* NODE-106, fix: remove duplicate test code

* NODE-106, fix: remove deposit amount

* NODE-106, chore: update SafeModeWhitelistedCalls

* NODE-106, fix: remove experimental features

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>
dnjscksdn98 added a commit that referenced this pull request Sep 10, 2025
* [Testnet] Apply Bitcoin Relay Protocol (BRP) (#53)

* NODE-98, feat: bitcoin registration pool (#41)

* NODE-96, feature: initialize pallet

* NODE-96, feature: init storage

* NODE-96, feature: init extrinsics

* NODE-96, feature: impl signature verification

* NODE-96, docs: add missing doc-strings

* NODE-96, feature: attach precompile

* NODE-96, fix: resolve precompile interface

* NODE-96, fix: use correct string bound

* NODE-96, fix: use vector

* NODE-96, test: add tests

* NODE-96, chore: simple fix

* NODE-98, feat: add relay executives

* NODE-98, feat: finalize pallet

* NODE-98, feat: update precompile

* NODE-98, feat: add config set extrinsics

* NODE-98, fix: resolve imports

* NODE-98, fix: update types

* NODE-98, fix: n check

* NODE-98, test: add test

* NODE-98, chore: apply feedback

* NODE-98, refactor: use better structure

* NODE-98, refactor: use better structure (2)

* NODE-98, feat: add system vault

* NODE-98, test: fix test code

* NODE-98, chore: simplify message

* NODE-98, chore: remove unused import

* NODE-99, feature: btc socket queue (#42)

* NODE-99, chore: init pallet

* NODE-99, feat: init pallet

* NODE-99, refactor: use multi-sig primitive

* NODE-99, chore: temp

* NODE-99, feat: impl extrinsics

* NODE-99, feat: add pallet

* NODE-99, fix: support no-std

* NODE-99, fix: resolve wasm build

* NODE-99, fix: comment out build

* NODE-99, feat: set submitter

* NODE-99, fix: use correct psbt hash

* NODE-99, test: add tests

* NODE-99, feat: verify duplicate signed psbt

* NODE-99, feat: verify socket message

* NODE-99, feat: verify psbt outputs

* NODE-99, fix: signed psbt

* NODE-99, refactor: update

* NODE-99, chore: set genesis config

* NODE-99, feat: add precompile

* NODE-99, feat: add relay exec precompile

* NODE-99, refactor: use unbounded bytes

* NODE-99, refactor: move miniscript to primitive only

* NODE-99, chore: check token len

* NODE-99, chore: use amount unit as sat

* NODE-99, chore: remove impl code

* NODE-99, chore: simplify code with closure

* NODE-99, chore: impl TryFrom

* NODE-99, chore: add missing docstrings

* NODE-99, fix: replace T::Signer to T::AccountId

* NODE-99, feat: store socket messages to check duplications

* NODE-99, feat: check duplicate socket message submission

* NODE-99, test: test unsigned psbt submission

* NODE-99, test: test signed psbt submission

* NODE-99, test: test finalize request

* NODE-99, fix: resolve registration pool test errors

* NODE-99, fix: check bonded pubKeys

* NODE-99, test: system vault test

* NODE-99, feat: add set_refund

* NODE-99, chore: apply cargo-clippy

* NODE-99, feat: add pending registrations

* NODE-99, fix: rename function

* NODE-99, feat: add role checker

* NODE-99, fix: apply change suggestions

* NODE-99, feat: add BondedOutboundTx

* NODE-99, feat: add precompile function

* NODE-99, fix: allow every bitcoin network type

* NODE-99, feat: add registration_info()

* NODE-102, feature: socket queue update (#43)

* NODE-102, feat: add system vout

* NODE-102, feat: try psbt finalization

* NODE-102, feat: check if message is outbound

* NODE-102, fix: update system vault interface

* NODE-102, fix: remove system vault from function

* NODE-102, fix: use correct uint type

* NODE-102, feat: allow multiple signed psbt submissions

* NODE-102, test: fix tests

* NODE-98, feat: build address script from descriptor

* NODE-98, chore: `[u8; 33]` can convert into `PublicKeyBytes`

* NODE-98, chore: not max length. should be length

* NODE-98, fix: multisig `m` could be 20 & bech32 max length is 90

* NODE-98, refactor:

* NODE-98, chore: remove unused import

* NODE-98, fix: typo

* NODE-98, refactor: remove redundant

* NODE-98, chore: unnecessary path prefix

* Update precompiles/btc-socket-queue/src/lib.rs

* NODE-98, chore: resolve comment

* NODE-98, fix: swap txid endian format

* NODE-98, test: update test code

* NODE-98, chore: update npm packages

* NODE-98, test: use correct socket message

* NODE-98, feat: store descriptor

* NODE-98, test: check descriptor existance

* NODE-98, feat: viewable descriptor

* NODE-98, refactor: use same struct

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* deploy: init testbed config

* deps: update dev chain spec

* fix: use correct context and update precompile

* fix: use single event

* test: update test

* feat: update precompile

* deps: increase runtime version

* fix: rename extrinsic

* deps: increase runtime version

* NODE-108, feat: socket queue update(2) (#48)

* NODE-108, fix: use txid as storage key

* NODE-108, feat: update precompile

* NODE-108, test: update test code

* NODE-109, feat: registration pool update (#49)

* NODE-109, feat: add clear_vault()

* NODE-109, fix: remove duplicate genesis config

* NODE-109, test: update test

* NODE-109, fix: consider system vault clear

* NODE-109, test: update test

* deps: increase runtime version

* NODE-110, fix: use desc address (#50)

* deps: increase runtime version (335)

* fix: resolve pallet issue

* NODE-114, fix: use dynamic multiSig fields & allow duplicate refund addresses (#51)

* NODE-114, fix: use dynamic n and ratio

* NODE-114, test: update tests

* NODE-114, chore: add migration

* NODE-114, fix: allow duplicate refund addresses

* NODE-114, test: update tests

* NODE-114, fix: remove unused weights

* fix: resolve import error

* deps: reset testbed

* fix: (review) move event recording

* [CCCP-385] registration-pool migration process (#55)

* CCCP-385, feature: registration pool roundup process

* CCCP-385, chore: move migration sequence enum to primitives

* CCCP-385, feature: add pool_round argument for registration pool's evm interface

* CCCP-385, chore: add default state

* CCCP-385, chore: remove `DefaultPoolRound`

* CCCP-385, fix: use correct access control

* CCCP-385, chore: set storageVersion to 1, remove migrations.rs

* NODE-117, feat: rollback protocol (#54)

* NODE-117, feat: impl rollback request submission

* NODE-117, feat: impl rollback poll submission

* NODE-117, fix: insert BondedOutboundTx only for non-rollback requests

* NODE-117, chore: cleanup palet

* NODE-117, feat: update precompile

* NODE-117, chore: update doc-string

* NODE-117, test: resolve test failures

* NODE-117, fix: use correct origin

* NODE-117, test: add rollback tests

* NODE-117, fix: resolve encode errors

* NODE-117, chore: add missing docstrings

* NODE-117, fix: prevent same side voting

* NODE-117, feat: update precompile

* NODE-117, feat: bond rollback output

* NODE-117, test: update ttest

* NODE-117, fix: use correct key prefix

* chore: remove redundant

* chore: remove unused import

* fix: typo

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

---------

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* fix: add missing imports

* fix: double check storage existence

* NODE-119, unsigned psbt message update (#56)

* NODE-119, fix: update psbt output verification

* NODE-119, fix: check psbt output amount only for refunds

* NODE-119, fix: resolve wrong state check

* NODE-119, fix: check migration sequence

* NODE-119, feat: add migration request submission

* NODE-119, fix: set correct runtime error

* fix: set default code for precompiles

* deps: update dev chain spec

* fix: use vec instead of map

* fix: check system vault

* feat: add precompile function

* chore: add missing event

* fix: add function inputs

* minor fixes (#57)

* feat: add multisig ration set extrinsic

* fix: use correct duplication check

* deps: update rust docker version

* fix: change output can not always exist

* deps: use latest rust image

* [CCCP-403] Implement `vault_key_presubmission` (#58)

* CCCP-403, feature: storage `PresubmittedPubKeys`

* CCCP-403, feature: implement vault key pre-submission

* CCCP-403, feature: Immediately generate vault address when all executives pre-submitted keys

* CCCP-403, fix: resolve comments

* chore: update ensure (#59)

* chore: update ensure

* chore: update comment

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

---------

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* fix: socket queue minor update (#60)

* fix: use psbt txid

* fix: remove useless state checks

* deps: increase runtime version (349)

* fix: use correct output len check & add output to check

* fix: use ensure_root (#61)

* fix: simply use txid instead of psbt bytes (#62)

* chore: add missing pool events (#63)

* NODE-120, test code update (#64)

* NODE-120, fix: update ethers

* NODE-120, fix: update ethers (2)

* NODE-120, fix: registration pool tests

* NODE-120, fix: socket queue tests

* NODE-120, chore: rollback to dev runtime

* NODE-120, chore: update npm package

* fix: simplify context

* deps: release pre-v2.0.0

* NODE-122, feature: apply brp to testnet (#65)

* NODE-122, feature: apply brp to testnet

* NODE-122, chore: init pallet storage v1

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* chore: remove passed storage migration

* NODE-127, fix: add psbt fee verification logic (#69)

* NODE-127, fix: filter meaningless psbt

* NODE-127, chore: resolve `unexpected cfg condition value`

* NODE-127, fix: add psbt fee verification logic

* Update pallets/btc-socket-queue/src/pallet/mod.rs

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-127, fix: add missing psbt fee verification logic

* NODE-127, chore: set default max fee rate

---------

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-128, fix: add `SetExecutiveMembers` to `MigrationSequence` (#70)

* NODE-128, fix: add SetExecutiveMembers to MigrationSequence

* NODE-128, chore: add doc-strings

* NODE-130, fix: Update to unpayable extrinsics (#72)

* NODE-130, fix: replace unsigned transactions to unpayable extrinsics - registration pool

* NODE-130, fix: replace unsigned transactions to unpayable extrinsics - socket queue

* NODE-130, fix: remove unused Config type

* NODE-130, chore: add AuthorityDNE error

* NODE-126, fix: consider address check after vault generation (#68)

* NODE-126, fix: consider address check after vault generation

* NODE-126, fix: remove pubkey clear logic

* NODE-126, fix: insert default on failure

* fix: replace to `ensure_signed` (#73)

* fix: replace to ensure_signed

* test: replace test to signed tx

* Revert "fix: replace to `ensure_signed` (#73)" (#74)

This reverts commit b64dc4b.

* Revert "NODE-130, fix: Update to unpayable extrinsics (#72)" (#75)

This reverts commit 883262e.

* NODE-131, fix: add verifiers to signature (#76)

* NODE-131, fix: add pool_round to signature

* NODE-131, fix: add SigDomain

* NODE-131, fix: use concatenated bytes

* NODE-131, fix: use remove :?

* NODE-134, feat: add `submit_bump_fee_request()` (#78)

* NODE-134, feat: add submit_bump_fee_request

* NODE-134, feat: insert new SocketMessages

* NODE-134, fix: improve verification

* Update pallets/btc-socket-queue/src/pallet/impls.rs

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* Update pallets/btc-socket-queue/src/pallet/impls.rs

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

---------

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* NODE-139, fix: only permit when the migration tx broadcast (#84)

* NODE-139, fix: only permit when the migration tx broadcast

* NODE-139, fix: consider multiple migration transactions

* NODE-141, fix: include field `is_approved` into signature message (#86)

* NODE-140, fix: `btc-socket-queue` should be empty before pool migration (#85)

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-142, refactor: apply pending and approval process when setting refunds (#87)

* NODE-142, refactor: apply pending and approval process when setting refunds

* chore: remove unnecessary `return`

* NODE-142, chore: store current and present addresses both

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* NODE-144, feat: update `submit_bump_fee_request()` (#89)

* NODE-144, feat: make it compatible with rollbacks/migrations

* NODE-144, fix: use correct output check

* NODE-144, fix: use correct storage key

* NODE-144, fix: use mutate

* NODE-106, deps: update to bifrost-polkadot-v1.12.0

* NODE-106, fix: use in_code_storage_version()

* NODE-106, fix: resolve collective precompile compile error

* NODE-106, fix: resolve UnboundedBytes comparison

* NODE-106, fix: remove unused param

* NODE-106, fix: use legacy

* NODE-106, feat: update pallet_balances config

* NODE-106, feat: update pallet_identity config

* NODE-106, feat: add RuntimeTask type

* NODE-106, feat: add migrations and system callbacks

* NODE-106, feat: expose SlotDuration

* NODE-106, feat: add runtime apis

* NODE-106, fix: resolve Aura storage access

* NODE-106, feat: migrate to fungible

* NODE-106, deps: std and serde setup

* NODE-106, fix: rollback GasWeightMapping import

* NODE-106, feat: update client side

* NODE-106, fix: rollback CurrencyAdaptor

* NODE-106, deps: add Migrations

* NODE-106, feat: impl safe-mode and tx-pause

* NODE-106, feat: replace to derive_impl and v2 runtime construction

* NODE-106, chore: set CFLAGS mcpu=mvp on aarch64 arch

* NODE-106, deps: replace substrate-fixed to concrete version

* NODE-106, refactor: remove pallet::getter from custom pallets

* NODE-106, chore: possibly overflow

* NODE-106, deps: remove unused dependencies

* NODE-106, fix: remove deprecated getter

* NODE-106, deps: bump to stable2407

* NODE-106, chore: replace deprecated getters

* NODE-106, chore: Add RPC api pending_initialize_block

* NODE-106, chore: update pallet_treasury config

* NODE-106, chore: remove generic

* NODE-106, fix: remove deprecated getter

* NODE-106, fix: resolve merge conflicts

* NODE-106, deps: release v2.0.1

* NODE-106, fix: use correct balance

* NODE-106, fix: remove duplicate test code

* NODE-106, fix: remove deposit amount

* NODE-106, chore: update SafeModeWhitelistedCalls

* NODE-106, fix: remove experimental features

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>
dnjscksdn98 added a commit that referenced this pull request Sep 10, 2025
* NODE-106, deps: `polkadot-sdk@stable2407` migration (#67)

* [Testnet] Apply Bitcoin Relay Protocol (BRP) (#53)

* NODE-98, feat: bitcoin registration pool (#41)

* NODE-96, feature: initialize pallet

* NODE-96, feature: init storage

* NODE-96, feature: init extrinsics

* NODE-96, feature: impl signature verification

* NODE-96, docs: add missing doc-strings

* NODE-96, feature: attach precompile

* NODE-96, fix: resolve precompile interface

* NODE-96, fix: use correct string bound

* NODE-96, fix: use vector

* NODE-96, test: add tests

* NODE-96, chore: simple fix

* NODE-98, feat: add relay executives

* NODE-98, feat: finalize pallet

* NODE-98, feat: update precompile

* NODE-98, feat: add config set extrinsics

* NODE-98, fix: resolve imports

* NODE-98, fix: update types

* NODE-98, fix: n check

* NODE-98, test: add test

* NODE-98, chore: apply feedback

* NODE-98, refactor: use better structure

* NODE-98, refactor: use better structure (2)

* NODE-98, feat: add system vault

* NODE-98, test: fix test code

* NODE-98, chore: simplify message

* NODE-98, chore: remove unused import

* NODE-99, feature: btc socket queue (#42)

* NODE-99, chore: init pallet

* NODE-99, feat: init pallet

* NODE-99, refactor: use multi-sig primitive

* NODE-99, chore: temp

* NODE-99, feat: impl extrinsics

* NODE-99, feat: add pallet

* NODE-99, fix: support no-std

* NODE-99, fix: resolve wasm build

* NODE-99, fix: comment out build

* NODE-99, feat: set submitter

* NODE-99, fix: use correct psbt hash

* NODE-99, test: add tests

* NODE-99, feat: verify duplicate signed psbt

* NODE-99, feat: verify socket message

* NODE-99, feat: verify psbt outputs

* NODE-99, fix: signed psbt

* NODE-99, refactor: update

* NODE-99, chore: set genesis config

* NODE-99, feat: add precompile

* NODE-99, feat: add relay exec precompile

* NODE-99, refactor: use unbounded bytes

* NODE-99, refactor: move miniscript to primitive only

* NODE-99, chore: check token len

* NODE-99, chore: use amount unit as sat

* NODE-99, chore: remove impl code

* NODE-99, chore: simplify code with closure

* NODE-99, chore: impl TryFrom

* NODE-99, chore: add missing docstrings

* NODE-99, fix: replace T::Signer to T::AccountId

* NODE-99, feat: store socket messages to check duplications

* NODE-99, feat: check duplicate socket message submission

* NODE-99, test: test unsigned psbt submission

* NODE-99, test: test signed psbt submission

* NODE-99, test: test finalize request

* NODE-99, fix: resolve registration pool test errors

* NODE-99, fix: check bonded pubKeys

* NODE-99, test: system vault test

* NODE-99, feat: add set_refund

* NODE-99, chore: apply cargo-clippy

* NODE-99, feat: add pending registrations

* NODE-99, fix: rename function

* NODE-99, feat: add role checker

* NODE-99, fix: apply change suggestions

* NODE-99, feat: add BondedOutboundTx

* NODE-99, feat: add precompile function

* NODE-99, fix: allow every bitcoin network type

* NODE-99, feat: add registration_info()

* NODE-102, feature: socket queue update (#43)

* NODE-102, feat: add system vout

* NODE-102, feat: try psbt finalization

* NODE-102, feat: check if message is outbound

* NODE-102, fix: update system vault interface

* NODE-102, fix: remove system vault from function

* NODE-102, fix: use correct uint type

* NODE-102, feat: allow multiple signed psbt submissions

* NODE-102, test: fix tests

* NODE-98, feat: build address script from descriptor

* NODE-98, chore: `[u8; 33]` can convert into `PublicKeyBytes`

* NODE-98, chore: not max length. should be length

* NODE-98, fix: multisig `m` could be 20 & bech32 max length is 90

* NODE-98, refactor:

* NODE-98, chore: remove unused import

* NODE-98, fix: typo

* NODE-98, refactor: remove redundant

* NODE-98, chore: unnecessary path prefix

* Update precompiles/btc-socket-queue/src/lib.rs

* NODE-98, chore: resolve comment

* NODE-98, fix: swap txid endian format

* NODE-98, test: update test code

* NODE-98, chore: update npm packages

* NODE-98, test: use correct socket message

* NODE-98, feat: store descriptor

* NODE-98, test: check descriptor existance

* NODE-98, feat: viewable descriptor

* NODE-98, refactor: use same struct

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* deploy: init testbed config

* deps: update dev chain spec

* fix: use correct context and update precompile

* fix: use single event

* test: update test

* feat: update precompile

* deps: increase runtime version

* fix: rename extrinsic

* deps: increase runtime version

* NODE-108, feat: socket queue update(2) (#48)

* NODE-108, fix: use txid as storage key

* NODE-108, feat: update precompile

* NODE-108, test: update test code

* NODE-109, feat: registration pool update (#49)

* NODE-109, feat: add clear_vault()

* NODE-109, fix: remove duplicate genesis config

* NODE-109, test: update test

* NODE-109, fix: consider system vault clear

* NODE-109, test: update test

* deps: increase runtime version

* NODE-110, fix: use desc address (#50)

* deps: increase runtime version (335)

* fix: resolve pallet issue

* NODE-114, fix: use dynamic multiSig fields & allow duplicate refund addresses (#51)

* NODE-114, fix: use dynamic n and ratio

* NODE-114, test: update tests

* NODE-114, chore: add migration

* NODE-114, fix: allow duplicate refund addresses

* NODE-114, test: update tests

* NODE-114, fix: remove unused weights

* fix: resolve import error

* deps: reset testbed

* fix: (review) move event recording

* [CCCP-385] registration-pool migration process (#55)

* CCCP-385, feature: registration pool roundup process

* CCCP-385, chore: move migration sequence enum to primitives

* CCCP-385, feature: add pool_round argument for registration pool's evm interface

* CCCP-385, chore: add default state

* CCCP-385, chore: remove `DefaultPoolRound`

* CCCP-385, fix: use correct access control

* CCCP-385, chore: set storageVersion to 1, remove migrations.rs

* NODE-117, feat: rollback protocol (#54)

* NODE-117, feat: impl rollback request submission

* NODE-117, feat: impl rollback poll submission

* NODE-117, fix: insert BondedOutboundTx only for non-rollback requests

* NODE-117, chore: cleanup palet

* NODE-117, feat: update precompile

* NODE-117, chore: update doc-string

* NODE-117, test: resolve test failures

* NODE-117, fix: use correct origin

* NODE-117, test: add rollback tests

* NODE-117, fix: resolve encode errors

* NODE-117, chore: add missing docstrings

* NODE-117, fix: prevent same side voting

* NODE-117, feat: update precompile

* NODE-117, feat: bond rollback output

* NODE-117, test: update ttest

* NODE-117, fix: use correct key prefix

* chore: remove redundant

* chore: remove unused import

* fix: typo

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

---------

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* fix: add missing imports

* fix: double check storage existence

* NODE-119, unsigned psbt message update (#56)

* NODE-119, fix: update psbt output verification

* NODE-119, fix: check psbt output amount only for refunds

* NODE-119, fix: resolve wrong state check

* NODE-119, fix: check migration sequence

* NODE-119, feat: add migration request submission

* NODE-119, fix: set correct runtime error

* fix: set default code for precompiles

* deps: update dev chain spec

* fix: use vec instead of map

* fix: check system vault

* feat: add precompile function

* chore: add missing event

* fix: add function inputs

* minor fixes (#57)

* feat: add multisig ration set extrinsic

* fix: use correct duplication check

* deps: update rust docker version

* fix: change output can not always exist

* deps: use latest rust image

* [CCCP-403] Implement `vault_key_presubmission` (#58)

* CCCP-403, feature: storage `PresubmittedPubKeys`

* CCCP-403, feature: implement vault key pre-submission

* CCCP-403, feature: Immediately generate vault address when all executives pre-submitted keys

* CCCP-403, fix: resolve comments

* chore: update ensure (#59)

* chore: update ensure

* chore: update comment

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

---------

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* fix: socket queue minor update (#60)

* fix: use psbt txid

* fix: remove useless state checks

* deps: increase runtime version (349)

* fix: use correct output len check & add output to check

* fix: use ensure_root (#61)

* fix: simply use txid instead of psbt bytes (#62)

* chore: add missing pool events (#63)

* NODE-120, test code update (#64)

* NODE-120, fix: update ethers

* NODE-120, fix: update ethers (2)

* NODE-120, fix: registration pool tests

* NODE-120, fix: socket queue tests

* NODE-120, chore: rollback to dev runtime

* NODE-120, chore: update npm package

* fix: simplify context

* deps: release pre-v2.0.0

* NODE-122, feature: apply brp to testnet (#65)

* NODE-122, feature: apply brp to testnet

* NODE-122, chore: init pallet storage v1

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* chore: remove passed storage migration

* NODE-127, fix: add psbt fee verification logic (#69)

* NODE-127, fix: filter meaningless psbt

* NODE-127, chore: resolve `unexpected cfg condition value`

* NODE-127, fix: add psbt fee verification logic

* Update pallets/btc-socket-queue/src/pallet/mod.rs

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-127, fix: add missing psbt fee verification logic

* NODE-127, chore: set default max fee rate

---------

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-128, fix: add `SetExecutiveMembers` to `MigrationSequence` (#70)

* NODE-128, fix: add SetExecutiveMembers to MigrationSequence

* NODE-128, chore: add doc-strings

* NODE-130, fix: Update to unpayable extrinsics (#72)

* NODE-130, fix: replace unsigned transactions to unpayable extrinsics - registration pool

* NODE-130, fix: replace unsigned transactions to unpayable extrinsics - socket queue

* NODE-130, fix: remove unused Config type

* NODE-130, chore: add AuthorityDNE error

* NODE-126, fix: consider address check after vault generation (#68)

* NODE-126, fix: consider address check after vault generation

* NODE-126, fix: remove pubkey clear logic

* NODE-126, fix: insert default on failure

* fix: replace to `ensure_signed` (#73)

* fix: replace to ensure_signed

* test: replace test to signed tx

* Revert "fix: replace to `ensure_signed` (#73)" (#74)

This reverts commit b64dc4b.

* Revert "NODE-130, fix: Update to unpayable extrinsics (#72)" (#75)

This reverts commit 883262e.

* NODE-131, fix: add verifiers to signature (#76)

* NODE-131, fix: add pool_round to signature

* NODE-131, fix: add SigDomain

* NODE-131, fix: use concatenated bytes

* NODE-131, fix: use remove :?

* NODE-134, feat: add `submit_bump_fee_request()` (#78)

* NODE-134, feat: add submit_bump_fee_request

* NODE-134, feat: insert new SocketMessages

* NODE-134, fix: improve verification

* Update pallets/btc-socket-queue/src/pallet/impls.rs

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* Update pallets/btc-socket-queue/src/pallet/impls.rs

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

---------

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* NODE-139, fix: only permit when the migration tx broadcast (#84)

* NODE-139, fix: only permit when the migration tx broadcast

* NODE-139, fix: consider multiple migration transactions

* NODE-141, fix: include field `is_approved` into signature message (#86)

* NODE-140, fix: `btc-socket-queue` should be empty before pool migration (#85)

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-142, refactor: apply pending and approval process when setting refunds (#87)

* NODE-142, refactor: apply pending and approval process when setting refunds

* chore: remove unnecessary `return`

* NODE-142, chore: store current and present addresses both

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* NODE-144, feat: update `submit_bump_fee_request()` (#89)

* NODE-144, feat: make it compatible with rollbacks/migrations

* NODE-144, fix: use correct output check

* NODE-144, fix: use correct storage key

* NODE-144, fix: use mutate

* NODE-106, deps: update to bifrost-polkadot-v1.12.0

* NODE-106, fix: use in_code_storage_version()

* NODE-106, fix: resolve collective precompile compile error

* NODE-106, fix: resolve UnboundedBytes comparison

* NODE-106, fix: remove unused param

* NODE-106, fix: use legacy

* NODE-106, feat: update pallet_balances config

* NODE-106, feat: update pallet_identity config

* NODE-106, feat: add RuntimeTask type

* NODE-106, feat: add migrations and system callbacks

* NODE-106, feat: expose SlotDuration

* NODE-106, feat: add runtime apis

* NODE-106, fix: resolve Aura storage access

* NODE-106, feat: migrate to fungible

* NODE-106, deps: std and serde setup

* NODE-106, fix: rollback GasWeightMapping import

* NODE-106, feat: update client side

* NODE-106, fix: rollback CurrencyAdaptor

* NODE-106, deps: add Migrations

* NODE-106, feat: impl safe-mode and tx-pause

* NODE-106, feat: replace to derive_impl and v2 runtime construction

* NODE-106, chore: set CFLAGS mcpu=mvp on aarch64 arch

* NODE-106, deps: replace substrate-fixed to concrete version

* NODE-106, refactor: remove pallet::getter from custom pallets

* NODE-106, chore: possibly overflow

* NODE-106, deps: remove unused dependencies

* NODE-106, fix: remove deprecated getter

* NODE-106, deps: bump to stable2407

* NODE-106, chore: replace deprecated getters

* NODE-106, chore: Add RPC api pending_initialize_block

* NODE-106, chore: update pallet_treasury config

* NODE-106, chore: remove generic

* NODE-106, fix: remove deprecated getter

* NODE-106, fix: resolve merge conflicts

* NODE-106, deps: release v2.0.1

* NODE-106, fix: use correct balance

* NODE-106, fix: remove duplicate test code

* NODE-106, fix: remove deposit amount

* NODE-106, chore: update SafeModeWhitelistedCalls

* NODE-106, fix: remove experimental features

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* feat: include system vault address

* chore: update package.json

* chore: remove passed storage migrations

* (rollback): include system vault address

* NODE-149, feat: update bond_less workflow

* NODE-149, feat: update bondless & revoke workflow

* NODE-149, feat: update cancel_pending_request for Leave

* NODE-149, feat: allow reward payout on Decrease

* NODE-149, feat: split workflow for bond more

* NODE-149, feat: handle unstaking nominations unreserves

* NODE-149, feat: update unstaking nominations workflow

* NODE-149, feat: unreserve pending requests on kickout

* NODE-149, chore: remove unnecessary flag

* NODE-149, chore: fix docstring

* NODE-149, feat: enable multiple decrease requests

* NODE-149, chore: update extrinsic doc strings

* NODE-149, chore: update variable name

* NODE-149, chore: update doc string

* NODE-149, chore: update doc string - handle_validator_reward_payout

* NODE-149, fix: add missing replacements

* NODE-149, chore: update doc strings - add_bottom_nomination

* NODE-149, chore: update doc strings - increase_nomination

* NODE-149, chore: update doc strings - schedule_decrease_nomination

* NODE-149, chore: update doc strings - schedule_revoke

* NODE-149, chore: update doc strings - execute_pending_request

* NODE-149, chore: update doc strings - cancel_pending_request

* NODE-149, fix: remove unused revocations_count

* NODE-149, fix: update some comments

* NODE-149, fix: add missing logic

* NODE-149, fix: add missing currency reservation

* NODE-149, fix: do not check NominatorState on UnstakingNominations

* NODE-149, fix: bring back NominatorState check with pattern check

* NODE-149, fix: update return_stake NominatorState removal

* NODE-149, chore: update staking config

* NODE-149, chore: update staking precompile interface

* NODE-149, test: update staking test codes

* NODE-149, chore: update docstring

* NODE-149, chore: update nominator_requests interface

* NODE-149, fix: allow revoking last nomination

* NODE-149, fix: remove unused function

* NODE-149, feat: add nomination decrease limitations

* NODE-149, fix: remove redundant type casting

* NODE-158, fix: update runtime api to stable version (#103)

* NODE-158, fix: match call/create runtime api to stable version

* NODE-158, deps: increase runtime version

* NODE-158, test: add gas estimation tests

* NODE-158, chore: fix typo

* NODE-106, deps: `polkadot-sdk@stable2407` migration (#67)

* [Testnet] Apply Bitcoin Relay Protocol (BRP) (#53)

* NODE-98, feat: bitcoin registration pool (#41)

* NODE-96, feature: initialize pallet

* NODE-96, feature: init storage

* NODE-96, feature: init extrinsics

* NODE-96, feature: impl signature verification

* NODE-96, docs: add missing doc-strings

* NODE-96, feature: attach precompile

* NODE-96, fix: resolve precompile interface

* NODE-96, fix: use correct string bound

* NODE-96, fix: use vector

* NODE-96, test: add tests

* NODE-96, chore: simple fix

* NODE-98, feat: add relay executives

* NODE-98, feat: finalize pallet

* NODE-98, feat: update precompile

* NODE-98, feat: add config set extrinsics

* NODE-98, fix: resolve imports

* NODE-98, fix: update types

* NODE-98, fix: n check

* NODE-98, test: add test

* NODE-98, chore: apply feedback

* NODE-98, refactor: use better structure

* NODE-98, refactor: use better structure (2)

* NODE-98, feat: add system vault

* NODE-98, test: fix test code

* NODE-98, chore: simplify message

* NODE-98, chore: remove unused import

* NODE-99, feature: btc socket queue (#42)

* NODE-99, chore: init pallet

* NODE-99, feat: init pallet

* NODE-99, refactor: use multi-sig primitive

* NODE-99, chore: temp

* NODE-99, feat: impl extrinsics

* NODE-99, feat: add pallet

* NODE-99, fix: support no-std

* NODE-99, fix: resolve wasm build

* NODE-99, fix: comment out build

* NODE-99, feat: set submitter

* NODE-99, fix: use correct psbt hash

* NODE-99, test: add tests

* NODE-99, feat: verify duplicate signed psbt

* NODE-99, feat: verify socket message

* NODE-99, feat: verify psbt outputs

* NODE-99, fix: signed psbt

* NODE-99, refactor: update

* NODE-99, chore: set genesis config

* NODE-99, feat: add precompile

* NODE-99, feat: add relay exec precompile

* NODE-99, refactor: use unbounded bytes

* NODE-99, refactor: move miniscript to primitive only

* NODE-99, chore: check token len

* NODE-99, chore: use amount unit as sat

* NODE-99, chore: remove impl code

* NODE-99, chore: simplify code with closure

* NODE-99, chore: impl TryFrom

* NODE-99, chore: add missing docstrings

* NODE-99, fix: replace T::Signer to T::AccountId

* NODE-99, feat: store socket messages to check duplications

* NODE-99, feat: check duplicate socket message submission

* NODE-99, test: test unsigned psbt submission

* NODE-99, test: test signed psbt submission

* NODE-99, test: test finalize request

* NODE-99, fix: resolve registration pool test errors

* NODE-99, fix: check bonded pubKeys

* NODE-99, test: system vault test

* NODE-99, feat: add set_refund

* NODE-99, chore: apply cargo-clippy

* NODE-99, feat: add pending registrations

* NODE-99, fix: rename function

* NODE-99, feat: add role checker

* NODE-99, fix: apply change suggestions

* NODE-99, feat: add BondedOutboundTx

* NODE-99, feat: add precompile function

* NODE-99, fix: allow every bitcoin network type

* NODE-99, feat: add registration_info()

* NODE-102, feature: socket queue update (#43)

* NODE-102, feat: add system vout

* NODE-102, feat: try psbt finalization

* NODE-102, feat: check if message is outbound

* NODE-102, fix: update system vault interface

* NODE-102, fix: remove system vault from function

* NODE-102, fix: use correct uint type

* NODE-102, feat: allow multiple signed psbt submissions

* NODE-102, test: fix tests

* NODE-98, feat: build address script from descriptor

* NODE-98, chore: `[u8; 33]` can convert into `PublicKeyBytes`

* NODE-98, chore: not max length. should be length

* NODE-98, fix: multisig `m` could be 20 & bech32 max length is 90

* NODE-98, refactor:

* NODE-98, chore: remove unused import

* NODE-98, fix: typo

* NODE-98, refactor: remove redundant

* NODE-98, chore: unnecessary path prefix

* Update precompiles/btc-socket-queue/src/lib.rs

* NODE-98, chore: resolve comment

* NODE-98, fix: swap txid endian format

* NODE-98, test: update test code

* NODE-98, chore: update npm packages

* NODE-98, test: use correct socket message

* NODE-98, feat: store descriptor

* NODE-98, test: check descriptor existance

* NODE-98, feat: viewable descriptor

* NODE-98, refactor: use same struct

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* deploy: init testbed config

* deps: update dev chain spec

* fix: use correct context and update precompile

* fix: use single event

* test: update test

* feat: update precompile

* deps: increase runtime version

* fix: rename extrinsic

* deps: increase runtime version

* NODE-108, feat: socket queue update(2) (#48)

* NODE-108, fix: use txid as storage key

* NODE-108, feat: update precompile

* NODE-108, test: update test code

* NODE-109, feat: registration pool update (#49)

* NODE-109, feat: add clear_vault()

* NODE-109, fix: remove duplicate genesis config

* NODE-109, test: update test

* NODE-109, fix: consider system vault clear

* NODE-109, test: update test

* deps: increase runtime version

* NODE-110, fix: use desc address (#50)

* deps: increase runtime version (335)

* fix: resolve pallet issue

* NODE-114, fix: use dynamic multiSig fields & allow duplicate refund addresses (#51)

* NODE-114, fix: use dynamic n and ratio

* NODE-114, test: update tests

* NODE-114, chore: add migration

* NODE-114, fix: allow duplicate refund addresses

* NODE-114, test: update tests

* NODE-114, fix: remove unused weights

* fix: resolve import error

* deps: reset testbed

* fix: (review) move event recording

* [CCCP-385] registration-pool migration process (#55)

* CCCP-385, feature: registration pool roundup process

* CCCP-385, chore: move migration sequence enum to primitives

* CCCP-385, feature: add pool_round argument for registration pool's evm interface

* CCCP-385, chore: add default state

* CCCP-385, chore: remove `DefaultPoolRound`

* CCCP-385, fix: use correct access control

* CCCP-385, chore: set storageVersion to 1, remove migrations.rs

* NODE-117, feat: rollback protocol (#54)

* NODE-117, feat: impl rollback request submission

* NODE-117, feat: impl rollback poll submission

* NODE-117, fix: insert BondedOutboundTx only for non-rollback requests

* NODE-117, chore: cleanup palet

* NODE-117, feat: update precompile

* NODE-117, chore: update doc-string

* NODE-117, test: resolve test failures

* NODE-117, fix: use correct origin

* NODE-117, test: add rollback tests

* NODE-117, fix: resolve encode errors

* NODE-117, chore: add missing docstrings

* NODE-117, fix: prevent same side voting

* NODE-117, feat: update precompile

* NODE-117, feat: bond rollback output

* NODE-117, test: update ttest

* NODE-117, fix: use correct key prefix

* chore: remove redundant

* chore: remove unused import

* fix: typo

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

---------

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* fix: add missing imports

* fix: double check storage existence

* NODE-119, unsigned psbt message update (#56)

* NODE-119, fix: update psbt output verification

* NODE-119, fix: check psbt output amount only for refunds

* NODE-119, fix: resolve wrong state check

* NODE-119, fix: check migration sequence

* NODE-119, feat: add migration request submission

* NODE-119, fix: set correct runtime error

* fix: set default code for precompiles

* deps: update dev chain spec

* fix: use vec instead of map

* fix: check system vault

* feat: add precompile function

* chore: add missing event

* fix: add function inputs

* minor fixes (#57)

* feat: add multisig ration set extrinsic

* fix: use correct duplication check

* deps: update rust docker version

* fix: change output can not always exist

* deps: use latest rust image

* [CCCP-403] Implement `vault_key_presubmission` (#58)

* CCCP-403, feature: storage `PresubmittedPubKeys`

* CCCP-403, feature: implement vault key pre-submission

* CCCP-403, feature: Immediately generate vault address when all executives pre-submitted keys

* CCCP-403, fix: resolve comments

* chore: update ensure (#59)

* chore: update ensure

* chore: update comment

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

---------

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* fix: socket queue minor update (#60)

* fix: use psbt txid

* fix: remove useless state checks

* deps: increase runtime version (349)

* fix: use correct output len check & add output to check

* fix: use ensure_root (#61)

* fix: simply use txid instead of psbt bytes (#62)

* chore: add missing pool events (#63)

* NODE-120, test code update (#64)

* NODE-120, fix: update ethers

* NODE-120, fix: update ethers (2)

* NODE-120, fix: registration pool tests

* NODE-120, fix: socket queue tests

* NODE-120, chore: rollback to dev runtime

* NODE-120, chore: update npm package

* fix: simplify context

* deps: release pre-v2.0.0

* NODE-122, feature: apply brp to testnet (#65)

* NODE-122, feature: apply brp to testnet

* NODE-122, chore: init pallet storage v1

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* chore: remove passed storage migration

* NODE-127, fix: add psbt fee verification logic (#69)

* NODE-127, fix: filter meaningless psbt

* NODE-127, chore: resolve `unexpected cfg condition value`

* NODE-127, fix: add psbt fee verification logic

* Update pallets/btc-socket-queue/src/pallet/mod.rs

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-127, fix: add missing psbt fee verification logic

* NODE-127, chore: set default max fee rate

---------

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-128, fix: add `SetExecutiveMembers` to `MigrationSequence` (#70)

* NODE-128, fix: add SetExecutiveMembers to MigrationSequence

* NODE-128, chore: add doc-strings

* NODE-130, fix: Update to unpayable extrinsics (#72)

* NODE-130, fix: replace unsigned transactions to unpayable extrinsics - registration pool

* NODE-130, fix: replace unsigned transactions to unpayable extrinsics - socket queue

* NODE-130, fix: remove unused Config type

* NODE-130, chore: add AuthorityDNE error

* NODE-126, fix: consider address check after vault generation (#68)

* NODE-126, fix: consider address check after vault generation

* NODE-126, fix: remove pubkey clear logic

* NODE-126, fix: insert default on failure

* fix: replace to `ensure_signed` (#73)

* fix: replace to ensure_signed

* test: replace test to signed tx

* Revert "fix: replace to `ensure_signed` (#73)" (#74)

This reverts commit b64dc4b.

* Revert "NODE-130, fix: Update to unpayable extrinsics (#72)" (#75)

This reverts commit 883262e.

* NODE-131, fix: add verifiers to signature (#76)

* NODE-131, fix: add pool_round to signature

* NODE-131, fix: add SigDomain

* NODE-131, fix: use concatenated bytes

* NODE-131, fix: use remove :?

* NODE-134, feat: add `submit_bump_fee_request()` (#78)

* NODE-134, feat: add submit_bump_fee_request

* NODE-134, feat: insert new SocketMessages

* NODE-134, fix: improve verification

* Update pallets/btc-socket-queue/src/pallet/impls.rs

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* Update pallets/btc-socket-queue/src/pallet/impls.rs

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

---------

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* NODE-139, fix: only permit when the migration tx broadcast (#84)

* NODE-139, fix: only permit when the migration tx broadcast

* NODE-139, fix: consider multiple migration transactions

* NODE-141, fix: include field `is_approved` into signature message (#86)

* NODE-140, fix: `btc-socket-queue` should be empty before pool migration (#85)

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-142, refactor: apply pending and approval process when setting refunds (#87)

* NODE-142, refactor: apply pending and approval process when setting refunds

* chore: remove unnecessary `return`

* NODE-142, chore: store current and present addresses both

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* NODE-144, feat: update `submit_bump_fee_request()` (#89)

* NODE-144, feat: make it compatible with rollbacks/migrations

* NODE-144, fix: use correct output check

* NODE-144, fix: use correct storage key

* NODE-144, fix: use mutate

* NODE-106, deps: update to bifrost-polkadot-v1.12.0

* NODE-106, fix: use in_code_storage_version()

* NODE-106, fix: resolve collective precompile compile error

* NODE-106, fix: resolve UnboundedBytes comparison

* NODE-106, fix: remove unused param

* NODE-106, fix: use legacy

* NODE-106, feat: update pallet_balances config

* NODE-106, feat: update pallet_identity config

* NODE-106, feat: add RuntimeTask type

* NODE-106, feat: add migrations and system callbacks

* NODE-106, feat: expose SlotDuration

* NODE-106, feat: add runtime apis

* NODE-106, fix: resolve Aura storage access

* NODE-106, feat: migrate to fungible

* NODE-106, deps: std and serde setup

* NODE-106, fix: rollback GasWeightMapping import

* NODE-106, feat: update client side

* NODE-106, fix: rollback CurrencyAdaptor

* NODE-106, deps: add Migrations

* NODE-106, feat: impl safe-mode and tx-pause

* NODE-106, feat: replace to derive_impl and v2 runtime construction

* NODE-106, chore: set CFLAGS mcpu=mvp on aarch64 arch

* NODE-106, deps: replace substrate-fixed to concrete version

* NODE-106, refactor: remove pallet::getter from custom pallets

* NODE-106, chore: possibly overflow

* NODE-106, deps: remove unused dependencies

* NODE-106, fix: remove deprecated getter

* NODE-106, deps: bump to stable2407

* NODE-106, chore: replace deprecated getters

* NODE-106, chore: Add RPC api pending_initialize_block

* NODE-106, chore: update pallet_treasury config

* NODE-106, chore: remove generic

* NODE-106, fix: remove deprecated getter

* NODE-106, fix: resolve merge conflicts

* NODE-106, deps: release v2.0.1

* NODE-106, fix: use correct balance

* NODE-106, fix: remove duplicate test code

* NODE-106, fix: remove deposit amount

* NODE-106, chore: update SafeModeWhitelistedCalls

* NODE-106, fix: remove experimental features

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* NODE-149, feat: init bfc-staking v6 storage migration

* NODE-149, fix: move NominationChange::Leave to the end

* NODE-149, deps: increase dev runtime version

* NODE-149, fix: add missing storage version setter

* NODE-149, deps: increase client version

* NODE-149, fix: use correct function selector

* cleanup crate dependencies (#117)

* deps: cleanup crate dependencies

* fix: bring back runtime-benchmarks

* fix: add missing dependencies

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* NODE-149, chore: resolve

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>
alstjd0921 added a commit that referenced this pull request Sep 11, 2025
* [Testnet] Apply Bitcoin Relay Protocol (BRP) (#53)

* NODE-98, feat: bitcoin registration pool (#41)

* NODE-96, feature: initialize pallet

* NODE-96, feature: init storage

* NODE-96, feature: init extrinsics

* NODE-96, feature: impl signature verification

* NODE-96, docs: add missing doc-strings

* NODE-96, feature: attach precompile

* NODE-96, fix: resolve precompile interface

* NODE-96, fix: use correct string bound

* NODE-96, fix: use vector

* NODE-96, test: add tests

* NODE-96, chore: simple fix

* NODE-98, feat: add relay executives

* NODE-98, feat: finalize pallet

* NODE-98, feat: update precompile

* NODE-98, feat: add config set extrinsics

* NODE-98, fix: resolve imports

* NODE-98, fix: update types

* NODE-98, fix: n check

* NODE-98, test: add test

* NODE-98, chore: apply feedback

* NODE-98, refactor: use better structure

* NODE-98, refactor: use better structure (2)

* NODE-98, feat: add system vault

* NODE-98, test: fix test code

* NODE-98, chore: simplify message

* NODE-98, chore: remove unused import

* NODE-99, feature: btc socket queue (#42)

* NODE-99, chore: init pallet

* NODE-99, feat: init pallet

* NODE-99, refactor: use multi-sig primitive

* NODE-99, chore: temp

* NODE-99, feat: impl extrinsics

* NODE-99, feat: add pallet

* NODE-99, fix: support no-std

* NODE-99, fix: resolve wasm build

* NODE-99, fix: comment out build

* NODE-99, feat: set submitter

* NODE-99, fix: use correct psbt hash

* NODE-99, test: add tests

* NODE-99, feat: verify duplicate signed psbt

* NODE-99, feat: verify socket message

* NODE-99, feat: verify psbt outputs

* NODE-99, fix: signed psbt

* NODE-99, refactor: update

* NODE-99, chore: set genesis config

* NODE-99, feat: add precompile

* NODE-99, feat: add relay exec precompile

* NODE-99, refactor: use unbounded bytes

* NODE-99, refactor: move miniscript to primitive only

* NODE-99, chore: check token len

* NODE-99, chore: use amount unit as sat

* NODE-99, chore: remove impl code

* NODE-99, chore: simplify code with closure

* NODE-99, chore: impl TryFrom

* NODE-99, chore: add missing docstrings

* NODE-99, fix: replace T::Signer to T::AccountId

* NODE-99, feat: store socket messages to check duplications

* NODE-99, feat: check duplicate socket message submission

* NODE-99, test: test unsigned psbt submission

* NODE-99, test: test signed psbt submission

* NODE-99, test: test finalize request

* NODE-99, fix: resolve registration pool test errors

* NODE-99, fix: check bonded pubKeys

* NODE-99, test: system vault test

* NODE-99, feat: add set_refund

* NODE-99, chore: apply cargo-clippy

* NODE-99, feat: add pending registrations

* NODE-99, fix: rename function

* NODE-99, feat: add role checker

* NODE-99, fix: apply change suggestions

* NODE-99, feat: add BondedOutboundTx

* NODE-99, feat: add precompile function

* NODE-99, fix: allow every bitcoin network type

* NODE-99, feat: add registration_info()

* NODE-102, feature: socket queue update (#43)

* NODE-102, feat: add system vout

* NODE-102, feat: try psbt finalization

* NODE-102, feat: check if message is outbound

* NODE-102, fix: update system vault interface

* NODE-102, fix: remove system vault from function

* NODE-102, fix: use correct uint type

* NODE-102, feat: allow multiple signed psbt submissions

* NODE-102, test: fix tests

* NODE-98, feat: build address script from descriptor

* NODE-98, chore: `[u8; 33]` can convert into `PublicKeyBytes`

* NODE-98, chore: not max length. should be length

* NODE-98, fix: multisig `m` could be 20 & bech32 max length is 90

* NODE-98, refactor:

* NODE-98, chore: remove unused import

* NODE-98, fix: typo

* NODE-98, refactor: remove redundant

* NODE-98, chore: unnecessary path prefix

* Update precompiles/btc-socket-queue/src/lib.rs

* NODE-98, chore: resolve comment

* NODE-98, fix: swap txid endian format

* NODE-98, test: update test code

* NODE-98, chore: update npm packages

* NODE-98, test: use correct socket message

* NODE-98, feat: store descriptor

* NODE-98, test: check descriptor existance

* NODE-98, feat: viewable descriptor

* NODE-98, refactor: use same struct

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* deploy: init testbed config

* deps: update dev chain spec

* fix: use correct context and update precompile

* fix: use single event

* test: update test

* feat: update precompile

* deps: increase runtime version

* fix: rename extrinsic

* deps: increase runtime version

* NODE-108, feat: socket queue update(2) (#48)

* NODE-108, fix: use txid as storage key

* NODE-108, feat: update precompile

* NODE-108, test: update test code

* NODE-109, feat: registration pool update (#49)

* NODE-109, feat: add clear_vault()

* NODE-109, fix: remove duplicate genesis config

* NODE-109, test: update test

* NODE-109, fix: consider system vault clear

* NODE-109, test: update test

* deps: increase runtime version

* NODE-110, fix: use desc address (#50)

* deps: increase runtime version (335)

* fix: resolve pallet issue

* NODE-114, fix: use dynamic multiSig fields & allow duplicate refund addresses (#51)

* NODE-114, fix: use dynamic n and ratio

* NODE-114, test: update tests

* NODE-114, chore: add migration

* NODE-114, fix: allow duplicate refund addresses

* NODE-114, test: update tests

* NODE-114, fix: remove unused weights

* fix: resolve import error

* deps: reset testbed

* fix: (review) move event recording

* [CCCP-385] registration-pool migration process (#55)

* CCCP-385, feature: registration pool roundup process

* CCCP-385, chore: move migration sequence enum to primitives

* CCCP-385, feature: add pool_round argument for registration pool's evm interface

* CCCP-385, chore: add default state

* CCCP-385, chore: remove `DefaultPoolRound`

* CCCP-385, fix: use correct access control

* CCCP-385, chore: set storageVersion to 1, remove migrations.rs

* NODE-117, feat: rollback protocol (#54)

* NODE-117, feat: impl rollback request submission

* NODE-117, feat: impl rollback poll submission

* NODE-117, fix: insert BondedOutboundTx only for non-rollback requests

* NODE-117, chore: cleanup palet

* NODE-117, feat: update precompile

* NODE-117, chore: update doc-string

* NODE-117, test: resolve test failures

* NODE-117, fix: use correct origin

* NODE-117, test: add rollback tests

* NODE-117, fix: resolve encode errors

* NODE-117, chore: add missing docstrings

* NODE-117, fix: prevent same side voting

* NODE-117, feat: update precompile

* NODE-117, feat: bond rollback output

* NODE-117, test: update ttest

* NODE-117, fix: use correct key prefix

* chore: remove redundant

* chore: remove unused import

* fix: typo

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

---------

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* fix: add missing imports

* fix: double check storage existence

* NODE-119, unsigned psbt message update (#56)

* NODE-119, fix: update psbt output verification

* NODE-119, fix: check psbt output amount only for refunds

* NODE-119, fix: resolve wrong state check

* NODE-119, fix: check migration sequence

* NODE-119, feat: add migration request submission

* NODE-119, fix: set correct runtime error

* fix: set default code for precompiles

* deps: update dev chain spec

* fix: use vec instead of map

* fix: check system vault

* feat: add precompile function

* chore: add missing event

* fix: add function inputs

* minor fixes (#57)

* feat: add multisig ration set extrinsic

* fix: use correct duplication check

* deps: update rust docker version

* fix: change output can not always exist

* deps: use latest rust image

* [CCCP-403] Implement `vault_key_presubmission` (#58)

* CCCP-403, feature: storage `PresubmittedPubKeys`

* CCCP-403, feature: implement vault key pre-submission

* CCCP-403, feature: Immediately generate vault address when all executives pre-submitted keys

* CCCP-403, fix: resolve comments

* chore: update ensure (#59)

* chore: update ensure

* chore: update comment

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

---------

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* fix: socket queue minor update (#60)

* fix: use psbt txid

* fix: remove useless state checks

* deps: increase runtime version (349)

* fix: use correct output len check & add output to check

* fix: use ensure_root (#61)

* fix: simply use txid instead of psbt bytes (#62)

* chore: add missing pool events (#63)

* NODE-120, test code update (#64)

* NODE-120, fix: update ethers

* NODE-120, fix: update ethers (2)

* NODE-120, fix: registration pool tests

* NODE-120, fix: socket queue tests

* NODE-120, chore: rollback to dev runtime

* NODE-120, chore: update npm package

* fix: simplify context

* deps: release pre-v2.0.0

* NODE-122, feature: apply brp to testnet (#65)

* NODE-122, feature: apply brp to testnet

* NODE-122, chore: init pallet storage v1

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* chore: remove passed storage migration

* NODE-127, fix: add psbt fee verification logic (#69)

* NODE-127, fix: filter meaningless psbt

* NODE-127, chore: resolve `unexpected cfg condition value`

* NODE-127, fix: add psbt fee verification logic

* Update pallets/btc-socket-queue/src/pallet/mod.rs

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-127, fix: add missing psbt fee verification logic

* NODE-127, chore: set default max fee rate

---------

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-128, fix: add `SetExecutiveMembers` to `MigrationSequence` (#70)

* NODE-128, fix: add SetExecutiveMembers to MigrationSequence

* NODE-128, chore: add doc-strings

* NODE-130, fix: Update to unpayable extrinsics (#72)

* NODE-130, fix: replace unsigned transactions to unpayable extrinsics - registration pool

* NODE-130, fix: replace unsigned transactions to unpayable extrinsics - socket queue

* NODE-130, fix: remove unused Config type

* NODE-130, chore: add AuthorityDNE error

* NODE-126, fix: consider address check after vault generation (#68)

* NODE-126, fix: consider address check after vault generation

* NODE-126, fix: remove pubkey clear logic

* NODE-126, fix: insert default on failure

* fix: replace to `ensure_signed` (#73)

* fix: replace to ensure_signed

* test: replace test to signed tx

* Revert "fix: replace to `ensure_signed` (#73)" (#74)

This reverts commit b64dc4b.

* Revert "NODE-130, fix: Update to unpayable extrinsics (#72)" (#75)

This reverts commit 883262e.

* NODE-131, fix: add verifiers to signature (#76)

* NODE-131, fix: add pool_round to signature

* NODE-131, fix: add SigDomain

* NODE-131, fix: use concatenated bytes

* NODE-131, fix: use remove :?

* NODE-134, feat: add `submit_bump_fee_request()` (#78)

* NODE-134, feat: add submit_bump_fee_request

* NODE-134, feat: insert new SocketMessages

* NODE-134, fix: improve verification

* Update pallets/btc-socket-queue/src/pallet/impls.rs

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* Update pallets/btc-socket-queue/src/pallet/impls.rs

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

---------

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* NODE-139, fix: only permit when the migration tx broadcast (#84)

* NODE-139, fix: only permit when the migration tx broadcast

* NODE-139, fix: consider multiple migration transactions

* NODE-141, fix: include field `is_approved` into signature message (#86)

* NODE-140, fix: `btc-socket-queue` should be empty before pool migration (#85)

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-142, refactor: apply pending and approval process when setting refunds (#87)

* NODE-142, refactor: apply pending and approval process when setting refunds

* chore: remove unnecessary `return`

* NODE-142, chore: store current and present addresses both

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* NODE-144, feat: update `submit_bump_fee_request()` (#89)

* NODE-144, feat: make it compatible with rollbacks/migrations

* NODE-144, fix: use correct output check

* NODE-144, fix: use correct storage key

* NODE-144, fix: use mutate

* NODE-106, deps: update to bifrost-polkadot-v1.12.0

* NODE-106, fix: use in_code_storage_version()

* NODE-106, fix: resolve collective precompile compile error

* NODE-106, fix: resolve UnboundedBytes comparison

* NODE-106, fix: remove unused param

* NODE-106, fix: use legacy

* NODE-106, feat: update pallet_balances config

* NODE-106, feat: update pallet_identity config

* NODE-106, feat: add RuntimeTask type

* NODE-106, feat: add migrations and system callbacks

* NODE-106, feat: expose SlotDuration

* NODE-106, feat: add runtime apis

* NODE-106, fix: resolve Aura storage access

* NODE-106, feat: migrate to fungible

* NODE-106, deps: std and serde setup

* NODE-106, fix: rollback GasWeightMapping import

* NODE-106, feat: update client side

* NODE-106, fix: rollback CurrencyAdaptor

* NODE-106, deps: add Migrations

* NODE-106, feat: impl safe-mode and tx-pause

* NODE-106, feat: replace to derive_impl and v2 runtime construction

* NODE-106, chore: set CFLAGS mcpu=mvp on aarch64 arch

* NODE-106, deps: replace substrate-fixed to concrete version

* NODE-106, refactor: remove pallet::getter from custom pallets

* NODE-106, chore: possibly overflow

* NODE-106, deps: remove unused dependencies

* NODE-106, fix: remove deprecated getter

* NODE-106, deps: bump to stable2407

* NODE-106, chore: replace deprecated getters

* NODE-106, chore: Add RPC api pending_initialize_block

* NODE-106, chore: update pallet_treasury config

* NODE-106, chore: remove generic

* NODE-106, fix: remove deprecated getter

* NODE-106, fix: resolve merge conflicts

* NODE-106, deps: release v2.0.1

* NODE-106, fix: use correct balance

* NODE-106, fix: remove duplicate test code

* NODE-106, fix: remove deposit amount

* NODE-106, chore: update SafeModeWhitelistedCalls

* NODE-106, fix: remove experimental features

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>
alstjd0921 added a commit that referenced this pull request Sep 11, 2025
* [Testnet] Apply Bitcoin Relay Protocol (BRP) (#53)

* NODE-98, feat: bitcoin registration pool (#41)

* NODE-96, feature: initialize pallet

* NODE-96, feature: init storage

* NODE-96, feature: init extrinsics

* NODE-96, feature: impl signature verification

* NODE-96, docs: add missing doc-strings

* NODE-96, feature: attach precompile

* NODE-96, fix: resolve precompile interface

* NODE-96, fix: use correct string bound

* NODE-96, fix: use vector

* NODE-96, test: add tests

* NODE-96, chore: simple fix

* NODE-98, feat: add relay executives

* NODE-98, feat: finalize pallet

* NODE-98, feat: update precompile

* NODE-98, feat: add config set extrinsics

* NODE-98, fix: resolve imports

* NODE-98, fix: update types

* NODE-98, fix: n check

* NODE-98, test: add test

* NODE-98, chore: apply feedback

* NODE-98, refactor: use better structure

* NODE-98, refactor: use better structure (2)

* NODE-98, feat: add system vault

* NODE-98, test: fix test code

* NODE-98, chore: simplify message

* NODE-98, chore: remove unused import

* NODE-99, feature: btc socket queue (#42)

* NODE-99, chore: init pallet

* NODE-99, feat: init pallet

* NODE-99, refactor: use multi-sig primitive

* NODE-99, chore: temp

* NODE-99, feat: impl extrinsics

* NODE-99, feat: add pallet

* NODE-99, fix: support no-std

* NODE-99, fix: resolve wasm build

* NODE-99, fix: comment out build

* NODE-99, feat: set submitter

* NODE-99, fix: use correct psbt hash

* NODE-99, test: add tests

* NODE-99, feat: verify duplicate signed psbt

* NODE-99, feat: verify socket message

* NODE-99, feat: verify psbt outputs

* NODE-99, fix: signed psbt

* NODE-99, refactor: update

* NODE-99, chore: set genesis config

* NODE-99, feat: add precompile

* NODE-99, feat: add relay exec precompile

* NODE-99, refactor: use unbounded bytes

* NODE-99, refactor: move miniscript to primitive only

* NODE-99, chore: check token len

* NODE-99, chore: use amount unit as sat

* NODE-99, chore: remove impl code

* NODE-99, chore: simplify code with closure

* NODE-99, chore: impl TryFrom

* NODE-99, chore: add missing docstrings

* NODE-99, fix: replace T::Signer to T::AccountId

* NODE-99, feat: store socket messages to check duplications

* NODE-99, feat: check duplicate socket message submission

* NODE-99, test: test unsigned psbt submission

* NODE-99, test: test signed psbt submission

* NODE-99, test: test finalize request

* NODE-99, fix: resolve registration pool test errors

* NODE-99, fix: check bonded pubKeys

* NODE-99, test: system vault test

* NODE-99, feat: add set_refund

* NODE-99, chore: apply cargo-clippy

* NODE-99, feat: add pending registrations

* NODE-99, fix: rename function

* NODE-99, feat: add role checker

* NODE-99, fix: apply change suggestions

* NODE-99, feat: add BondedOutboundTx

* NODE-99, feat: add precompile function

* NODE-99, fix: allow every bitcoin network type

* NODE-99, feat: add registration_info()

* NODE-102, feature: socket queue update (#43)

* NODE-102, feat: add system vout

* NODE-102, feat: try psbt finalization

* NODE-102, feat: check if message is outbound

* NODE-102, fix: update system vault interface

* NODE-102, fix: remove system vault from function

* NODE-102, fix: use correct uint type

* NODE-102, feat: allow multiple signed psbt submissions

* NODE-102, test: fix tests

* NODE-98, feat: build address script from descriptor

* NODE-98, chore: `[u8; 33]` can convert into `PublicKeyBytes`

* NODE-98, chore: not max length. should be length

* NODE-98, fix: multisig `m` could be 20 & bech32 max length is 90

* NODE-98, refactor:

* NODE-98, chore: remove unused import

* NODE-98, fix: typo

* NODE-98, refactor: remove redundant

* NODE-98, chore: unnecessary path prefix

* Update precompiles/btc-socket-queue/src/lib.rs

* NODE-98, chore: resolve comment

* NODE-98, fix: swap txid endian format

* NODE-98, test: update test code

* NODE-98, chore: update npm packages

* NODE-98, test: use correct socket message

* NODE-98, feat: store descriptor

* NODE-98, test: check descriptor existance

* NODE-98, feat: viewable descriptor

* NODE-98, refactor: use same struct

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* deploy: init testbed config

* deps: update dev chain spec

* fix: use correct context and update precompile

* fix: use single event

* test: update test

* feat: update precompile

* deps: increase runtime version

* fix: rename extrinsic

* deps: increase runtime version

* NODE-108, feat: socket queue update(2) (#48)

* NODE-108, fix: use txid as storage key

* NODE-108, feat: update precompile

* NODE-108, test: update test code

* NODE-109, feat: registration pool update (#49)

* NODE-109, feat: add clear_vault()

* NODE-109, fix: remove duplicate genesis config

* NODE-109, test: update test

* NODE-109, fix: consider system vault clear

* NODE-109, test: update test

* deps: increase runtime version

* NODE-110, fix: use desc address (#50)

* deps: increase runtime version (335)

* fix: resolve pallet issue

* NODE-114, fix: use dynamic multiSig fields & allow duplicate refund addresses (#51)

* NODE-114, fix: use dynamic n and ratio

* NODE-114, test: update tests

* NODE-114, chore: add migration

* NODE-114, fix: allow duplicate refund addresses

* NODE-114, test: update tests

* NODE-114, fix: remove unused weights

* fix: resolve import error

* deps: reset testbed

* fix: (review) move event recording

* [CCCP-385] registration-pool migration process (#55)

* CCCP-385, feature: registration pool roundup process

* CCCP-385, chore: move migration sequence enum to primitives

* CCCP-385, feature: add pool_round argument for registration pool's evm interface

* CCCP-385, chore: add default state

* CCCP-385, chore: remove `DefaultPoolRound`

* CCCP-385, fix: use correct access control

* CCCP-385, chore: set storageVersion to 1, remove migrations.rs

* NODE-117, feat: rollback protocol (#54)

* NODE-117, feat: impl rollback request submission

* NODE-117, feat: impl rollback poll submission

* NODE-117, fix: insert BondedOutboundTx only for non-rollback requests

* NODE-117, chore: cleanup palet

* NODE-117, feat: update precompile

* NODE-117, chore: update doc-string

* NODE-117, test: resolve test failures

* NODE-117, fix: use correct origin

* NODE-117, test: add rollback tests

* NODE-117, fix: resolve encode errors

* NODE-117, chore: add missing docstrings

* NODE-117, fix: prevent same side voting

* NODE-117, feat: update precompile

* NODE-117, feat: bond rollback output

* NODE-117, test: update ttest

* NODE-117, fix: use correct key prefix

* chore: remove redundant

* chore: remove unused import

* fix: typo

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

---------

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* fix: add missing imports

* fix: double check storage existence

* NODE-119, unsigned psbt message update (#56)

* NODE-119, fix: update psbt output verification

* NODE-119, fix: check psbt output amount only for refunds

* NODE-119, fix: resolve wrong state check

* NODE-119, fix: check migration sequence

* NODE-119, feat: add migration request submission

* NODE-119, fix: set correct runtime error

* fix: set default code for precompiles

* deps: update dev chain spec

* fix: use vec instead of map

* fix: check system vault

* feat: add precompile function

* chore: add missing event

* fix: add function inputs

* minor fixes (#57)

* feat: add multisig ration set extrinsic

* fix: use correct duplication check

* deps: update rust docker version

* fix: change output can not always exist

* deps: use latest rust image

* [CCCP-403] Implement `vault_key_presubmission` (#58)

* CCCP-403, feature: storage `PresubmittedPubKeys`

* CCCP-403, feature: implement vault key pre-submission

* CCCP-403, feature: Immediately generate vault address when all executives pre-submitted keys

* CCCP-403, fix: resolve comments

* chore: update ensure (#59)

* chore: update ensure

* chore: update comment

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

---------

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* fix: socket queue minor update (#60)

* fix: use psbt txid

* fix: remove useless state checks

* deps: increase runtime version (349)

* fix: use correct output len check & add output to check

* fix: use ensure_root (#61)

* fix: simply use txid instead of psbt bytes (#62)

* chore: add missing pool events (#63)

* NODE-120, test code update (#64)

* NODE-120, fix: update ethers

* NODE-120, fix: update ethers (2)

* NODE-120, fix: registration pool tests

* NODE-120, fix: socket queue tests

* NODE-120, chore: rollback to dev runtime

* NODE-120, chore: update npm package

* fix: simplify context

* deps: release pre-v2.0.0

* NODE-122, feature: apply brp to testnet (#65)

* NODE-122, feature: apply brp to testnet

* NODE-122, chore: init pallet storage v1

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* chore: remove passed storage migration

* NODE-127, fix: add psbt fee verification logic (#69)

* NODE-127, fix: filter meaningless psbt

* NODE-127, chore: resolve `unexpected cfg condition value`

* NODE-127, fix: add psbt fee verification logic

* Update pallets/btc-socket-queue/src/pallet/mod.rs

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-127, fix: add missing psbt fee verification logic

* NODE-127, chore: set default max fee rate

---------

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-128, fix: add `SetExecutiveMembers` to `MigrationSequence` (#70)

* NODE-128, fix: add SetExecutiveMembers to MigrationSequence

* NODE-128, chore: add doc-strings

* NODE-130, fix: Update to unpayable extrinsics (#72)

* NODE-130, fix: replace unsigned transactions to unpayable extrinsics - registration pool

* NODE-130, fix: replace unsigned transactions to unpayable extrinsics - socket queue

* NODE-130, fix: remove unused Config type

* NODE-130, chore: add AuthorityDNE error

* NODE-126, fix: consider address check after vault generation (#68)

* NODE-126, fix: consider address check after vault generation

* NODE-126, fix: remove pubkey clear logic

* NODE-126, fix: insert default on failure

* fix: replace to `ensure_signed` (#73)

* fix: replace to ensure_signed

* test: replace test to signed tx

* Revert "fix: replace to `ensure_signed` (#73)" (#74)

This reverts commit b64dc4b.

* Revert "NODE-130, fix: Update to unpayable extrinsics (#72)" (#75)

This reverts commit 883262e.

* NODE-131, fix: add verifiers to signature (#76)

* NODE-131, fix: add pool_round to signature

* NODE-131, fix: add SigDomain

* NODE-131, fix: use concatenated bytes

* NODE-131, fix: use remove :?

* NODE-134, feat: add `submit_bump_fee_request()` (#78)

* NODE-134, feat: add submit_bump_fee_request

* NODE-134, feat: insert new SocketMessages

* NODE-134, fix: improve verification

* Update pallets/btc-socket-queue/src/pallet/impls.rs

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* Update pallets/btc-socket-queue/src/pallet/impls.rs

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

---------

Co-authored-by: Min-seong Kwon <kwonarseus@gmail.com>

* NODE-139, fix: only permit when the migration tx broadcast (#84)

* NODE-139, fix: only permit when the migration tx broadcast

* NODE-139, fix: consider multiple migration transactions

* NODE-141, fix: include field `is_approved` into signature message (#86)

* NODE-140, fix: `btc-socket-queue` should be empty before pool migration (#85)

Co-authored-by: Alex Won <dnjscksdn98@gmail.com>

* NODE-142, refactor: apply pending and approval process when setting refunds (#87)

* NODE-142, refactor: apply pending and approval process when setting refunds

* chore: remove unnecessary `return`

* NODE-142, chore: store current and present addresses both

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>

* NODE-144, feat: update `submit_bump_fee_request()` (#89)

* NODE-144, feat: make it compatible with rollbacks/migrations

* NODE-144, fix: use correct output check

* NODE-144, fix: use correct storage key

* NODE-144, fix: use mutate

* NODE-106, deps: update to bifrost-polkadot-v1.12.0

* NODE-106, fix: use in_code_storage_version()

* NODE-106, fix: resolve collective precompile compile error

* NODE-106, fix: resolve UnboundedBytes comparison

* NODE-106, fix: remove unused param

* NODE-106, fix: use legacy

* NODE-106, feat: update pallet_balances config

* NODE-106, feat: update pallet_identity config

* NODE-106, feat: add RuntimeTask type

* NODE-106, feat: add migrations and system callbacks

* NODE-106, feat: expose SlotDuration

* NODE-106, feat: add runtime apis

* NODE-106, fix: resolve Aura storage access

* NODE-106, feat: migrate to fungible

* NODE-106, deps: std and serde setup

* NODE-106, fix: rollback GasWeightMapping import

* NODE-106, feat: update client side

* NODE-106, fix: rollback CurrencyAdaptor

* NODE-106, deps: add Migrations

* NODE-106, feat: impl safe-mode and tx-pause

* NODE-106, feat: replace to derive_impl and v2 runtime construction

* NODE-106, chore: set CFLAGS mcpu=mvp on aarch64 arch

* NODE-106, deps: replace substrate-fixed to concrete version

* NODE-106, refactor: remove pallet::getter from custom pallets

* NODE-106, chore: possibly overflow

* NODE-106, deps: remove unused dependencies

* NODE-106, fix: remove deprecated getter

* NODE-106, deps: bump to stable2407

* NODE-106, chore: replace deprecated getters

* NODE-106, chore: Add RPC api pending_initialize_block

* NODE-106, chore: update pallet_treasury config

* NODE-106, chore: remove generic

* NODE-106, fix: remove deprecated getter

* NODE-106, fix: resolve merge conflicts

* NODE-106, deps: release v2.0.1

* NODE-106, fix: use correct balance

* NODE-106, fix: remove duplicate test code

* NODE-106, fix: remove deposit amount

* NODE-106, chore: update SafeModeWhitelistedCalls

* NODE-106, fix: remove experimental features

---------

Co-authored-by: alstjd0921 <kwonarseus@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Working incorrectly

Development

Successfully merging this pull request may close these issues.

4 participants

Morty Proxy This is a proxified and sanitized view of the page, visit original site.