Skip to content

Instantly share code, notes, and snippets.

@szymonlesisz
Last active December 6, 2021 15:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save szymonlesisz/5c86a4b8d0329e792b76ecb82e20bd1a to your computer and use it in GitHub Desktop.
Save szymonlesisz/5c86a4b8d0329e792b76ecb82e20bd1a to your computer and use it in GitHub Desktop.

Suite application flow. shared/* represents future shared code between Suite and Wasabi wallets.

-- HAPPY PATH SESSION START --

[Suite + Trezor] authorizeCoinCoin credentials

shared/get-round

[request] { inputs, output addresses, availableRounds from WabiSabi/status, max fee, privacy level etc.. } OP: CoinJoinClient.StartRoundAsync SelectCoinsForRound Finds the best candidate from my input(s), finds round, calc tx size, max fee etc. [response] { roundId, input(s), ... } or null

[Suite + Trezor] generate ownership(s) for given round

shared/get-input-registration-data

[request] { roundId, inputs with ownership, ... } OP: ArenaClient.RegisterInputAsync zeroAmount credentials. [response] { data } json for WabiSabi/input-registration request

[Suite] Alice calls WabiSabi/input-registration

shared/get-connection-confirmation-data

[request] { data } from WabiSabi/input-registration OP: ArenaClient.ConfirmConnectionAsync realAmount credentails. [response] { data } json for WabiSabi/connection-confirmation

[Suite] Alice calls WabiSabi/connection-confirmation

[Suite] waiting for output phase... (by checking WabiSabi/status)

shared/get-output-registration-data

[request] { data } round info + Alices? OP: AmountDecomposer split outputs + ArenaClient.RegisterOutputAsync realAmount, realVsize. [response] { data } json for WabiSabi/output-registration

[Suite] Bob calls WabiSabi/output-registration (multiple for each output)

[Suite] waits for sign phase... (by checking WabiSabi/status)

---> critical phase

[Suite] calls WabiSabi/ready-to-sign (multiple for each Alice/Bob)

[Suite + Trezor] sign tx using collection of data from WabiSabi/ready-to-sign

[Suite] calls WabiSabi/transaction-signature (multiple for each Alice/Bob)

---> critical phase end

-- SESSION END --

@szymonlesisz
Copy link
Author

Unknown:

  • When/how to use WabiSabi/credential-issuance / ArenaClient.ReissueCredentialAsync

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment