diff --git a/package.json b/package.json index 34f58e9..0db1bbe 100644 --- a/package.json +++ b/package.json @@ -18,11 +18,11 @@ "iov-faucet": "bin/iov-faucet" }, "dependencies": { - "@iov/bns": "^0.16.0-alpha.3", - "@iov/ethereum": "^0.16.0-alpha.3", - "@iov/keycontrol": "^0.16.0-alpha.3", - "@iov/lisk": "^0.16.0-alpha.3", - "@iov/multichain": "^0.16.0-alpha.3", + "@iov/bns": "^0.17", + "@iov/ethereum": "^0.17", + "@iov/keycontrol": "^0.17", + "@iov/lisk": "^0.17", + "@iov/multichain": "^0.17", "@koa/cors": "^2.2.2", "@types/koa-bodyparser": "^4.2.1", "bn.js": "^4.11.8", diff --git a/scripts/bnsd/bnsd_init.sh b/scripts/bnsd/bnsd_init.sh index 56f7746..5c99fcb 100755 --- a/scripts/bnsd/bnsd_init.sh +++ b/scripts/bnsd/bnsd_init.sh @@ -29,7 +29,7 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" APP_STATE=$(<"$SCRIPT_DIR/genesis_app_state.json") # shellcheck disable=SC2002 cat "${BNSD_DIR}/config/genesis.json.orig" \ - | jq '.chain_id = "local-bns-devnet"' \ + | jq '.chain_id = "local-iov-devnet"' \ | jq ". + {\"app_state\" : $APP_STATE}" \ > "${BNSD_DIR}/config/genesis.json" diff --git a/scripts/bnsd/deploy_proposals.js b/scripts/bnsd/deploy_proposals.js new file mode 100644 index 0000000..adbf53f --- /dev/null +++ b/scripts/bnsd/deploy_proposals.js @@ -0,0 +1,126 @@ +/* eslint-disable @typescript-eslint/no-var-requires */ +const { isBlockInfoPending, isBlockInfoSucceeded } = require("@iov/bcp"); +const { bnsCodec, BnsConnection, VoteOption } = require("@iov/bns"); +const { /* committeeIds, guaranteeFundEscrowIds, */ Governor, ProposalType } = require("@iov/bns-governance"); +const { Ed25519HdWallet, HdPaths, UserProfile } = require("@iov/keycontrol"); + +// Dev admin +// path: m/44'/234'/0' +// pubkey: 418f88ff4876d33a3d6e2a17d0fe0e78dc3cb5e4b42c6c156ed1b8bfce5d46d1 +// IOV address: tiov15nuhg3l8ma2mdmcdvgy7hme20v3xy5mkxcezea +// This account has money in the genesis file (see scripts/bnsd/README.md). +const adminMnemonic = "degree tackle suggest window test behind mesh extra cover prepare oak script"; +const adminPath = HdPaths.iov(0); +const committeeId = 2; +const electionRuleId = process.env.ELECTION_RULE_ID ? parseInt(process.env.ELECTION_RULE_ID, 10) : 3; +const bnsdUrl = "ws://localhost:23456"; +const connectionPromise = BnsConnection.establish(bnsdUrl); + +function createSignAndPoster(connection, profile) { + return async function signAndPost(tx) { + const nonce = await connection.getNonce({ pubkey: tx.creator.pubkey }); + const signed = await profile.signTransaction(tx, bnsCodec, nonce); + const txBytes = bnsCodec.bytesToPost(signed); + const post = await connection.postTx(txBytes); + const blockInfo = await post.blockInfo.waitFor(info => !isBlockInfoPending(info)); + if (!isBlockInfoSucceeded(blockInfo)) { + throw new Error("Transaction failed", tx); + } + }; +} + +async function sleep(ms) { + return new Promise(resolve => setTimeout(resolve, ms)); +} + +async function main() { + const connection = await connectionPromise; + const chainId = await connection.chainId(); + const profile = new UserProfile(); + const wallet = profile.addWallet(Ed25519HdWallet.fromMnemonic(adminMnemonic)); + const identity = await profile.createIdentity(wallet.id, chainId, adminPath); + const signAndPost = createSignAndPoster(connection, profile); + + const governorOptions = { + connection: connection, + identity: identity, + }; + const governor = new Governor(governorOptions); + + const proposalOptions = [ + { + type: ProposalType.AddCommitteeMember, + title: "Add committee member", + description: "Add a committee member in more detail", + electionRuleId: electionRuleId, + committee: committeeId, + address: "tiov12shyht3pvvacvyee36w5844jkfh5s0mf4gszp9", + weight: 3, + }, + { + type: ProposalType.AmendElectionRuleThreshold, + title: "Amend election rule threshold", + description: "Amend the election rule threshold in more detail", + electionRuleId: electionRuleId, + targetElectionRuleId: electionRuleId, + threshold: { + numerator: 3, + denominator: 4, + }, + }, + { + type: ProposalType.AmendElectionRuleQuorum, + title: "Amend election rule quorum", + description: "Amend the election rule quorum in more detail", + electionRuleId: electionRuleId, + targetElectionRuleId: electionRuleId, + quorum: { + numerator: 4, + denominator: 7, + }, + }, + { + type: ProposalType.AddValidator, + title: "Add validator", + description: "Add a validator in more detail", + electionRuleId: electionRuleId, + pubkey: identity.pubkey, + power: 2, + }, + { + type: ProposalType.AmendProtocol, + title: "Amend protocol", + description: "Amend the protocol in more detail", + electionRuleId: electionRuleId, + text: "Give IOV devs master keys to all accounts", + }, + ]; + + for (let i = 0; i < proposalOptions.length; ++i) { + const createProposalTx = await governor.buildCreateProposalTx({ + ...proposalOptions[i], + startTime: new Date(Date.now() + 1000), + }); + await signAndPost(createProposalTx); + + await sleep(7000); + + // Vote on 2/3 of the proposals + if (i % 3) { + const proposals = await governor.getProposals(); + const voteTx = await governor.buildVoteTx( + proposals[proposals.length - 1].id, + // Vote Yes 1/2 of the time, No for the other 1/2 + i % 2 ? VoteOption.Yes : VoteOption.No, + ); + await signAndPost(voteTx); + } + } +} + +main() + .catch(console.error) + .finally(async () => { + (await connectionPromise).disconnect(); + process.exit(0); + }); diff --git a/scripts/bnsd/genesis_app_state.json b/scripts/bnsd/genesis_app_state.json index 2567b57..9d1dd10 100644 --- a/scripts/bnsd/genesis_app_state.json +++ b/scripts/bnsd/genesis_app_state.json @@ -34,7 +34,7 @@ "governance": { "electorate": [ { - "admin": "bech32:tiov15nuhg3l8ma2mdmcdvgy7hme20v3xy5mkxcezea", + "admin": "cond:gov/rule/0000000000000001", "title": "Default electorate", "electors": [ { @@ -52,11 +52,11 @@ ] }, { - "admin": "bech32:tiov15nuhg3l8ma2mdmcdvgy7hme20v3xy5mkxcezea", + "admin": "cond:gov/rule/0000000000000002", "title": "Dictatorship", "electors": [ { - "weight": 1, + "weight": 10, "address": "bech32:tiov15nuhg3l8ma2mdmcdvgy7hme20v3xy5mkxcezea" } ] @@ -64,7 +64,7 @@ ], "rules": [ { - "admin": "cond:foo/bar/0000000000000002", + "admin": "cond:gov/rule/0000000000000001", "title": "fooo", "voting_period": "1h", "threshold": { @@ -74,9 +74,23 @@ "electorate_id": 1 }, { - "admin": "4444444444444444444444444444444444444444", + "admin": "cond:gov/rule/0000000000000002", "title": "barr", - "voting_period": "5s", + "voting_period": "10s", + "threshold": { + "numerator": 1, + "denominator": 2 + }, + "quorum": { + "numerator": 2, + "denominator": 3 + }, + "electorate_id": 2 + }, + { + "admin": "cond:gov/rule/0000000000000002", + "title": "frontend", + "voting_period": "10h", "threshold": { "numerator": 1, "denominator": 2 @@ -89,6 +103,25 @@ } ] }, + "update_validators": { + "addresses": ["cond:gov/rule/0000000000000002"] + }, + "escrow": [ + { + "//name": "Guarantee Fund", + "amount": [ + { + "ticker": "CASH", + "whole": 100000000000000 + } + ], + "arbiter": "cond:gov/rule/0000000000000002", + "//destination-name": "Reward Fund", + "destination": "cond:gov/rule/0000000000000002", + "source": "0000000000000000000000000000000000000000", + "timeout": "2999-12-31T00:00:00Z" + } + ], "conf": { "cash": { "minimal_fee": "0.01 CASH", @@ -96,11 +129,16 @@ }, "migration": { "admin": "cond:multisig/usage/0000000000000001" + }, + "username": { + "owner": "cond:gov/rule/0000000000000002", + "valid_username_name": "^[a-z0-9\\-_.]{3,64}$", + "valid_username_label": "^iov$" } }, "msgfee": [ { - "msg_path": "nft/username/issue", + "msg_path": "username/register_token", "fee": "5 CASH" } ], diff --git a/scripts/bnsd/init.sh b/scripts/bnsd/init.sh new file mode 100755 index 0000000..a5678f3 --- /dev/null +++ b/scripts/bnsd/init.sh @@ -0,0 +1,13 @@ +#!/bin/bash +set -o errexit -o nounset -o pipefail +command -v shellcheck > /dev/null && shellcheck "$0" + +# get this files directory regardless of pwd when we run it +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +if [ -n "${INIT_PROPOSALS:-}" ]; then + sleep 3 + echo "Deploying proposals..." + node "${SCRIPT_DIR}/deploy_proposals.js" + echo "Done." +fi diff --git a/scripts/bnsd/start.sh b/scripts/bnsd/start.sh index 5471e2e..38037d6 100755 --- a/scripts/bnsd/start.sh +++ b/scripts/bnsd/start.sh @@ -5,7 +5,7 @@ command -v shellcheck > /dev/null && shellcheck "$0" # Choose from https://hub.docker.com/r/iov1/tendermint/tags/ export BNSD_TM_VERSION=v0.31.5 # Choose from https://hub.docker.com/r/iov1/bnsd/tags/ -export BNSD_VERSION=v0.19.0 +export BNSD_VERSION=v0.21.0 # get this files directory regardless of pwd when we run it SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" @@ -25,3 +25,5 @@ sleep 3 # for debug output cat "$LOGS_FILE_TM" cat "$LOGS_FILE_APP" + +"${SCRIPT_DIR}"/init.sh diff --git a/src/actions/start/start.ts b/src/actions/start/start.ts index 54811e7..481fdc4 100644 --- a/src/actions/start/start.ts +++ b/src/actions/start/start.ts @@ -7,10 +7,10 @@ import { MultiChainSigner } from "@iov/multichain"; import { creditAmount, gasLimit, gasPrice, setFractionalDigits } from "../../cashflow"; import { - chainConnector, codecDefaultFractionalDigits, codecFromString, codecImplementation, + createChainConnector, } from "../../codec"; import * as constants from "../../constants"; import { logAccountsState, logSendJob } from "../../debugging"; @@ -49,7 +49,7 @@ export async function start(args: ReadonlyArray): Promise { } const signer = new MultiChainSigner(profile); console.log(`Connecting to blockchain ${blockchainBaseUrl} ...`); - const connection = (await signer.addChain(chainConnector(codec, blockchainBaseUrl))).connection; + const connection = (await signer.addChain(createChainConnector(codec, blockchainBaseUrl))).connection; const connectedChainId = connection.chainId(); console.log(`Connected to network: ${connectedChainId}`); diff --git a/src/codec.ts b/src/codec.ts index a77f602..ddbcaf1 100644 --- a/src/codec.ts +++ b/src/codec.ts @@ -1,7 +1,7 @@ import { ChainConnector, TxCodec } from "@iov/bcp"; -import { bnsCodec, bnsConnector } from "@iov/bns"; -import { ethereumCodec, ethereumConnector } from "@iov/ethereum"; -import { liskCodec, liskConnector } from "@iov/lisk"; +import { bnsCodec, createBnsConnector } from "@iov/bns"; +import { createEthereumConnector, ethereumCodec } from "@iov/ethereum"; +import { createLiskConnector, liskCodec } from "@iov/lisk"; export const enum Codec { Bns, @@ -31,18 +31,18 @@ export function codecImplementation(codec: Codec): TxCodec { case Codec.Ethereum: return ethereumCodec; default: - throw new Error("No codec imlementation for this codec found"); + throw new Error("No codec implementation for this codec found"); } } -export function chainConnector(codec: Codec, url: string): ChainConnector { +export function createChainConnector(codec: Codec, url: string): ChainConnector { switch (codec) { case Codec.Bns: - return bnsConnector(url); + return createBnsConnector(url); case Codec.Lisk: - return liskConnector(url); + return createLiskConnector(url); case Codec.Ethereum: - return ethereumConnector(url, {}); + return createEthereumConnector(url, {}); default: throw new Error("No connector for this codec found"); } diff --git a/yarn.lock b/yarn.lock index 6e75fa3..2576b04 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18,27 +18,27 @@ esutils "^2.0.2" js-tokens "^4.0.0" -"@iov/bcp@^0.16.0-alpha.3": - version "0.16.0-alpha.3" - resolved "https://registry.yarnpkg.com/@iov/bcp/-/bcp-0.16.0-alpha.3.tgz#1281ee0c9a748723c297bbcc7cf35ee4168036b5" - integrity sha512-suMrbAPrz39b2gBl3NLnReAMRzPPoZJHlHi7Klf6ZVUG0cGZ/oT3bE++YtiKvZONsdZ3FILv9Ywdx9tGnfQxXw== - dependencies: - "@iov/crypto" "^0.16.0-alpha.3" - "@iov/encoding" "^0.16.0-alpha.3" - "@iov/stream" "^0.16.0-alpha.3" +"@iov/bcp@^0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@iov/bcp/-/bcp-0.17.0.tgz#5cb7b7769f0814c6a430d427354b890c83e951b5" + integrity sha512-gMuSS3whSUqxqRvJefJVyjXuOm8DEjT2tvOk3yEmx/XKk0dhQQIbORC9xaLruOk9lARfB7WXMzEc2BP40xbAiA== + dependencies: + "@iov/crypto" "^0.17.0" + "@iov/encoding" "^0.17.0" + "@iov/stream" "^0.17.0" type-tagger "^1.0.0" xstream "^11.10.0" -"@iov/bns@^0.16.0-alpha.3": - version "0.16.0-alpha.3" - resolved "https://registry.yarnpkg.com/@iov/bns/-/bns-0.16.0-alpha.3.tgz#7673290b18620c9ff82e42ff155d777dc962769d" - integrity sha512-CZOK+hUf00mfxg5PRDXkibABzPq5IWzyWNUQgCJNQ8D+xJ1WTovnQoWhsQf1O8VYXZKxSFbl8h15W1rWv/l4wA== +"@iov/bns@^0.17": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@iov/bns/-/bns-0.17.0.tgz#c77ff4cddcdc4abf09885e1ec6750f66bd1cc2ac" + integrity sha512-fZL2thazybgYtDdskAKDam1/+hT5pP/76Ovy5Zpzkocw44Y4K+lOSS8myBrdR2MzyP2imjLBctcQY5cyH4OZNA== dependencies: - "@iov/bcp" "^0.16.0-alpha.3" - "@iov/crypto" "^0.16.0-alpha.3" - "@iov/encoding" "^0.16.0-alpha.3" - "@iov/stream" "^0.16.0-alpha.3" - "@iov/tendermint-rpc" "^0.16.0-alpha.3" + "@iov/bcp" "^0.17.0" + "@iov/crypto" "^0.17.0" + "@iov/encoding" "^0.17.0" + "@iov/stream" "^0.17.0" + "@iov/tendermint-rpc" "^0.17.0" "@types/long" "^4.0.0" "@types/node" "^10.12.18" bn.js "^4.11.8" @@ -48,13 +48,13 @@ type-tagger "^1.0.0" xstream "^11.10.0" -"@iov/crypto@^0.16.0-alpha.3": - version "0.16.0-alpha.3" - resolved "https://registry.yarnpkg.com/@iov/crypto/-/crypto-0.16.0-alpha.3.tgz#ac585494d5fadb3f162ef78190230268a06fe094" - integrity sha512-U/+QtqqHxu2WdFeQKq5k5lDAQ8PesWneqZQhxLCzljY+8fHPC/+bbXAs/iVqejn00Ze3wZqlxbC6Z34q97ojWw== +"@iov/crypto@^0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@iov/crypto/-/crypto-0.17.0.tgz#76dd147e4926d90aff2b6d72d382a18dfdade4b6" + integrity sha512-suQMfQaLdjRmUG4Pt29k6HbuHWFny6K9zi5GpEGW3NT9z6jNt7lJO6UyUcXZIFpTVEj7XZkfNqKjuRyzYaAsMw== dependencies: - "@iov/encoding" "^0.16.0-alpha.3" - bip39 "^2.5.0" + "@iov/encoding" "^0.17.0" + bip39 "^3.0.2" bn.js "^4.11.8" elliptic "^6.4.0" js-sha3 "^0.8.0" @@ -64,40 +64,40 @@ type-tagger "^1.0.0" unorm "^1.5.0" -"@iov/dpos@^0.16.0-alpha.3": - version "0.16.0-alpha.3" - resolved "https://registry.yarnpkg.com/@iov/dpos/-/dpos-0.16.0-alpha.3.tgz#8a3df3ee7e6b1711b30f7996ed36d01cd33139f8" - integrity sha512-dPtCzmsNoAlOxhbXou4Jgsmdg+C9CbXxuhSKODRR/Vn9mKa32Ve6fH6qNSa76oFcLw1q6v4J6Eq7M8ykhxCJYg== +"@iov/dpos@^0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@iov/dpos/-/dpos-0.17.0.tgz#d77966a9f53391430112a4a19728f3a5cea16f61" + integrity sha512-8U/l5N5sCnhRyfSTaDD2TeS7bT7v3gRmtdYzOjAfr7lhecInB5ZAKxU3Fv7hN+2LjfURJQ9XFBHz9JY2AQgeVQ== dependencies: - "@iov/bcp" "^0.16.0-alpha.3" - "@iov/crypto" "^0.16.0-alpha.3" - "@iov/encoding" "^0.16.0-alpha.3" + "@iov/bcp" "^0.17.0" + "@iov/crypto" "^0.17.0" + "@iov/encoding" "^0.17.0" "@types/long" "^4.0.0" long "^4.0.0" readonly-date "^1.0.0" -"@iov/encoding@^0.16.0-alpha.3": - version "0.16.0-alpha.3" - resolved "https://registry.yarnpkg.com/@iov/encoding/-/encoding-0.16.0-alpha.3.tgz#97889c3a223561381d241a915778477474e9de72" - integrity sha512-herYnx8aXM34q8ncS5qiof1WEgNziMWBd0RUBPu05meOMmXByWYRx12r//r78YXscftyYnN7qjULNwv6P+TwBQ== +"@iov/encoding@^0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@iov/encoding/-/encoding-0.17.0.tgz#133ff6a24882931fc93f027b00333bcaff600ade" + integrity sha512-OgiufvbWXz7brCv7MKNW/RKX69Njp3xDrghYDoIaxfbsMrfTK9lHdM8AdvuyAHpKKqgER9qxNsIgt7HlFhpXGw== dependencies: base64-js "^1.3.0" bech32 "^1.1.3" bn.js "^4.11.8" readonly-date "^1.0.0" -"@iov/ethereum@^0.16.0-alpha.3": - version "0.16.0-alpha.3" - resolved "https://registry.yarnpkg.com/@iov/ethereum/-/ethereum-0.16.0-alpha.3.tgz#fa8fb13dc056133c15778b49ab2f60311849a86a" - integrity sha512-S15qp8yfBOi18Yh6jkpSRHuQh06Rw0UxqMNaXHezPlRaB75BOzyRopCcq9RD2vIA6/+YahWtDvDR4EHSUak6NA== - dependencies: - "@iov/bcp" "^0.16.0-alpha.3" - "@iov/crypto" "^0.16.0-alpha.3" - "@iov/encoding" "^0.16.0-alpha.3" - "@iov/jsonrpc" "^0.16.0-alpha.3" - "@iov/keycontrol" "^0.16.0-alpha.3" - "@iov/socket" "^0.16.0-alpha.3" - "@iov/stream" "^0.16.0-alpha.3" +"@iov/ethereum@^0.17": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@iov/ethereum/-/ethereum-0.17.0.tgz#dbc320aaeceee3b00aafd2be73b3225b12532356" + integrity sha512-XjRmMzUu8+1UPTxNYaE1Jpyl0gGgzV7yORZ7hlcrvdnSchLiEYAcNYJEv2iux0ll0brcEgiTWcFSrg8+bNjTsw== + dependencies: + "@iov/bcp" "^0.17.0" + "@iov/crypto" "^0.17.0" + "@iov/encoding" "^0.17.0" + "@iov/jsonrpc" "^0.17.0" + "@iov/keycontrol" "^0.17.0" + "@iov/socket" "^0.17.0" + "@iov/stream" "^0.17.0" "@types/long" "^4.0.0" axios "^0.19.0" bn.js "^4.11.8" @@ -107,24 +107,24 @@ rlp "^2.2.3" xstream "^11.10.0" -"@iov/jsonrpc@^0.16.0-alpha.3": - version "0.16.0-alpha.3" - resolved "https://registry.yarnpkg.com/@iov/jsonrpc/-/jsonrpc-0.16.0-alpha.3.tgz#452666a34e3b63d04f70654b20dd37e70adad33f" - integrity sha512-7n7IpGECz3ByPednrZpR99jFrSKdGtjvCGkyfRXS1El6FADCsIwUgaNijkIh2M2SwPTE+up2nLwQ0xHmVwuP9Q== +"@iov/jsonrpc@^0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@iov/jsonrpc/-/jsonrpc-0.17.0.tgz#fe3ceb614864c9df20fc26abd64822da5dc126de" + integrity sha512-3xh06YpB2spsNLiFp06mlTFcaLhEIOoAC/1a807Vw2eaRK66dSNLq5GZj2IMbLLZvXeu6GjWM3o93xEuBXfmdw== dependencies: - "@iov/encoding" "^0.16.0-alpha.3" - "@iov/stream" "^0.16.0-alpha.3" + "@iov/encoding" "^0.17.0" + "@iov/stream" "^0.17.0" xstream "^11.10.0" -"@iov/keycontrol@^0.16.0-alpha.3": - version "0.16.0-alpha.3" - resolved "https://registry.yarnpkg.com/@iov/keycontrol/-/keycontrol-0.16.0-alpha.3.tgz#30eaccf82c82af1d196b1f0c420b5715af851269" - integrity sha512-+B9hTQ8J9dfQwaJ1HGA4UnNwsfkd3PIrCLEHIGjXR+dv+XHacI56sP9aMBzF7oldGVNOzSeh4MX17tJdcrVMnQ== +"@iov/keycontrol@^0.17", "@iov/keycontrol@^0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@iov/keycontrol/-/keycontrol-0.17.0.tgz#77d3a1a86adad0ecb450a545dbdb73ecb49c624c" + integrity sha512-9h2sGtvAFlij1pDhx6IBUMC+m6X+REeU8BZn2LHRf8QyqW78jKfFzke+oBmcx2khZRHEnsCFcr7Xi67t0p9AYA== dependencies: - "@iov/bcp" "^0.16.0-alpha.3" - "@iov/crypto" "^0.16.0-alpha.3" - "@iov/encoding" "^0.16.0-alpha.3" - "@iov/stream" "^0.16.0-alpha.3" + "@iov/bcp" "^0.17.0" + "@iov/crypto" "^0.17.0" + "@iov/encoding" "^0.17.0" + "@iov/stream" "^0.17.0" "@types/abstract-leveldown" "^5.0.1" "@types/levelup" "^3.1.0" "@types/node" "^10.12.18" @@ -136,17 +136,17 @@ type-tagger "^1.0.0" xstream "^11.10.0" -"@iov/lisk@^0.16.0-alpha.3": - version "0.16.0-alpha.3" - resolved "https://registry.yarnpkg.com/@iov/lisk/-/lisk-0.16.0-alpha.3.tgz#f15b8e9dac9552de0e2e519ed903c99606a10a75" - integrity sha512-9ffl5024qiBKnm3uWOR+HaPbw1nNKkmxWvClD0J8bLJBqrmtdhcOnFS3oTSv7tfxQOgXSNu+jryTIQDiLJ7N/A== - dependencies: - "@iov/bcp" "^0.16.0-alpha.3" - "@iov/crypto" "^0.16.0-alpha.3" - "@iov/dpos" "^0.16.0-alpha.3" - "@iov/encoding" "^0.16.0-alpha.3" - "@iov/keycontrol" "^0.16.0-alpha.3" - "@iov/stream" "^0.16.0-alpha.3" +"@iov/lisk@^0.17": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@iov/lisk/-/lisk-0.17.0.tgz#12d011400b724cf8265c1690fb1d57d0a5e7a40f" + integrity sha512-4F1xxZ1537cy8WWBF7vhFBHqIvcc3dncCmMRkLk5NRe9yjjV/wg44VrwPYb10Wl5vkD1rGqAFdHquwmQzF1OJA== + dependencies: + "@iov/bcp" "^0.17.0" + "@iov/crypto" "^0.17.0" + "@iov/dpos" "^0.17.0" + "@iov/encoding" "^0.17.0" + "@iov/keycontrol" "^0.17.0" + "@iov/stream" "^0.17.0" "@types/long" "^4.0.0" axios "^0.19.0" fast-deep-equal "^2.0.1" @@ -154,44 +154,44 @@ readonly-date "^1.0.0" xstream "^11.10.0" -"@iov/multichain@^0.16.0-alpha.3": - version "0.16.0-alpha.3" - resolved "https://registry.yarnpkg.com/@iov/multichain/-/multichain-0.16.0-alpha.3.tgz#fed21d335a3cce00ce3c24b55368968ff0bd8339" - integrity sha512-bTumUQaQ8s7I9t1cEFEmXxLOoxxqhdWD/rtNJZnIdgBE67yDkcYiDelIapW2g/Yxu26i6pWHu2eq6VociVsTjA== +"@iov/multichain@^0.17": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@iov/multichain/-/multichain-0.17.0.tgz#0b31849b9bbb3da2ee28477e5dccc0e5ab73851c" + integrity sha512-2PwV+OGuUY8CR6J+GwdY2t5ZBxDMEB3LWH1LYkbzJdZVubXBgCO6YgNT9IapW5Kn8xhL5MlUOxnHI12GUqvw/w== dependencies: - "@iov/bcp" "^0.16.0-alpha.3" - "@iov/encoding" "^0.16.0-alpha.3" - "@iov/jsonrpc" "^0.16.0-alpha.3" - "@iov/keycontrol" "^0.16.0-alpha.3" + "@iov/bcp" "^0.17.0" + "@iov/encoding" "^0.17.0" + "@iov/jsonrpc" "^0.17.0" + "@iov/keycontrol" "^0.17.0" "@types/long" "^4.0.0" long "^4.0.0" -"@iov/socket@^0.16.0-alpha.3": - version "0.16.0-alpha.3" - resolved "https://registry.yarnpkg.com/@iov/socket/-/socket-0.16.0-alpha.3.tgz#c73cc7c1fcb57d97193c3dd506fd102d16cc086d" - integrity sha512-MjtJvWQCy+tT3p+Hn+uTCJPf+In4pB6FuQ6O8Uli1fOrm5A9EIhfUISJWOsH/0JE631QPpIWMbj1o+S84Gsg3w== +"@iov/socket@^0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@iov/socket/-/socket-0.17.0.tgz#292b17f45123374cc80f5bf2b0d42b8df1223b89" + integrity sha512-/umFexPG1V+DRCaJrJv2OGP+RrYTls+XqYhqCCw8HuUTDCsQyhV67SE+1WWFujEkmoOomKgaGVSCwOeytxEnmg== dependencies: - "@iov/stream" "^0.16.0-alpha.3" + "@iov/stream" "^0.17.0" isomorphic-ws "^4.0.1" ws "^6.2.0" xstream "^11.10.0" -"@iov/stream@^0.16.0-alpha.3": - version "0.16.0-alpha.3" - resolved "https://registry.yarnpkg.com/@iov/stream/-/stream-0.16.0-alpha.3.tgz#f0ec68dde46745e341a73d694ab72a999454e70d" - integrity sha512-IhzSnkoZcHPI/M4H4LEfFzqTdPfWdkggOLW1TpK/aLs6d4fNxo24oaIWWRmkkUT7HDF/iVjWAE6rBRf/54cAjA== +"@iov/stream@^0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@iov/stream/-/stream-0.17.0.tgz#7490988d2b826e0bd41c0bfc57d4cab9c1b4c62d" + integrity sha512-4F2WXhVd/f6XhJNRP0qDCscLdA69l40OTecULedHOAOEi/r1P+NbxpgoRSAgcmfF4ZqXAyp1kahy+F1JZQloWw== dependencies: xstream "^11.10.0" -"@iov/tendermint-rpc@^0.16.0-alpha.3": - version "0.16.0-alpha.3" - resolved "https://registry.yarnpkg.com/@iov/tendermint-rpc/-/tendermint-rpc-0.16.0-alpha.3.tgz#54ccb347cf5836c189bdfe8bf242ea740f45c61c" - integrity sha512-Q0IQLEbwaIoVAjUWfyULmTQudrsGK2MiqjOfT577DXenI4LjPcVfeLgyDJxycJRElr1lMEpjzR7F/3QIE9efIQ== +"@iov/tendermint-rpc@^0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@iov/tendermint-rpc/-/tendermint-rpc-0.17.0.tgz#ec063135ab1e2d3b21d559d97fd60acc2a975fdf" + integrity sha512-3whDQGyNN81FR8tejU7yqoLSr5TbEF8d5J1lRZ99kfi1j/JeCasuGUhEXSsJ+UQlkSv+hFRcM+Mp630HaM3q8w== dependencies: - "@iov/crypto" "^0.16.0-alpha.3" - "@iov/encoding" "^0.16.0-alpha.3" - "@iov/jsonrpc" "^0.16.0-alpha.3" - "@iov/socket" "^0.16.0-alpha.3" + "@iov/crypto" "^0.17.0" + "@iov/encoding" "^0.17.0" + "@iov/jsonrpc" "^0.17.0" + "@iov/socket" "^0.17.0" axios "^0.19.0" readonly-date "^1.0.0" type-tagger "^1.0.0" @@ -393,6 +393,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-11.13.4.tgz#f83ec3c3e05b174b7241fadeb6688267fe5b22ca" integrity sha512-+rabAZZ3Yn7tF/XPGHupKIL5EcAbrLxnTr/hgQICxbeuAfWtT0UZSfULE+ndusckBItcv4o6ZeOJplQikVcLvQ== +"@types/node@11.11.6": + version "11.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-11.11.6.tgz#df929d1bb2eee5afdda598a41930fe50b43eaa6a" + integrity sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ== + "@types/node@^10.1.0", "@types/node@^10.12.18": version "10.14.4" resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.4.tgz#1c586b991457cbb58fef51bc4e0cfcfa347714b5" @@ -484,16 +489,15 @@ bech32@^1.1.3: resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.3.tgz#bd47a8986bbb3eec34a56a097a84b8d3e9a2dfcd" integrity sha512-yuVFUvrNcoJi0sv5phmqc6P+Fl1HjRDRNOOkHY2X/3LBy2bIGNSFx4fZ95HMaXHupuS7cZR15AsvtmCIF4UEyg== -bip39@^2.5.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/bip39/-/bip39-2.6.0.tgz#9e3a720b42ec8b3fbe4038f1e445317b6a99321c" - integrity sha512-RrnQRG2EgEoqO24ea+Q/fftuPUZLmrEM3qNhhGsA3PbaXaCW791LTzPuVyx/VprXQcTbPJ3K3UeTna8ZnVl2sg== +bip39@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.0.2.tgz#2baf42ff3071fc9ddd5103de92e8f80d9257ee32" + integrity sha512-J4E1r2N0tUylTKt07ibXvhpT2c5pyAFgvuA5q1H9uDy6dEGpjV8jmymh3MTYJDLCNbIVClSB9FbND49I6N24MQ== dependencies: + "@types/node" "11.11.6" create-hash "^1.1.0" pbkdf2 "^3.0.9" randombytes "^2.0.1" - safe-buffer "^5.0.1" - unorm "^1.3.3" bn.js@^4.11.1, bn.js@^4.11.8, bn.js@^4.4.0: version "4.11.8" @@ -1423,7 +1427,7 @@ typescript@~3.4: resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.4.3.tgz#0eb320e4ace9b10eadf5bc6103286b0f8b7c224f" integrity sha512-FFgHdPt4T/duxx6Ndf7hwgMZZjZpB+U0nMNGVCYPq0rEzWKjEDobm4J6yb3CS7naZ0yURFqdw9Gwc7UOh/P9oQ== -unorm@^1.3.3, unorm@^1.5.0: +unorm@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/unorm/-/unorm-1.5.0.tgz#01fa9b76f1c60f7916834605c032aa8962c3f00a" integrity sha512-sMfSWoiRaXXeDZSXC+YRZ23H4xchQpwxjpw1tmfR+kgbBCaOgln4NI0LXejJIhnBuKINrB3WRn+ZI8IWssirVw==