npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@mirror-protocol/mirrorcli

v2.0.2

Published

Command-line interface for Mirror Protocol

Downloads

13

Readme

mirrorcli

Command-line interface for Mirror Protocol on Terra.

Table of Contents

Installation

Requirements

mirrorcli can be installed off NPM.

$ npm install -g @mirror-protocol/mirrorcli

The entrypoint mirrorcli should then be available in your path:

Configuration

On first launch, mirrorcli will generate a ~/.mirrorclirc.json in your $HOME directory, which will be used in subsequent sessions to specify settings such as LCD provider, gas prices for fee estimation, as well as contract addresses. It will come pre-configured with the official contracts for the mainnet version of Mirror on its columbus-4 setting.

The following instructions show you how to modify settings using the tequila-0004 network by default:

mirrorcli will create a configuration file in your home directory: $HOME/.mirrorclirc.json.

Specifying LCD settings

Each network config should define how to connect to the Terra blockchain via LCD parameters.

{
  "networks": {
    "tequila-0004": {
      "lcd": {
        "chainId": "tequila-0004",
        "url": "https://tequila-lcd.terra.dev",
        "gasPrices": {
          "uluna": 0.15,
          "usdr": 0.1018,
          "uusd": 0.15,
          "ukrw": 178.05,
          "umnt": 431.6259
        },
        "gasAdjustment": 1.2
      },
      ...
    }
  }
}

Specifying Contracts

Each network configuration should point to the correct Mirror core contract addresses.

{
  "networks": {
    "tequila-0004": {
      ...
      "contracts": {
        "collector": "terra1v046ktavwzlyct5gh8ls767fh7hc4gxc95grxy",
        "community": "terra10qm80sfht0zhh3gaeej7sd4f92tswc44fn000q",
        "factory": "terra10l9xc9eyrpxd5tqjgy6uxrw7dd9cv897cw8wdr",
        "gov": "terra12r5ghc6ppewcdcs3hkewrz24ey6xl7mmpk478s",
        "mint": "terra1s9ehcjv0dqj2gsl72xrpp0ga5fql7fj7y3kq3w",
        "oracle": "terra1uvxhec74deupp47enh7z5pk55f3cvcz8nj4ww9",
        "staking": "terra1a06dgl27rhujjphsn4drl242ufws267qxypptx",
        "terraswap": "terra18qpjm4zkvqnpjpw0zn0tdr8gdzvt8au35v45xf"
      },
    ...
    }
  }
}

Specify the Network [IMPORTANT]

By default, mirrorcli will use the network setting for columbus-4 configured in ~/.mirrorclirc.json. You can direct mirrorcli to use a different network configuration by changing the value of the MIRRORCLI_NETWORK environment variable.

Example

MIRRORCLI_NETWORK=tequila-0004 mirrorcli x mint [deposit ...]

OR

export MIRRORCLI_NETWORK=tequila-0004
mirrorcli x mint [deposit ...]

Usage

mirrorcli allows you to:

  • execute state-changing functions on Mirror and Terraswap smart contracts
  • query readonly data endpoints on Mirror and Terraswap smart contracts

Execute

USAGE: mirrorcli exec|x [options] [command]

Execute a function on a smart contract

Options:
  --yaml                                        Encode result as YAML instead of JSON
  -y,--yes                                      Sign transaction without confirming (yes)
  --home <string>                               Directory for config of terracli
  --from <key-name>                             *Name of key in terracli keyring
  --generate-only                               Build an unsigned transaction and write it to stdout
  -G,--generate-msg                             Build an ExecuteMsg (good for including in poll)
  --base64                                      For --generate-msg: returns msg as base64
  -b,--broadcast-mode <string>                  Transaction broadcasting mode (sync|async|block) (default: sync) (default: "sync")
  --chain-id <string>                           Chain ID of Terra node
  -a,--account-number <int>                     The account number of the signing account (offline mode)
  -s,--sequence <int>                           The sequence number of the signing account (offline mode)
  --memo <string>                               Memo to send along with transaction
  --fees <coins>                                Fees to pay along with transaction
  --gas <int|auto>                              *Gas limit to set per-transaction; set to "auto" to calculate required gas automatically
  --gas-adjustment <float>                      Adjustment factor to be multiplied against the estimate returned by the tx simulation
  --gas-prices <coins>                          Gas prices to determine the transaction fee (e.g. 10uluna,12.5ukrw)
  -h, --help                                    display help for command

Commands:
  collector [options]     Mirror Collector contract functions
  community [options]     Mirror Community contract functions
  factory [options]       Mirror Factory contract functions
  gov [options]           Mirror Gov contract functions
  mint [options]          Mirror Mint contract functions
  oracle [options]        Mirror Oracle contract functions
  staking [options]       Mirror Staking contract functions
  airdrop [options]       Mirror Airdrop contract functions [mainnet only]
  terraswap|ts [options]  Terraswap contract functions
  token [options]         Terraswap CW20 Token contract functions
  help [command]          display help for command

Query

USAGE: mirrorcli query|q [options] [command]

Run a smart contract query function

Options:
  -h, --help              display help for command

Commands:
  collector [options]     Mirror Collector contract queries
  community [options]     Mirror Community contract queries
  factory [options]       Mirror Factory contract queries
  gov [options]           Mirror Gov contract queries
  mint [options]          Mirror Mint contract queries
  oracle [options]        Mirror Oracle contract queries
  staking [options]       Mirror Staking contract queries
  airdrop [options]       Mirror Airdrop contract queries [mainnet only]
  terraswap|ts [options]  Terraswap contract queries
  token [options]         Terraswap CW20 Token contract queries
  help [command]          display help for command

Examples

This section illustrates the usage of mirrorcli through some use cases. All examples assume you have a key in terracli keychain called test1.

Adjusting CDP collateral ratio via mint / burn

The Mirror Web App currently requires you to open a new position if you want to mint more mAssets, and burn all your minted tokens and close your position completely. You can do additional mint / burn operations against an existing position to adjust your collateralization ratio by:

Minting

mirrorcli x mint mint $POSITION_ID 10000000mAAPL --from test1 --gas auto --fees 100000uluna --b block

Burning

mirrorcli x mint burn $POSITION_ID 10000000mAAPL --from test1 --gas auto --fees 100000uluna --b block

Creating a new poll

The following create a community-pool spend poll:

export RECIPIENT=terra1...
mirrorcli x gov create-poll \
  --title 'Community pool spend' \
  --desc 'Spends some funds from community' \
  --deposit 512000000 \
  --link 'https://link.to/more-details' \
  --execute-to $(mirrorcli c get contracts.community) \
  --execute-msg $(mirrorcli x community spend $RECIPIENT 100000 -G) \
  --from test1 \
  --gas 500000 \
  --fees 20000000uluna \
  -b block

Note how the output of $(mirrorcli x community spend $RECIPIENT 100000 -G) is used to generate a Mirror message which can be used inside other mirrorcli functions that accept messages.

License

This software is licensed under the Apache 2.0 license. Read more about it here.

© 2020 Mirror Protocol