Updates

See Specific updates for each Bounty

August 7th

PR 202 Separate sBTC alpha deployment

PR 200 Currency support in UI

PR 59 Separate sBTC alpha deployment

PR 56 Feat/55 signer api microservice

PR 53 Withdrawal and deposit payloads for sBTC Alpha

July 25th

PR 193

Several days debugging byte array and hex strings with @netrome. hard work paid off - led to first successfuly sBTC Alpha withdrawal: https://twitter.com/radicleart/status/1683801378668396545

July 18th

  • Testing and improvements of the withdrawal for op_return see discord and Issue 187

  • Currency support - see PR 185

June 26nd

PR 158 - UX feedback - remove all mention of satoshi

June 22nd

Finished Bridge API PR 34 - adds efficient endpoints for the UI and endpoints to support electrum plugin for building the taproot commitment and payload data.

Merged PR 155 - improvements to deposit and withdrawals for both op_drop and op_return

Merged PR 154 Design Implementation

June 12nd

Stacks Signer Dashboard Bounty - made a start on the web app - setup the GitHub repo. Reusing the Design for the Bridge but with some minor modifications. Hosting the app so it interlinks seamlessly with the Bridge but exists in different code base.

June 2nd

Implementing Maximes' Design System. Tracked by Issue 145 and rebuild the UI using Tailwind (replacing use of Bootstrap) for a modern design.

May 26th

Two (Web and API) PRs move a set of key pairs into the server - accessible via environment vars on the target machine.

The keys are able to spend the reveal and reclaim script paths generated by the deposit. Having them as custodial keys means;

a) the bridge can generate test reveal transaction b) the bridge can refund users bitcoin if no spent by the reveal

The corresponding public keys are accessible from the API via;

Raised Issue 3742 with Hiro web wallet on signing the psbt for the reclaim.

PRs 141 and 31 on web / api respec. These deal with tracking commit / reveal / reclaim transactions starting from the initial user commitment. The status of the overall flow is shown to the user along with the ability to generate PSBTs for both reclaim and reveal (the latter for testing purposes).

Two paths;

  • /reclaims

  • /reclaims/reclaim/_id

the former displays deposits and provides filters (tbd). The latter provides buttons to integrate with Stacks Web Wallets, details about the transactions and displays raw PSBT data in hex and b64 encoding for copying to wallet software.

May 19th

19th merged two PRs related to Create typescript Bridge library. Creates a shared lib for the web and api projects containing the common functions;

  • building and parsing deposit payloads

  • building and parsing withdrawal payloads

  • signing, hashing and recovering public keys from signatures

  • commitment witness data

15th - Wrote some User Stories for the deposit and withdraw flows and setup Trello Kanban board.

16th - Dealing with https://github.com/Trust-Machines/core-eng/issues/341 on 0 padding of the stacks payload data and fine tuning of the deposit parameters - see also https://github.com/Trust-Machines/core-eng/pull/339#discussion_r1194208407.

May 12th

Following reveal transaction (using op_drop and taproot) has been tested on Bitcoin testnet.

The example below uses an internal random private key for signing and pays the reveal and reclaim paths to Schnorr pubkeys;

revealPub: schnorr.getPublicKey(testWallets[0].privateKey) as Uint8Array,
reclaimPub: schnorr.getPublicKey(testWallets[1].privateKey) as Uint8Array,

With following script

const scripts =  [
    { script: btc.Script.encode([data, 'DROP', revealPubK, 'CHECKSIG']) },
    { script: btc.Script.encode([reclaimPubK, 'CHECKSIG']) }
]
const script = btc.p2tr(btc.TAPROOT_UNSPENDABLE_KEY, scripts, this.net, true);

Still to do;

  • reclaim transaction

  • make the reclaim payable to any segwit (v0 or v1) address

  • prove this works for general taproot address, and

  • show arbitrary wallets can sign the reveal/reclaim transactions

Details from this thread in discord;

  1. [14:45]BTW Sparrow Wallet is amazing if you haven't tried it - great feedback.

  2. [14:47]i've not worried too much aboiut the stacks data as yet and need to make this work for a general pubkey and not just a random private key but getting there...

May 5th

  • Issue 105 - Commitment transaction. Exploring ways to build the reclaim and reveal script paths. Committed PR 105 whch tidies up code around buildng the commit tx. Several option exist but they wll be rationalised in later PR.

  • Created a risk assessment on the Mini sBTC pegin requirements.

  • Finished off CI - staging branch s now default for PRs - serves as a safety latch for production builds.

April 28th

  • Switching the commit tx from p2wsh to p2tr. Mostly learning taproot/tapscript. Adjusted the ui and api to handle the tapscript data

  • Writing a blog post on this experience - working title “sBTC Commit Transactions”

April 21st

  • What do we want to achieve this week?

    • Working on the p2tr commitment transaction.

    • Trying to figure out how to build the PSBT to spend the script paths from the pegin.

  • Which blockers must be resolved to achieve this?

    • Reach out to dev working on Electrum plugin

    • pato2k5@gmail.com setpato#7961

Last updated