Client for Monero multisig broker (POC).
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Onion Ltd 07a759a8ac
Add workflows
4 months ago
clients Initial commit 4 months ago
utils Initial commit 4 months ago
workflows Add workflows 4 months ago
.gitignore Initial commit 4 months ago
Makefile Initial commit 4 months ago
README.md Update README 4 months ago
app.go Initial commit 4 months ago
commands.go Initial commit 4 months ago
go.mod Initial commit 4 months ago
go.sum Initial commit 4 months ago
main.go Initial commit 4 months ago

README.md

Monero Multisig Client

A proof-of-concept client for Monero Multisig Broker.

Installation

$ go get https://git.wownero.com/onionltd/monero-multisig-client-poc

Usage

NAME:
   mmc - Monero Multisig client (proof-of-concept)

USAGE:
   mmc [global options] command [command options] [arguments...]

VERSION:
   0.1

COMMANDS:
   prepare   Prepare a multisig wallet
   transfer  Issue a transfer from the multisig wallet

GLOBAL OPTIONS:
   --wallet-rpc value  Monero Wallet RPC URI (default: "http://localhost:18082/json_rpc")
   --help, -h          show help (default: false)
   --version, -v       print the version (default: false)

Workflows

prepare command

prepare diagram

digraph G {
    label = "prepare diagram"
    "init" -> "is_multisig"
    "is_multisig" -> "push_prepare_multisig" [label="no"]
    "is_multisig" -> "done" [label="yes"]
    "push_prepare_multisig" -> "wait_peers_prepare_multisig"
    "wait_peers_prepare_multisig" -> "push_make_multisig"
    "push_make_multisig" -> "wait_peers_make_multisig"
    "wait_peers_make_multisig" -> "push_multisig_address"
    "push_multisig_address" -> "wait_peers_multisig_address"
    "wait_peers_multisig_address" -> "done"
}

transfer command

prepare diagram

digraph G {
    label = "transfer diagram"
    subgraph cluster_0 {
        label = "sync_multisig_wallet";
        color = "blue";
        "push_export_multisig_info" -> "wait_peers_export_multisig_info";
        "wait_peers_export_multisig_info" -> "import_multisig_info";
    }
    "init" -> "is_multisig";
    "is_multisig" -> "push_export_multisig_info" [label="yes"];
    "is_multisig" -> "done" [label="no"];

    "import_multisig_info" -> "push_transfer";
    "push_transfer" -> "wait_peer_sign_transfer";
    "wait_peer_sign_transfer" -> "push_submit_transfer";
    "push_submit_transfer" -> "done";
}