Skip to content

ChorusOne/cosmos-multisig-tool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cosmoshub Multisig Tool

Forked from cosmos/cosmos-multisig-ui. Adds functionality to auto-generate transactions from a CSV file.

Setup and Run

# Run dgraph standalone docker image
$ docker run --rm -it -p "8080:8080" -p "9080:9080" -p "8000:8000" -v ~/dgraph:/dgraph "dgraph/standalone:v21.03.2"

# Run migrations
$ curl -X POST localhost:8080/admin/schema --data-binary '@db-schema.graphql'

# Create .env.local file
$ cp .env.sample .env.local

# Install Node packages
# Node version: v18.20.3
$ npm i

# Start the web application
$ npm run  dev

# Vist http://localhost:3000 to access the multisig manager UI.
# Here you can create new multisigs and manage existing ones.
# This UI also allows you manually create multisig transactions.

# To automate transaction creation, we use the cosmosig CLI tool.

# Generate transactions programmatically by providing a CSV file
# containing the payout information. The CSV file must have columns
# as the superset of the columns present in payout.sample.csv.
$ ./cosmosig/cli/cosmosig.py payout new payout.sample.csv

# View the generated transactions
# Note the ID of the transaction which you'd like to start from
# the output of this command.
$ ./cosmosig/cli/cosmosig.py payout status

# Start a transaction
$ ./cosmosig/cli/cosmosig.py transaction start <tx-id>
# The output of this command will contain a link to the UI
# with the desired trasaction generated and ready to be signed
# by multiple parties.

# Note: at any given time, we can only have a single transaction in 
# progress. This means we cannot start manother transaction
# simultaneously without completing the already started transaction.
# This is done to avoid `sequenceNumber` conflicts between transactions.

# Once a transaction has been signed by all the required parties
# and ultimately broadcasted, we need to mark it as complete for
# the cosmosig tool. Note that we don't need to provide any ID, because
# there can be only be at most 1 transaction in progress.
$ ./cosmosig/cli/cosmosig.py transaction complete

# Repeat the `transaction start` and `transaction complete` steps for all
# the remaning transactions in the payout.

About

Multisig Tool for Cosmos Rebate Payments

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages