Auto-compounder app for Cosmos blockchains using Authz

Overview

REStake

REStake allows delegators to grant permission for a validator to compound their rewards, and provides a script validators can run to find their granted delegators and send the compounding transactions automatically.

REStake is also a convenient staking tool, allowing you to claim and compound your rewards individually or in bulk. This can save transaction fees and time, and many more features are planned.

Try it out at restake.app.

How it works / Authz

Authz is a new feature for Tendermint chains which lets you grant permission to another wallet to carry out certain transactions for you. These transactions are sent by the grantee on behalf of the granter, meaning the validator will send and pay for the TX, but actions will affect your wallet (such as claiming rewards).

REStake specifically lets you grant a validator permission to send WithdrawDelegatorReward and Delegate transactions for their validator only (note WithdrawDelegatorReward is technically not restricted to a single validator). The validator cannot send any other transaction types, and has no other access to your wallet. You authorize this using Keplr as normal.

A script is also provided which allows a validator to automatically search their delegators, check each for the required grants, and if applicable carry out the claim and delegate transactions on their behalf in a single transaction. This script should be run daily, and the time you will run it can be specified when you add your operator.

Limitations

  • As of writing, Ledger is unable to send the necessary transactions to enable Authz. This is purely due to the way transactions are sent to a Ledger device and a workaround should be possible soon.
  • Authz is also not fully supported yet. Many chains are yet to update. The REStake UI will fall back to being a manual staking app with useful manual compounding features.
  • Currently REStake needs the browser extension version of Keplr, but WalletConnect and Keplr iOS functionality will be added ASAP.

Become an operator

Becoming an operator is extremely easy. You need to do three things:

Setup a bot wallet

Generate a new hot wallet you will use to automatically carry out the staking transactions. The mnemonic will need to be provided to the script so use a dedicated wallet and only keep enough funds for transaction fees. The ONLY menmonic required here is for the hot wallet, do not put your validator operator mnemonic anywhere.

You only need a single mnemonic for multiple Cosmos chains, and the script will check each network in the networks.json file for a matching bot address.

Derivation Paths (IMPORTANT)

Right now, the REStake autostaking script uses the standard 118 derivation path by default. Some networks prefer a different path and apps like Keplr will honour this. The address the autostake script uses might not match Keplr.

As there are existing operators using the 118 path, operators will need to opt in to the correct path when they want to upgrade. New operators should use the correct path before they get grants.

The correct path can be set in one of two ways using a config override file. You should use "correctSlip44": true if possible.

{
  "desmos": {
    "prettyName": "Desmos 852",
    "autostake": {
      "correctSlip44": true, // Use the correct slip44 path from chain-registry
      "slip44": 852 // Alternatively set a specific slip44 path
    }
  }
}

In the future, correctSlip44 will become the default and you will need to set slip44 explicitely if you want to use the 118 path.

Setup the autostaking script and run daily

You can run the autostaking script using docker-compose or using npm directly. In both cases you will need to provide your mnemonic in a MNEMONIC environment variable.

Instructions are provided for Docker Compose and will be expanded later.

Install Docker and Docker Compose

Best bet is to follow the Docker official guides. Install Docker first, then Docker Compose.

Docker: docs.docker.com/get-docker

Docker Compose: docs.docker.com/compose/install

Clone the repository and setup .env

Clone the repository and copy the sample .env file ready for your mnemonic.

git clone https://github.com/eco-stake/restake
cd restake
cp .env.sample .env

Populate your new .env file with your mnemonic.

Running the script manually

Running the autostake script manually is then simple.

Note you might need sudo depending on your docker install.

docker-compose run --rm app npm run autostake

Pass a network name to run the script for a single network at a time.

docker-compose run --rm app npm run autostake osmosis

Updating your local version

REStake is MVP. Very MVP. Updates are happening all the time and there are bugs that still need fixing. Make sure you update often.

Update your local repository and pre-build your Docker containers with the following commands:

git pull
docker-compose run --rm app npm install
docker-compose build --no-cache

Setting up Cron to make sure the script runs daily

You should setup your script to run at the same time each day. 2 methods are described below; using crontab or using systemd-timer.

In both cases, ensure your system time is correct and you know what time the script will run in UTC, as that will be required later. Both examples below are for 21:00.

Don't forget to update often!

Using crontab

crontab -e

0 21 * * * /bin/bash -c "cd restake && docker-compose run --rm app npm run autostake" > ./restake.log 2>&1

Using systemd-timer

Systemd-timer allow to run a one-off service with specified rules.

Create a systemd unit file

The unit file describe the application to run. We define a dependency with the timer with the Wants statement.

sudo vim /etc/systemd/system/restake.service
[Unit]
Description=stakebot service with docker compose
Requires=docker.service
After=docker.service
Wants=restake.timer

[Service]
Type=oneshot
WorkingDirectory=/path/to/restake
ExecStart=/usr/bin/docker-compose run --rm app npm run autostake

[Install]
WantedBy=multi-user.target
Create a systemd timer file

The timer file defines the rules for running the restake service every day. All rules are described in the systemd documentation.

sudo vim /etc/systemd/system/restake.timer
[Unit]
Description=Restake bot timer

[Timer]
AccuracySec=1min
OnCalendar=*-*-* 21:00:00

[Install]
WantedBy=timers.target
Enable and start everything
systemctl enable restake.service
systemctl enable restake.timer
systemctl start restake.timer
Check your timer

$ systemctl status restake.timer

 restake.timer - Restake bot timer
     Loaded: loaded (/etc/systemd/system/restake.timer; enabled; vendor preset: enabled)
     Active: active (waiting) since Sun 2022-03-06 22:29:48 UTC; 2 days ago
    Trigger: Wed 2022-03-09 21:00:00 UTC; 7h left
   Triggers: ● restake.service

$ systemctl status restake.service

● restake.service - stakebot service with docker compose
     Loaded: loaded (/etc/systemd/system/restake.service; enabled; vendor preset: enabled)
     Active: inactive (dead) since Tue 2022-03-08 21:00:22 UTC; 16h ago
TriggeredBy:  restake.timer
    Process: 86925 ExecStart=/usr/bin/docker-compose run --rm app npm run autostake (code=exited, status=0/SUCCESS)
   Main PID: 86925 (code=exited, status=0/SUCCESS)

Overriding networks config locally/use your own node

You will likely want to customise your networks config, e.g. to set your own node URLs to ensure your autocompounding script completes successfully.

Create a src/networks.local.json file and specify the networks you want to override. The below is just an example, you should only override a config if you need to.

{
  "osmosis": {
    "prettyName": "Osmosis with Fees",
    "restUrl": [
      "https://rest.validator.com/osmosis"
    ],
    "rpcUrl": [
      "https://rpc.validator.com/osmosis"
    ],
    "gasPrice": "0.001uosmo",
    "autostake": {
      "batchTxs": 69,
      "batchQueries": 50,
      "delegatorTimeout": 5000
    }
  },
  "desmos": {
    "prettyName": "Desmos 118",
    "autostake": {
      "correctSlip44": true
    }
  },
  "cosmoshub": {
    "enabled": false
  }
}

Any values you specify will override the networks.json file. These are examples, you can override as much or little as you need.

Arrays will be replaced and not merged. The file is .gitignore'd so it won't affect upstream updates.

Note that REStake requires a node with indexing enabled and minimum gas prices matching the networks.json gas price (or your local override).

Submiting your operator

Setup your REStake operator

You now need to update the Validator Registry to add your operator information to any networks you want to auto-compound for. Check the README and existing validators for examples, but the config for a network looks like this:

{
  "name": "akash",
  "address": "akashvaloper1xgnd8aach3vawsl38snpydkng2nv8a4kqgs8hf",
  "restake": {
    "address": "akash1yxsmtnxdt6gxnaqrg0j0nudg7et2gqczud2r2v",
    "run_time": [
      "09:00",
      "21:00"
    ],
    "minimum_reward": 1000
  }
},

address is your validator's address, and restake.address is the address from your new hot wallet you generated earlier.

restake.run_time is the time in UTC that you intend to run your bot, and there are a few options. Pass a single time, e.g. 09:00 to specify a single run at 9am UTC. Use an array for multiple specified times, e.g. ["09:00", "21:00"]. Use an interval string for multiple times per hour/day, e.g. "every 15 minutes".

restake.minimum_reward is the minimum reward to trigger autostaking, otherwise the address be skipped. This could be set higher for more frequent restaking. Note this is in the base denomination, e.g. uosmo.

Repeat this config for all networks you want to REStake for.

Note that the restake.address is the address which will be granted by the delegator in the UI to carry out their restaking transactions.

Submit your operator

You can now submit your Validator Registry update to that repository in a pull request which will be merged as soon as possible. REStake automatically updates within 15 minutes of changes being merged.

Adding/updating a network

Network information is sourced from the Chain Registry via the registry.cosmos.directory API. The networks.json defines which chains appear in REStake; so long as the chain name matches the directory name from the Chain Registry, all chain information will be sourced automatically.

To add a network to REStake, add the required information to networks.json as follows:

{
  "name": "osmosis",
  "gasPrice": "0.025uosmo",
  "authzSupport": true
}

Note that most attributes from Chain Registry can be overriden by defining the camelCase version in networks.json.

Running the UI

Run the UI using docker with one line:

docker run -p 80:80 -t ghcr.io/eco-stake/restake

Alternative run from source using docker-compose up or npm start.

Ethos

The REStake UI is both validator and network agnostic. Any validator can be added as an operator and run this tool to provide an auto-compounding service to their delegators, but they can also run their own UI if they choose and adjust the branding to suit themselves.

For this to work, we need a common source of chain information, and a common source of 'operator' information. Chain information is sourced from the Chain Registry, via an API provided by cosmos.directory. Operator information lives in the Validator Registry.

Now we have a common source of operator information, applications can integrate with REStake validators easier using the data directly from GitHub, or via the cosmos.directory project.

Disclaimer

The initial version of REStake was built quickly to take advantage of the new authz features. I'm personally not a React or Javascript developer, and this project leans extremely heavily on the CosmJS project and other fantastic codebases like Keplr Wallet and Osmosis Zone frontend. It functions very well and any attack surface is very limited however. Any contributions, suggestions and ideas from the community are extremely welcome.

ECO Stake 🌱

ECO Stake is a climate positive validator, but we care about the Cosmos ecosystem too. We built REStake to make it easy for all validators to run an autocompounder with Authz, and it's one of many projects we work on in the ecosystem. Delegate with us to support more projects like this.

Comments
  • Restake doesn't work when accountNumber is 0

    Restake doesn't work when accountNumber is 0

    Everything on Restake works for me. No problem with any chain i'm using. But for Teritori i can not enable Restake. I can claim, delegate or redelegate TORI, but if i try to enable Restake, the transaction always fails with the following Error message:

    Failed to broadcast: Error when broadcasting tx E7338FC0EA356CF183E317172473584F75CB4DF359975056FD4DCB660331300C at height 0. Code: 4; Raw log: signature verification failed; please verify account number (0) and chain-id (teritori-1): unauthorized

    Here are the data details:

    { "txBody": { "messages": [ { "granter": "tori1ss4krazunlfnc8munks4uvsa5c42vlwrgy4hyq", "grantee": "tori1e44rluarkdw56dy2turnwjtvtg4wqvs0slzdv4", "grant": { "authorization": { "typeUrl": "/cosmos.staking.v1beta1.StakeAuthorization", "value": "EjQKMnRvcml2YWxvcGVyMXRqaDZ3cGo2ZDlrcGtmcmN5Z2xrc2V2a2hodGs5Z203Y3c3ZWt1IAE=" }, "expiration": "2023-10-06T22:00:00.000Z" } } ], "memo": "", "timeoutHeight": "0", "extensionOptions": [], "nonCriticalExtensionOptions": [] }, "authInfo": { "signerInfos": [ { "publicKey": { "typeUrl": "/cosmos.crypto.secp256k1.PubKey", "value": "CiEC2TNI/UsuVsMde9SY8ZJqxJ1B4bFQp5ivUMLvsHtfHls=" }, "modeInfo": { "single": { "mode": "SIGN_MODE_DIRECT" } }, "sequence": "9" } ], "fee": { "amount": [ { "denom": "utori", "amount": "0" } ], "gasLimit": "96175", "payer": "", "granter": "" } }, "chainId": "teritori-1", "accountNumber": "0" }

    I already deleted the Teritori network from Keplr and reinstalled it from scratch, but the error remains. I also tried diefferent validators, but it's the same problem for all of them. Again: Anything else works perfectly!

    opened by netlinx2 19
  • Handle Ledger devices

    Handle Ledger devices

    I'm learning that when you send a TX you can provide it in two structures; Amino (legacy) and Protobuf. Keplr uses Protobuf if the wallet supports it, otherwise falls back to Amino. Typically transactions are sent in Protobuf format, and the blockchain (or Keplr, CosmJS..?) automatically converts them to Amino if it knows how to do so.

    Authz transactions aren't supported for this conversion currently and REStake only send the Protobuf version. More importantly though, it doesn't seem like it's possible to send the right message structure based on the discussion in the below issues.

    I need to spend a bit of time working out if it's possible to work around this, or if we have to wait for a chain upgrade to an unreleased SDK version.

    Related:

    https://github.com/cosmos/cosmjs/issues/1026

    https://github.com/cosmos/cosmos-sdk/issues/11190

    https://github.com/cosmos/cosmos-sdk/pull/11224

    enhancement 
    opened by tombeynon 10
  • Setup failed for desmos chain.

    Setup failed for desmos chain.

    Might be a dump question. With the same mnemonic, I was able to set up the restake for osmosis chain, but was not able to set up on desmos chain.

    By placing the corresponding osmo... address in the "botAddress" field in networks.json, It seems to give me a correct output:

    Osmosis bot address is osmo145a2r0yurzkv43p2arhrwsqcy80pxg7guhadh2
    Using REST URL https://lcd-osmosis.blockapsis.com
    Using RPC URL https://osmosis.validator.network
    You are using public nodes, script may fail with many delegations. Check the README to use your own
    Running autostake
    Bot balance is 0 uosmo
    Bot balance is too low
    

    But then when I did the same for desmos (of course using the corresponding desmos... address), it fails:

    Desmos bot address is desmos145a2r0yurzkv43p2arhrwsqcy80pxg7gq5rdkq
    Not an operator
    Skipping
    

    Any ideas why that would be the case? Thank you

    opened by tpmmthomas 9
  • Keplr address doesn't match autostaking script address

    Keplr address doesn't match autostaking script address

    Had reports of this for Desmos, maybe others. When your autostaking mnemonic is imported into Keplr, the address matches for most networks but some it does not. E.g. Desmos.

    For the purpose of running the script, the address spat out by npm run autostake is the correct one. This is the one you should fund and the script will send TXs from. I'm not sure how to actually access this in Keplr as of writing but it's probably derivation path related.

    If you see this on any other networks, please add to this issue. I'll put a note in the README asap.

    bug 
    opened by tombeynon 8
  • Fixed decimals for non-standard networks

    Fixed decimals for non-standard networks

    TLDR: Added an optional decimals field to network.json, decimals default to 1e6 unless it is overridden (in the case of evmos 1e18).

    Unsure of how fix the error below, some insight would be appreciated.

    [ ] Fix Failed to broadcast: Unsupported type: '/ethermint.types.v1.EthAccount' Error Screen Shot 2022-03-06 at 10 48 55 AM

    opened by evmosius 8
  • Error: Module not found

    Error: Module not found

    Hi, I am trying to become an operator of restake but I am not able to run the docker image successsfully. I already have latest docker and docker-compose installed on an Ubuntu machine. When I run sudo docker-compose run --rm app npm run autostake, the following error occurs:

    `

    [email protected] autostake node scripts/autostake.mjs

    node:internal/errors:465 ErrorCaptureStackTrace(err); ^

    Error [ERR_MODULE_NOT_FOUND]: Cannot find package '@cosmjs/proto-signing' imported from /usr/src/app/scripts/autostake.mjs at new NodeError (node:internal/errors:372:5) at packageResolve (node:internal/modules/esm/resolve:907:9) at moduleResolve (node:internal/modules/esm/resolve:956:20) at defaultResolve (node:internal/modules/esm/resolve:1172:11) at ESMLoader.resolve (node:internal/modules/esm/loader:580:30) at ESMLoader.getModuleJob (node:internal/modules/esm/loader:294:18) at ModuleWrap. (node:internal/modules/esm/module_job:80:40) at link (node:internal/modules/esm/module_job:78:36) { code: 'ERR_MODULE_NOT_FOUND' }

    Node.js v17.7.1 ERROR: 1 ` May I know how to resolve this problem? Thank you.

    opened by tpmmthomas 7
  • Keplr Suggest Chain for unsupported chains

    Keplr Suggest Chain for unsupported chains

    Keplr only supports a few chains out of the box. I get an error There is no chain info for cheqd-mainnet-1 for Cheqd for example. We need to use the Suggest Chain feature to hook this up. Info can come from Chain Registry, and cosmos.directory APIs.

    Adding issue for my tracking but this will hold up #76 and others for now. @Galadrin I think we chatted about this too.

    opened by tombeynon 7
  • Derivation path for Sentinel

    Derivation path for Sentinel

    Hey guys,

    I have a warning for sentinel about not using the preferred derivation path, though Keplr shows me the same wallet address. When setting

     "autostake": {
          "correctSlip44": true
        }
    

    and running the script again, it logs a bot wallet address I don't know about (i.e. not the one showing up in keplr with this mnemonic. Could you check that? Had the same warning for lumnetwork, and in this case the displayed wallet did match the one in keplr, so for lum it seems indeed correct.

    opened by HS-Joe 6
  • Use feegrant for paying fees. Remove fee burden on the validators.

    Use feegrant for paying fees. Remove fee burden on the validators.

    Fee-grant enables one to use fees from other accounts. Here instead of using hot wallet for fees, let delegators pay fees for their transactions. If there are 100k delegators, fees for a validator would be very high. It's a benefit for delegators, and competely optional for them. So they can pay fees

    enhancement 
    opened by anilCSE 6
  • Update package.json

    Update package.json

    NODE_OPTIONS=--openssl-legacy-provider produces error: node: --openssl-legacy-provider is not allowed in NODE_OPTIONS at least on node 16.X (Current LTS)

    opened by AutoStake-net 5
  • Gas usage optimization

    Gas usage optimization

    I would like to propose a change that might slightly optimize gas usage by reducing the number of messages in a transaction. It is not necessary to collect the rewards first and then make the delegation, it is just enough to delegate.

    Pros: reduced costs for validators who serve a large number of delegators. Cons: the transaction becomes less informative. It may not be clear from which funds the delegation comes. Often explorers have an "auto claim rewards" field, which partially resolves this problem.

    Examples:

    1. Get reward + delegate (current implementation)
    2. Delegate only (current propose)
    opened by mr-kenikh 5
  • Showing voted even without account specified

    Showing voted even without account specified

    Screen Shot 2022-12-12 at 11 24 12 PM When a keplr wallet user has multiple Authz grantee accounts. The user can submit a 'vote' without needing to specify which grantee account to vote from.

    Result is REStake UI shows user voted though on chain action has not been taken resulting in...confusion.

    When account is specified in dropdown then vote is successful (same with UI).

    opened by Hydepwns 0
  • Re-enable Stride Authz

    Re-enable Stride Authz

    Draft until the following URL returns a successful response: https://rest.cosmos.directory/stride/cosmos/authz/v1beta1/grants/granter/stride19d3c8zvvg8eyvfehz28retuha6lqfq4qdhuzcv?pagination.limit=100

    opened by tombeynon 0
  • Issue when getting grants in Konstellation Chain

    Issue when getting grants in Konstellation Chain

    When "Checking addresses for grants.. ", got following response after the address for each address:

    ERROR failed to get grants: Request failed with status code 500

    Any clue?

    opened by freemanhk 0
  • REBUS: Failed to broadcast: Request failed with status code 503

    REBUS: Failed to broadcast: Request failed with status code 503

    Getting various errors on REBUS network.

    Mainly: Failed to broadcast: Request failed with status code 503

    Can't Delegate, Claim or manual compound.

    Also the "Failed to get Rewards" message,

    and

    Also getting as in issue #632 Failed to broadcast: Error when broadcasting tx ACC4A93222EBEBA814C6F85772081CB24F50221D08AD511B6A440A067F5FE395 at height 0. Code: 8; Raw log: pubKey does not match signer address rebus1lte...... with signer index: 0: invalid pubkey

    Screenshot_2022-11-09_05-55-16

    Screenshot_2022-11-09_05-58-02

    opened by EddieV3 0
  • With the new UI, staking more tokens requires more steps

    With the new UI, staking more tokens requires more steps

    With the previous UI, adding more tokens to the actual stake was pretty easy by using the drop down and 'delegating more', now, it requires to open the validator information, clicking on the name, then selecting delegate, and then doing the delegation.

    I think it was clearer when it was provided direct link in the drop-down menu

    opened by 3venturesio 1
Releases(v2.9.5)
  • v2.9.5(Dec 23, 2022)

    What's Changed

    • Configurable networks.json Override Filepath by @s4bs in https://github.com/eco-stake/restake/pull/688
    • Sort public node operators first in listings by @tombeynon in https://github.com/eco-stake/restake/pull/689
    • Add Acrechain support by @tombeynon in https://github.com/eco-stake/restake/pull/690

    New Contributors

    • @s4bs made their first contribution in https://github.com/eco-stake/restake/pull/688

    Full Changelog: https://github.com/eco-stake/restake/compare/v2.9.4...v2.9.5

    Source code(tar.gz)
    Source code(zip)
  • v2.9.4(Dec 15, 2022)

    What's Changed

    • chore: update Desmos Authz support by @RiccardoM in https://github.com/eco-stake/restake/pull/687
    • update network.json to include Orai Network by @biafranode in https://github.com/eco-stake/restake/pull/662

    New Contributors

    • @biafranode made their first contribution in https://github.com/eco-stake/restake/pull/662

    Full Changelog: https://github.com/eco-stake/restake/compare/v2.9.3...v2.9.4

    Source code(tar.gz)
    Source code(zip)
  • v2.9.3(Nov 26, 2022)

    What's Changed

    • Fix generic grant REStake status by @tombeynon in https://github.com/eco-stake/restake/pull/683

    Full Changelog: https://github.com/eco-stake/restake/compare/v2.9.2...v2.9.3

    Source code(tar.gz)
    Source code(zip)
  • v2.9.2(Nov 25, 2022)

    What's Changed

    • Handle proposals with no content by @tombeynon in https://github.com/eco-stake/restake/pull/680
    • Temporarily disable Stride Authz support by @tombeynon in https://github.com/eco-stake/restake/pull/681
    • Handle invalid grant deny list by @tombeynon in https://github.com/eco-stake/restake/pull/682

    Full Changelog: https://github.com/eco-stake/restake/compare/v2.9.1...v2.9.2

    Source code(tar.gz)
    Source code(zip)
  • v2.9.1(Nov 12, 2022)

    What's Changed

    • Autostake: Handle StakeGrant deny_list instead of allow_list by @tombeynon in https://github.com/eco-stake/restake/pull/667
    • Ensure config resets when running for multi chains by @tombeynon in https://github.com/eco-stake/restake/pull/668
    • Add Jackal by @tombeynon in https://github.com/eco-stake/restake/pull/676

    Full Changelog: https://github.com/eco-stake/restake/compare/v2.9.0...v2.9.1

    Source code(tar.gz)
    Source code(zip)
  • v2.9.0(Nov 1, 2022)

    What's Changed

    • Mobile UI overhaul by @tombeynon in https://github.com/eco-stake/restake/pull/665
    • Enable Keplr Mobile by @tombeynon in https://github.com/eco-stake/restake/pull/625
    • Show last REStake time and relevant warnings by @tombeynon in https://github.com/eco-stake/restake/pull/652
    • Add note to tear down docker images by @dylanschultzie in https://github.com/eco-stake/restake/pull/647
    • Update Juno autostake batchTxs default by @tombeynon in https://github.com/eco-stake/restake/pull/654
    • Create README_TURKISH.md by @koltigin in https://github.com/eco-stake/restake/pull/657
    • Add Eth keplr features if slip44 is 60 by @tombeynon in https://github.com/eco-stake/restake/pull/663
    • Add ownerAddress to CosmosHub by @tombeynon in https://github.com/eco-stake/restake/pull/664

    New Contributors

    • @koltigin made their first contribution in https://github.com/eco-stake/restake/pull/657

    Full Changelog: https://github.com/eco-stake/restake/compare/v2.8.4...v2.9.0

    Source code(tar.gz)
    Source code(zip)
  • v2.8.4(Oct 13, 2022)

    What's Changed

    • Improve leap not supported error by @tombeynon in https://github.com/eco-stake/restake/pull/642
    • Disable Evmos ledger support by @tombeynon in https://github.com/eco-stake/restake/pull/643
    • Rebus support by @tombeynon in https://github.com/eco-stake/restake/pull/644
    • Add rebus by @joshlopes in https://github.com/eco-stake/restake/pull/636

    Full Changelog: https://github.com/eco-stake/restake/compare/v2.8.3...v2.8.4

    Source code(tar.gz)
    Source code(zip)
  • v2.8.3(Oct 10, 2022)

    What's Changed

    • Remove amino conversion log by @tombeynon in https://github.com/eco-stake/restake/pull/637
    • Handle Injective pubkey type by @tombeynon in https://github.com/eco-stake/restake/pull/641

    Full Changelog: https://github.com/eco-stake/restake/compare/v2.8.2...v2.8.3

    Source code(tar.gz)
    Source code(zip)
  • v2.8.2(Oct 6, 2022)

    What's Changed

    • Amino authz improvements by @tombeynon in https://github.com/eco-stake/restake/pull/631
    • Add fallback block path for REST check by @tombeynon in https://github.com/eco-stake/restake/pull/634

    Full Changelog: https://github.com/eco-stake/restake/compare/v2.8.1...v2.8.2

    Source code(tar.gz)
    Source code(zip)
  • v2.8.1(Oct 5, 2022)

    What's Changed

    • Adjust Osmosis MsgExec amino limit by @tombeynon in https://github.com/eco-stake/restake/pull/630

    Full Changelog: https://github.com/eco-stake/restake/compare/v2.8.0...v2.8.1

    Source code(tar.gz)
    Source code(zip)
  • v2.8.0(Oct 5, 2022)

    What's Changed

    • Add Keplr Mobile (disabled) by @tombeynon in https://github.com/eco-stake/restake/pull/609
    • Enable Umee Authz Amino support by @tombeynon in https://github.com/eco-stake/restake/pull/626
    • Disable Osmosis amino authz MsgExec by @tombeynon in https://github.com/eco-stake/restake/pull/627
    • Update REST blocks endpoint by @tombeynon in https://github.com/eco-stake/restake/pull/628

    Full Changelog: https://github.com/eco-stake/restake/compare/v2.7.3...v2.8.0

    Source code(tar.gz)
    Source code(zip)
  • v2.7.3(Oct 4, 2022)

    What's Changed

    • Use proxy status when checking directory health by @tombeynon in https://github.com/eco-stake/restake/pull/622

    Full Changelog: https://github.com/eco-stake/restake/compare/v2.7.2...v2.7.3

    Source code(tar.gz)
    Source code(zip)
  • v2.7.2(Oct 4, 2022)

    What's Changed

    • Handle missing coinGeckoId when suggesting chain by @tombeynon in https://github.com/eco-stake/restake/pull/621

    Full Changelog: https://github.com/eco-stake/restake/compare/v2.7.1...v2.7.2

    Source code(tar.gz)
    Source code(zip)
  • v2.7.1(Oct 4, 2022)

    What's Changed

    • Enable Osmosis ledger support by @tombeynon in https://github.com/eco-stake/restake/pull/620

    Full Changelog: https://github.com/eco-stake/restake/compare/v2.7.0...v2.7.1

    Source code(tar.gz)
    Source code(zip)
  • v2.7.0(Oct 3, 2022)

    What's Changed

    • Add Leap Wallet by @tombeynon in https://github.com/eco-stake/restake/pull/598
    • Add Territori by @tombeynon in https://github.com/eco-stake/restake/pull/619

    Full Changelog: https://github.com/eco-stake/restake/compare/v2.6.10...v2.7.0

    Source code(tar.gz)
    Source code(zip)
  • v2.6.10(Sep 30, 2022)

    What's Changed

    • Handle no opts for connect by @tombeynon in https://github.com/eco-stake/restake/pull/616

    Full Changelog: https://github.com/eco-stake/restake/compare/v2.6.9...v2.6.10

    Source code(tar.gz)
    Source code(zip)
  • v2.6.9(Sep 30, 2022)

    What's Changed

    • Add timeout option for availableUrl check by @tombeynon in https://github.com/eco-stake/restake/pull/614
    • Update Chihuahua gas prices by @tombeynon in https://github.com/eco-stake/restake/pull/615
    • Link directly to validator profile tabs by @tombeynon in https://github.com/eco-stake/restake/pull/613

    Full Changelog: https://github.com/eco-stake/restake/compare/v2.6.8...v2.6.9

    Source code(tar.gz)
    Source code(zip)
  • v2.6.8(Sep 28, 2022)

    What's Changed

    • Add delegationsTimeout config and default to 20s by @tombeynon in https://github.com/eco-stake/restake/pull/610
    • Adjust autostake balance query timeout by @tombeynon in https://github.com/eco-stake/restake/pull/611
    • Adjust autostake bulk grants timeout by @tombeynon in https://github.com/eco-stake/restake/pull/612

    Full Changelog: https://github.com/eco-stake/restake/compare/v2.6.7...v2.6.8

    Source code(tar.gz)
    Source code(zip)
  • v2.6.7(Sep 26, 2022)

    What's Changed

    • Handle no result from autostaking by @tombeynon in https://github.com/eco-stake/restake/pull/605
    • Improve autostake error handling by @tombeynon in https://github.com/eco-stake/restake/pull/606
    • Add configurable throttle to autostake by @tombeynon in https://github.com/eco-stake/restake/pull/608

    Full Changelog: https://github.com/eco-stake/restake/compare/v2.6.5...v2.6.7

    Source code(tar.gz)
    Source code(zip)
  • v2.6.5(Sep 21, 2022)

    What's Changed

    • Fix variable assignment for generic grants by @tombeynon in https://github.com/eco-stake/restake/pull/604

    Full Changelog: https://github.com/eco-stake/restake/compare/v2.6.4...v2.6.5

    Source code(tar.gz)
    Source code(zip)
  • v2.6.4(Sep 21, 2022)

    What's Changed

    • Hide ledger tab when network supports by @tombeynon in https://github.com/eco-stake/restake/pull/603

    Full Changelog: https://github.com/eco-stake/restake/compare/v2.6.3...v2.6.4

    Source code(tar.gz)
    Source code(zip)
  • v2.6.3(Sep 21, 2022)

    What's Changed

    • Don't show ledger warning when disconnected by @tombeynon in https://github.com/eco-stake/restake/pull/602

    Full Changelog: https://github.com/eco-stake/restake/compare/v2.6.2...v2.6.3

    Source code(tar.gz)
    Source code(zip)
  • v2.6.2(Sep 21, 2022)

    What's Changed

    • Fix autostake import and remove log by @tombeynon in https://github.com/eco-stake/restake/pull/601
    • Enable Secret authz ledger support by @tombeynon in https://github.com/eco-stake/restake/pull/599

    Full Changelog: https://github.com/eco-stake/restake/compare/v2.6.1...v2.6.2

    Source code(tar.gz)
    Source code(zip)
  • v2.6.1(Sep 21, 2022)

    What's Changed

    • Fix build error by @tombeynon in https://github.com/eco-stake/restake/pull/600

    Full Changelog: https://github.com/eco-stake/restake/compare/v2.6.0...v2.6.1

    Source code(tar.gz)
    Source code(zip)
  • v2.6.0(Sep 21, 2022)

    What's Changed

    • Authz amino support by @tombeynon in https://github.com/eco-stake/restake/pull/597

    Full Changelog: https://github.com/eco-stake/restake/compare/v2.5.1...v2.6.0

    Source code(tar.gz)
    Source code(zip)
  • v2.5.1(Sep 13, 2022)

    What's Changed

    • Report last autostake failure correctly by @tombeynon in https://github.com/eco-stake/restake/pull/595
    • Handle early autostake failure correctly by @tombeynon in https://github.com/eco-stake/restake/pull/596

    Full Changelog: https://github.com/eco-stake/restake/compare/v2.5.0...v2.5.1

    Source code(tar.gz)
    Source code(zip)
  • v2.5.0(Sep 13, 2022)

    What's Changed

    • Release v2.5.0 by @tombeynon in https://github.com/eco-stake/restake/pull/590
    • Updated documentation for systemd execution by @HS-Joe in https://github.com/eco-stake/restake/pull/464
    • Add Falcon wallet by @tombeynon in https://github.com/eco-stake/restake/pull/580
    • Auto-retry Autostake by @keefertaylor in https://github.com/eco-stake/restake/pull/582
    • Add LikeCoin in networks by @williamchong in https://github.com/eco-stake/restake/pull/589
    • Update parcel and switch to Slim images by @tombeynon in https://github.com/eco-stake/restake/pull/591
    • Refactor autostake by @tombeynon in https://github.com/eco-stake/restake/pull/592

    New Contributors

    • @HS-Joe made their first contribution in https://github.com/eco-stake/restake/pull/464
    • @keefertaylor made their first contribution in https://github.com/eco-stake/restake/pull/582
    • @williamchong made their first contribution in https://github.com/eco-stake/restake/pull/589

    Full Changelog: https://github.com/eco-stake/restake/compare/v2.4.2...v2.5.0

    Source code(tar.gz)
    Source code(zip)
  • v2.4.2(Sep 11, 2022)

    What's Changed

    • Update README.md by @satman81 in https://github.com/eco-stake/restake/pull/586
    • Add Stride config by @tombeynon in https://github.com/eco-stake/restake/pull/594

    New Contributors

    • @satman81 made their first contribution in https://github.com/eco-stake/restake/pull/586

    Full Changelog: https://github.com/eco-stake/restake/compare/v2.4.1...v2.4.2

    Source code(tar.gz)
    Source code(zip)
  • v2.4.1(Aug 17, 2022)

    What's Changed

    • Add Passage support by @tombeynon in https://github.com/eco-stake/restake/pull/583

    Full Changelog: https://github.com/eco-stake/restake/compare/v2.4.0...v2.4.1

    Source code(tar.gz)
    Source code(zip)
  • v2.4.0(Aug 10, 2022)

    What's Changed

    • Add Coingecko prices by @tombeynon in https://github.com/eco-stake/restake/pull/577

    Full Changelog: https://github.com/eco-stake/restake/compare/v2.3.5...v2.4.0

    Source code(tar.gz)
    Source code(zip)
Owner
ECO Stake
Climate Positive Validator
ECO Stake
Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

Svante Jonsson IT-Högskolan 3 May 18, 2022
A decentralized protocol for indexing and querying data from DecentraMix's on chain contracts across all supported blockchains.

A decentralized protocol for indexing and querying data from DeMix contracts across all supported blockchains.

DecentraWorld Ecosystem 92 May 3, 2022
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
A Multichain crypto wallet library that supports Ethereum, Solana and other EVM compatible blockchains.

Multichain Crypto Wallet A Multichain crypto wallet library that supports Ethereum, Solana and other EVM compatible blockchains. Installation npm inst

Abdulfatai Suleiman 117 Jan 2, 2023
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
JavaScript Express.js app serving static vanilla JS. This sample app is used in Microsoft Docs to demonstrate how to integrate Azure Storage, Azure Cosmos DB, and Azure Active Directory.

JavaScript on Azure Learn Path - Module 2 - Deploying a basic app to Azure This Learn module requires the following Azure resources to deploy correctl

Azure Samples 13 Dec 31, 2022
🪐 Ultralight Cosmos utilities for JS and TS

Essential Cosmos Ultralight Cosmos utilities for JS and TS ?? The TINIEST code size possible ʦ Fully typed with TypeScript (also works with JavaScript

Earnifi 7 Oct 24, 2022
A TypeScript Transpiler for Cosmos Protobufs ⚛️

Telescope ?? Babel for the Cosmos A TypeScript Transpiler for Cosmos Protobufs Quickstart Follow the instructions below to kick off your Telescope mod

null 84 Dec 15, 2022
Cosmos chain registry ⚛️

chain-registry The npm package for the Official Cosmos chain registry npm install chain-registry example import { assets, chains, ibc } from 'chain-r

Cosmology 19 Dec 8, 2022
A wallet connector for the Cosmos ⚛️

cosmos-kit A wallet adapter for react with mobile WalletConnect support for the Cosmos ecosystem. Getting Started @cosmos-kit/react A wallet adapter f

Cosmology 81 Dec 20, 2022
Example auto-generated OpenAPI client library and an accompanying example Angular app.

To utilize this demo Head into petstore_frontend\petes_pets Run npm install Go to frontend_client_lib\out Run npm install Head back into petstore_fron

Alan Gross 1 Jan 21, 2022
auto-vote-topgg automates voting for bots on top.gg using google chrome!

auto-vote-topgg auto-vote-topgg automates voting for bots on top.gg using google chrome! uses your account thats already logged into top.gg you must b

Anonymous 2 Jan 29, 2022
Responsive, auto-saving To-Do List single page application made from scratch using JavaScript only

Project Name To-Do List Website Name What's Next? (TO-DO List) Clone the Project git clone https://github.com/Zeraltz/todo-list.git Built With HTML, C

Andres Mauricio Cantillo 7 Jun 25, 2022
Responsive, auto-saving To-Do List made from scratch using JavaScript only, but refactoring the code into ES6 standard

Project Name ES6 AWESOME BOOKS Website Name AWSM BOOKS Project Website (GitHub Pages) https://github.com/Zeraltz/es6-awsm-books Clone the Project git

Andres Mauricio Cantillo 5 Jun 25, 2022
An npm package with Tailwind CSS utility classes for creating responsive grid columns without media queries using auto fit.

Grid Auto Fit for Tailwind CSS A plugin that helps you create a responsive grid layout in Tailwind CSS without using media queries. It uses the auto-f

Thirus 80 Dec 28, 2022
Sample of CI/CD auto deploy to own server via Github Actions

Psst — looking for a more complete solution? Check out SvelteKit, the official framework for building web applications of all sizes, with a beautiful

MauCoding 2 Mar 19, 2022
Quickly create an interactive HTML mock-up by auto sourcing lorem ipsum/images generators, with minimal html markup, and no server side code

RoughDraft.js v0.1.5 Quickly mockup / prototype HTML pages with auto-generated content, without additional JavaScript or server side code. <section>

Nick Dreckshage 464 Dec 21, 2022
Smart Auto Move learns the size and position of your application windows and restores them to the correct place on subsequent launches. Supports GNOME Wayland.

smart-auto-move smart-auto-move is a Gnome Shell extension which keeps track of all application windows and restores them to the previous position, si

khimaros 40 Dec 23, 2022
Auto-Fix Hundreds of Grammarly Errors With This Script

This script automatically applies your Grammarly suggestions. Use case: Large document with 100+ errors How to use: Go to Grammarly Web app Go to Edit

null 48 Jan 3, 2023