Merge pull request #186 from CosmWasm/alice-test-account

Add test accounts Alice/Bob
This commit is contained in:
Simon Warta 2020-06-03 14:40:08 +02:00 committed by GitHub
commit 359208aaeb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
23 changed files with 482 additions and 282 deletions

View File

@ -89,8 +89,7 @@ jobs:
environment:
WASMD_ENABLED: 1
SKIP_BUILD: 1
# TODO: Remove concurrency argument to speed up testing (https://github.com/CosmWasm/cosmwasm-js/issues/185)
command: yarn test --concurrency 1 --stream
command: yarn test --stream
- run:
name: Run CLI selftest
working_directory: packages/cli

View File

@ -7,8 +7,8 @@ import { isMsgExecuteContract, isMsgInstantiateContract } from "./msgs";
import { RestClient } from "./restclient";
import { SigningCosmWasmClient } from "./signingcosmwasmclient";
import {
alice,
deployedErc20,
faucet,
fromOneElementArray,
makeRandomAddress,
pendingWithoutWasmd,
@ -47,8 +47,8 @@ describe("CosmWasmClient.searchTx", () => {
beforeAll(async () => {
if (wasmdEnabled()) {
const pen = await Secp256k1Pen.fromMnemonic(faucet.mnemonic);
const client = new SigningCosmWasmClient(wasmd.endpoint, faucet.address, (signBytes) =>
const pen = await Secp256k1Pen.fromMnemonic(alice.mnemonic);
const client = new SigningCosmWasmClient(wasmd.endpoint, alice.address0, (signBytes) =>
pen.sign(signBytes),
);
@ -62,7 +62,7 @@ describe("CosmWasmClient.searchTx", () => {
await sleep(50); // wait until tx is indexed
const txDetails = await new RestClient(wasmd.endpoint).txById(result.transactionHash);
sendSuccessful = {
sender: faucet.address,
sender: alice.address0,
recipient: recipient,
hash: result.transactionHash,
height: Number.parseInt(txDetails.height, 10),
@ -83,7 +83,7 @@ describe("CosmWasmClient.searchTx", () => {
type: "cosmos-sdk/MsgSend",
value: {
// eslint-disable-next-line @typescript-eslint/camelcase
from_address: faucet.address,
from_address: alice.address0,
// eslint-disable-next-line @typescript-eslint/camelcase
to_address: recipient,
amount: transferAmount,
@ -120,7 +120,7 @@ describe("CosmWasmClient.searchTx", () => {
// console.log(error);
}
sendUnsuccessful = {
sender: faucet.address,
sender: alice.address0,
recipient: recipient,
hash: transactionId,
height: heightBeforeThis + 1,
@ -140,7 +140,7 @@ describe("CosmWasmClient.searchTx", () => {
await sleep(50); // wait until tx is indexed
const txDetails = await new RestClient(wasmd.endpoint).txById(result.transactionHash);
postedExecute = {
sender: faucet.address,
sender: alice.address0,
contract: hashInstance,
hash: result.transactionHash,
height: Number.parseInt(txDetails.height, 10),
@ -225,8 +225,8 @@ describe("CosmWasmClient.searchTx", () => {
assert(sendSuccessful, "value must be set in beforeAll()");
const client = new CosmWasmClient(wasmd.endpoint);
const result = await client.searchTx({ height: sendSuccessful.height });
expect(result.length).toEqual(1);
expect(result[0]).toEqual(
expect(result.length).toBeGreaterThanOrEqual(1);
expect(result).toContain(
jasmine.objectContaining({
height: sendSuccessful.height,
hash: sendSuccessful.hash,
@ -241,8 +241,8 @@ describe("CosmWasmClient.searchTx", () => {
assert(sendUnsuccessful, "value must be set in beforeAll()");
const client = new CosmWasmClient(wasmd.endpoint);
const result = await client.searchTx({ height: sendUnsuccessful.height });
expect(result.length).toEqual(1);
expect(result[0]).toEqual(
expect(result.length).toBeGreaterThanOrEqual(1);
expect(result).toContain(
jasmine.objectContaining({
height: sendUnsuccessful.height,
hash: sendUnsuccessful.hash,
@ -415,7 +415,7 @@ describe("CosmWasmClient.searchTx", () => {
expect(first).toEqual({
type: "wasm/instantiate",
value: {
sender: faucet.address,
sender: alice.address0,
code_id: deployedErc20.codeId.toString(),
label: "HASH",
init_msg: jasmine.objectContaining({ symbol: "HASH" }),

View File

@ -10,8 +10,8 @@ import { findAttribute } from "./logs";
import { SigningCosmWasmClient } from "./signingcosmwasmclient";
import cosmoshub from "./testdata/cosmoshub.json";
import {
alice,
deployedErc20,
faucet,
getHackatom,
makeRandomAddress,
pendingWithoutWasmd,
@ -202,14 +202,14 @@ describe("CosmWasmClient", () => {
describe("postTx", () => {
it("works", async () => {
pendingWithoutWasmd();
const pen = await Secp256k1Pen.fromMnemonic(faucet.mnemonic);
const pen = await Secp256k1Pen.fromMnemonic(alice.mnemonic);
const client = new CosmWasmClient(wasmd.endpoint);
const memo = "My first contract on chain";
const sendMsg: MsgSend = {
type: "cosmos-sdk/MsgSend",
value: {
from_address: faucet.address,
from_address: alice.address0,
to_address: makeRandomAddress(),
amount: [
{
@ -231,7 +231,7 @@ describe("CosmWasmClient", () => {
};
const chainId = await client.getChainId();
const { accountNumber, sequence } = await client.getNonce(faucet.address);
const { accountNumber, sequence } = await client.getNonce(alice.address0);
const signBytes = makeSignBytes([sendMsg], fee, chainId, memo, accountNumber, sequence);
const signature = await pen.sign(signBytes);
const signedTx = {
@ -259,7 +259,7 @@ describe("CosmWasmClient", () => {
source: deployedErc20.source,
builder: deployedErc20.builder,
checksum: deployedErc20.checksum,
creator: faucet.address,
creator: alice.address0,
});
});
});
@ -275,7 +275,7 @@ describe("CosmWasmClient", () => {
source: deployedErc20.source,
builder: deployedErc20.builder,
checksum: deployedErc20.checksum,
creator: faucet.address,
creator: alice.address0,
};
// check info
@ -308,19 +308,19 @@ describe("CosmWasmClient", () => {
expect(hash).toEqual({
address: "cosmos18vd8fpwxzck93qlwghaj6arh4p7c5n89uzcee5",
codeId: 1,
creator: faucet.address,
creator: alice.address0,
label: "HASH",
});
expect(isa).toEqual({
address: "cosmos1hqrdl6wstt8qzshwc6mrumpjk9338k0lr4dqxd",
codeId: 1,
creator: faucet.address,
creator: alice.address0,
label: "ISA",
});
expect(jade).toEqual({
address: "cosmos18r5szma8hm93pvx6lwpjwyxruw27e0k5uw835c",
codeId: 1,
creator: faucet.address,
creator: alice.address0,
label: "JADE",
});
});
@ -334,7 +334,7 @@ describe("CosmWasmClient", () => {
expect(hash).toEqual({
address: "cosmos18vd8fpwxzck93qlwghaj6arh4p7c5n89uzcee5",
codeId: 1,
creator: faucet.address,
creator: alice.address0,
label: "HASH",
initMsg: {
decimals: 5,
@ -342,7 +342,7 @@ describe("CosmWasmClient", () => {
symbol: "HASH",
initial_balances: jasmine.arrayContaining([
{
address: faucet.address,
address: alice.address0,
amount: "11",
},
{
@ -367,8 +367,8 @@ describe("CosmWasmClient", () => {
beforeAll(async () => {
if (wasmdEnabled()) {
pendingWithoutWasmd();
const pen = await Secp256k1Pen.fromMnemonic(faucet.mnemonic);
const client = new SigningCosmWasmClient(wasmd.endpoint, faucet.address, (signBytes) =>
const pen = await Secp256k1Pen.fromMnemonic(alice.mnemonic);
const client = new SigningCosmWasmClient(wasmd.endpoint, alice.address0, (signBytes) =>
pen.sign(signBytes),
);
const { codeId } = await client.upload(getHackatom());
@ -388,7 +388,7 @@ describe("CosmWasmClient", () => {
expect(JSON.parse(fromUtf8(raw))).toEqual({
verifier: toBase64(Bech32.decode(contract.initMsg.verifier).data),
beneficiary: toBase64(Bech32.decode(contract.initMsg.beneficiary).data),
funder: toBase64(Bech32.decode(faucet.address).data),
funder: toBase64(Bech32.decode(alice.address0).data),
});
});
@ -420,8 +420,8 @@ describe("CosmWasmClient", () => {
beforeAll(async () => {
if (wasmdEnabled()) {
pendingWithoutWasmd();
const pen = await Secp256k1Pen.fromMnemonic(faucet.mnemonic);
const client = new SigningCosmWasmClient(wasmd.endpoint, faucet.address, (signBytes) =>
const pen = await Secp256k1Pen.fromMnemonic(alice.mnemonic);
const client = new SigningCosmWasmClient(wasmd.endpoint, alice.address0, (signBytes) =>
pen.sign(signBytes),
);
const { codeId } = await client.upload(getHackatom());

View File

@ -31,9 +31,9 @@ import { RestClient, TxsResponse } from "./restclient";
import { SigningCosmWasmClient } from "./signingcosmwasmclient";
import cosmoshub from "./testdata/cosmoshub.json";
import {
alice,
bech32AddressMatcher,
deployedErc20,
faucet,
fromOneElementArray,
getHackatom,
makeRandomAddress,
@ -71,7 +71,7 @@ async function uploadCustomContract(
const theMsg: MsgStoreCode = {
type: "wasm/store-code",
value: {
sender: faucet.address,
sender: alice.address0,
wasm_byte_code: toBase64(wasmCode),
source: "https://github.com/confio/cosmwasm/raw/0.7/lib/vm/testdata/contract_0.6.wasm",
builder: "confio/cosmwasm-opt:0.6.2",
@ -87,7 +87,7 @@ async function uploadCustomContract(
gas: "89000000",
};
const { account_number, sequence } = (await client.authAccounts(faucet.address)).result.value;
const { account_number, sequence } = (await client.authAccounts(alice.address0)).result.value;
const signBytes = makeSignBytes([theMsg], fee, wasmd.chainId, memo, account_number, sequence);
const signature = await pen.sign(signBytes);
const signedTx = makeSignedTx(theMsg, fee, memo, signature);
@ -109,11 +109,11 @@ async function instantiateContract(
const theMsg: MsgInstantiateContract = {
type: "wasm/instantiate",
value: {
sender: faucet.address,
sender: alice.address0,
code_id: codeId.toString(),
label: "my escrow",
init_msg: {
verifier: faucet.address,
verifier: alice.address0,
beneficiary: beneficiaryAddress,
},
init_funds: transferAmount || [],
@ -129,7 +129,7 @@ async function instantiateContract(
gas: "89000000",
};
const { account_number, sequence } = (await client.authAccounts(faucet.address)).result.value;
const { account_number, sequence } = (await client.authAccounts(alice.address0)).result.value;
const signBytes = makeSignBytes([theMsg], fee, wasmd.chainId, memo, account_number, sequence);
const signature = await pen.sign(signBytes);
const signedTx = makeSignedTx(theMsg, fee, memo, signature);
@ -145,7 +145,7 @@ async function executeContract(
const theMsg: MsgExecuteContract = {
type: "wasm/execute",
value: {
sender: faucet.address,
sender: alice.address0,
contract: contractAddress,
msg: { release: {} },
sent_funds: [],
@ -161,7 +161,7 @@ async function executeContract(
gas: "89000000",
};
const { account_number, sequence } = (await client.authAccounts(faucet.address)).result.value;
const { account_number, sequence } = (await client.authAccounts(alice.address0)).result.value;
const signBytes = makeSignBytes([theMsg], fee, wasmd.chainId, memo, account_number, sequence);
const signature = await pen.sign(signBytes);
const signedTx = makeSignedTx(theMsg, fee, memo, signature);
@ -207,10 +207,10 @@ describe("RestClient", () => {
it("has correct pubkey for faucet", async () => {
pendingWithoutWasmd();
const client = new RestClient(wasmd.endpoint);
const { result } = await client.authAccounts(faucet.address);
const { result } = await client.authAccounts(alice.address0);
expect(result.value).toEqual(
jasmine.objectContaining({
public_key: encodeBech32Pubkey(faucet.pubkey, "cosmospub"),
public_key: encodeBech32Pubkey(alice.pubkey0, "cosmospub"),
}),
);
});
@ -347,8 +347,8 @@ describe("RestClient", () => {
beforeAll(async () => {
if (wasmdEnabled()) {
const pen = await Secp256k1Pen.fromMnemonic(faucet.mnemonic);
const client = new SigningCosmWasmClient(wasmd.endpoint, faucet.address, (signBytes) =>
const pen = await Secp256k1Pen.fromMnemonic(alice.mnemonic);
const client = new SigningCosmWasmClient(wasmd.endpoint, alice.address0, (signBytes) =>
pen.sign(signBytes),
);
@ -360,7 +360,7 @@ describe("RestClient", () => {
};
const result = await client.sendTokens(recipient, [transferAmount]);
successful = {
sender: faucet.address,
sender: alice.address0,
recipient: recipient,
hash: result.transactionHash,
};
@ -379,7 +379,7 @@ describe("RestClient", () => {
type: "cosmos-sdk/MsgSend",
value: {
// eslint-disable-next-line @typescript-eslint/camelcase
from_address: faucet.address,
from_address: alice.address0,
// eslint-disable-next-line @typescript-eslint/camelcase
to_address: recipient,
amount: transferAmount,
@ -412,7 +412,7 @@ describe("RestClient", () => {
// console.log(error);
}
unsuccessful = {
sender: faucet.address,
sender: alice.address0,
recipient: recipient,
hash: transactionId,
};
@ -485,8 +485,8 @@ describe("RestClient", () => {
beforeAll(async () => {
if (wasmdEnabled()) {
const pen = await Secp256k1Pen.fromMnemonic(faucet.mnemonic);
const client = new SigningCosmWasmClient(wasmd.endpoint, faucet.address, (signBytes) =>
const pen = await Secp256k1Pen.fromMnemonic(alice.mnemonic);
const client = new SigningCosmWasmClient(wasmd.endpoint, alice.address0, (signBytes) =>
pen.sign(signBytes),
);
@ -502,7 +502,7 @@ describe("RestClient", () => {
await sleep(50); // wait until tx is indexed
const txDetails = await new RestClient(wasmd.endpoint).txById(result.transactionHash);
posted = {
sender: faucet.address,
sender: alice.address0,
recipient: recipient,
hash: result.transactionHash,
height: Number.parseInt(txDetails.height, 10),
@ -666,7 +666,7 @@ describe("RestClient", () => {
assert(isMsgInstantiateContract(jade));
expect(store.value).toEqual(
jasmine.objectContaining({
sender: faucet.address,
sender: alice.address0,
source: deployedErc20.source,
builder: deployedErc20.builder,
}),
@ -678,21 +678,21 @@ describe("RestClient", () => {
symbol: "HASH",
}),
label: "HASH",
sender: faucet.address,
sender: alice.address0,
});
expect(isa.value).toEqual({
code_id: deployedErc20.codeId.toString(),
init_funds: [],
init_msg: jasmine.objectContaining({ symbol: "ISA" }),
label: "ISA",
sender: faucet.address,
sender: alice.address0,
});
expect(jade.value).toEqual({
code_id: deployedErc20.codeId.toString(),
init_funds: [],
init_msg: jasmine.objectContaining({ symbol: "JADE" }),
label: "JADE",
sender: faucet.address,
sender: alice.address0,
});
});
@ -711,7 +711,7 @@ describe("RestClient", () => {
assert(isMsgStoreCode(store));
expect(store.value).toEqual(
jasmine.objectContaining({
sender: faucet.address,
sender: alice.address0,
source: deployedErc20.source,
builder: deployedErc20.builder,
}),
@ -734,21 +734,21 @@ describe("RestClient", () => {
symbol: "HASH",
}),
label: "HASH",
sender: faucet.address,
sender: alice.address0,
});
expect(isa.value).toEqual({
code_id: deployedErc20.codeId.toString(),
init_funds: [],
init_msg: jasmine.objectContaining({ symbol: "ISA" }),
label: "ISA",
sender: faucet.address,
sender: alice.address0,
});
expect(jade.value).toEqual({
code_id: deployedErc20.codeId.toString(),
init_funds: [],
init_msg: jasmine.objectContaining({ symbol: "JADE" }),
label: "JADE",
sender: faucet.address,
sender: alice.address0,
});
}
});
@ -765,13 +765,13 @@ describe("RestClient", () => {
describe("postTx", () => {
it("can send tokens", async () => {
pendingWithoutWasmd();
const pen = await Secp256k1Pen.fromMnemonic(faucet.mnemonic);
const pen = await Secp256k1Pen.fromMnemonic(alice.mnemonic);
const memo = "My first contract on chain";
const theMsg: MsgSend = {
type: "cosmos-sdk/MsgSend",
value: {
from_address: faucet.address,
from_address: alice.address0,
to_address: emptyAddress,
amount: [
{
@ -793,7 +793,7 @@ describe("RestClient", () => {
};
const client = new RestClient(wasmd.endpoint);
const { account_number, sequence } = (await client.authAccounts(faucet.address)).result.value;
const { account_number, sequence } = (await client.authAccounts(alice.address0)).result.value;
const signBytes = makeSignBytes([theMsg], fee, wasmd.chainId, memo, account_number, sequence);
const signature = await pen.sign(signBytes);
@ -813,9 +813,9 @@ describe("RestClient", () => {
it("can't send transaction with additional signatures", async () => {
pendingWithoutWasmd();
const account1 = await Secp256k1Pen.fromMnemonic(faucet.mnemonic, makeCosmoshubPath(0));
const account2 = await Secp256k1Pen.fromMnemonic(faucet.mnemonic, makeCosmoshubPath(1));
const account3 = await Secp256k1Pen.fromMnemonic(faucet.mnemonic, makeCosmoshubPath(2));
const account1 = await Secp256k1Pen.fromMnemonic(alice.mnemonic, makeCosmoshubPath(0));
const account2 = await Secp256k1Pen.fromMnemonic(alice.mnemonic, makeCosmoshubPath(1));
const account3 = await Secp256k1Pen.fromMnemonic(alice.mnemonic, makeCosmoshubPath(2));
const address1 = rawSecp256k1PubkeyToAddress(account1.pubkey, "cosmos");
const address2 = rawSecp256k1PubkeyToAddress(account2.pubkey, "cosmos");
const address3 = rawSecp256k1PubkeyToAddress(account3.pubkey, "cosmos");
@ -870,7 +870,7 @@ describe("RestClient", () => {
it("can send multiple messages with one signature", async () => {
pendingWithoutWasmd();
const account1 = await Secp256k1Pen.fromMnemonic(faucet.mnemonic, makeCosmoshubPath(0));
const account1 = await Secp256k1Pen.fromMnemonic(alice.mnemonic, makeCosmoshubPath(0));
const address1 = rawSecp256k1PubkeyToAddress(account1.pubkey, "cosmos");
const memo = "My first contract on chain";
@ -929,8 +929,8 @@ describe("RestClient", () => {
it("can send multiple messages with multiple signatures", async () => {
pendingWithoutWasmd();
const account1 = await Secp256k1Pen.fromMnemonic(faucet.mnemonic, makeCosmoshubPath(0));
const account2 = await Secp256k1Pen.fromMnemonic(faucet.mnemonic, makeCosmoshubPath(1));
const account1 = await Secp256k1Pen.fromMnemonic(alice.mnemonic, makeCosmoshubPath(0));
const account2 = await Secp256k1Pen.fromMnemonic(alice.mnemonic, makeCosmoshubPath(1));
const address1 = rawSecp256k1PubkeyToAddress(account1.pubkey, "cosmos");
const address2 = rawSecp256k1PubkeyToAddress(account2.pubkey, "cosmos");
@ -998,8 +998,8 @@ describe("RestClient", () => {
it("can't send transaction with wrong signature order (1)", async () => {
pendingWithoutWasmd();
const account1 = await Secp256k1Pen.fromMnemonic(faucet.mnemonic, makeCosmoshubPath(0));
const account2 = await Secp256k1Pen.fromMnemonic(faucet.mnemonic, makeCosmoshubPath(1));
const account1 = await Secp256k1Pen.fromMnemonic(alice.mnemonic, makeCosmoshubPath(0));
const account2 = await Secp256k1Pen.fromMnemonic(alice.mnemonic, makeCosmoshubPath(1));
const address1 = rawSecp256k1PubkeyToAddress(account1.pubkey, "cosmos");
const address2 = rawSecp256k1PubkeyToAddress(account2.pubkey, "cosmos");
@ -1062,8 +1062,8 @@ describe("RestClient", () => {
it("can't send transaction with wrong signature order (2)", async () => {
pendingWithoutWasmd();
const account1 = await Secp256k1Pen.fromMnemonic(faucet.mnemonic, makeCosmoshubPath(0));
const account2 = await Secp256k1Pen.fromMnemonic(faucet.mnemonic, makeCosmoshubPath(1));
const account1 = await Secp256k1Pen.fromMnemonic(alice.mnemonic, makeCosmoshubPath(0));
const account2 = await Secp256k1Pen.fromMnemonic(alice.mnemonic, makeCosmoshubPath(1));
const address1 = rawSecp256k1PubkeyToAddress(account1.pubkey, "cosmos");
const address2 = rawSecp256k1PubkeyToAddress(account2.pubkey, "cosmos");
@ -1126,7 +1126,7 @@ describe("RestClient", () => {
it("can upload, instantiate and execute wasm", async () => {
pendingWithoutWasmd();
const pen = await Secp256k1Pen.fromMnemonic(faucet.mnemonic);
const pen = await Secp256k1Pen.fromMnemonic(alice.mnemonic);
const client = new RestClient(wasmd.endpoint);
const transferAmount: readonly Coin[] = [
@ -1200,7 +1200,7 @@ describe("RestClient", () => {
describe("query", () => {
it("can list upload code", async () => {
pendingWithoutWasmd();
const pen = await Secp256k1Pen.fromMnemonic(faucet.mnemonic);
const pen = await Secp256k1Pen.fromMnemonic(alice.mnemonic);
const client = new RestClient(wasmd.endpoint);
// check with contracts were here first to compare
@ -1221,7 +1221,7 @@ describe("RestClient", () => {
expect(newInfos.length).toEqual(numExisting + 1);
const lastInfo = newInfos[newInfos.length - 1];
expect(lastInfo.id).toEqual(codeId);
expect(lastInfo.creator).toEqual(faucet.address);
expect(lastInfo.creator).toEqual(alice.address0);
// ensure metadata is present
expect(lastInfo.source).toEqual(
@ -1240,7 +1240,7 @@ describe("RestClient", () => {
it("can list contracts and get info", async () => {
pendingWithoutWasmd();
const pen = await Secp256k1Pen.fromMnemonic(faucet.mnemonic);
const pen = await Secp256k1Pen.fromMnemonic(alice.mnemonic);
const client = new RestClient(wasmd.endpoint);
const beneficiaryAddress = makeRandomAddress();
const transferAmount: readonly Coin[] = [
@ -1284,7 +1284,7 @@ describe("RestClient", () => {
expect(newContract).toEqual(
jasmine.objectContaining({
code_id: codeId,
creator: faucet.address,
creator: alice.address0,
label: "my escrow",
}),
);
@ -1293,7 +1293,7 @@ describe("RestClient", () => {
const myInfo = await client.getContractInfo(myAddress);
assert(myInfo);
expect(myInfo.code_id).toEqual(codeId);
expect(myInfo.creator).toEqual(faucet.address);
expect(myInfo.creator).toEqual(alice.address0);
expect((myInfo.init_msg as any).beneficiary).toEqual(beneficiaryAddress);
// make sure random addresses don't give useful info
@ -1309,7 +1309,7 @@ describe("RestClient", () => {
beforeAll(async () => {
if (wasmdEnabled()) {
const pen = await Secp256k1Pen.fromMnemonic(faucet.mnemonic);
const pen = await Secp256k1Pen.fromMnemonic(alice.mnemonic);
const uploadResult = await uploadContract(client, pen);
assert(!uploadResult.code);
const uploadLogs = parseLogs(uploadResult.logs);
@ -1363,7 +1363,7 @@ describe("RestClient", () => {
// we can query the verifier properly
const resultDocument = await client.queryContractSmart(contractAddress!, { verifier: {} });
expect(resultDocument).toEqual({ verifier: faucet.address });
expect(resultDocument).toEqual({ verifier: alice.address0 });
// invalid query syntax throws an error
await client.queryContractSmart(contractAddress!, { nosuchkey: {} }).then(

View File

@ -6,27 +6,17 @@ import { assert } from "@iov/utils";
import { PrivateCosmWasmClient } from "./cosmwasmclient";
import { RestClient } from "./restclient";
import { SigningCosmWasmClient, UploadMeta } from "./signingcosmwasmclient";
import { getHackatom, makeRandomAddress, pendingWithoutWasmd } from "./testutils.spec";
import { alice, getHackatom, makeRandomAddress, pendingWithoutWasmd } from "./testutils.spec";
const { toHex } = Encoding;
const httpUrl = "http://localhost:1317";
const faucet = {
mnemonic:
"economy stock theory fatal elder harbor betray wasp final emotion task crumble siren bottom lizard educate guess current outdoor pair theory focus wife stone",
pubkey: {
type: "tendermint/PubKeySecp256k1",
value: "A08EGB7ro1ORuFhjOnZcSgwYlpe0DSFjVNUIkNNQxwKQ",
},
address: "cosmos1pkptre7fdkl6gfrzlesjjvhxhlc3r4gmmk8rs6",
};
describe("SigningCosmWasmClient", () => {
describe("makeReadOnly", () => {
it("can be constructed", async () => {
const pen = await Secp256k1Pen.fromMnemonic(faucet.mnemonic);
const client = new SigningCosmWasmClient(httpUrl, faucet.address, (signBytes) => pen.sign(signBytes));
const pen = await Secp256k1Pen.fromMnemonic(alice.mnemonic);
const client = new SigningCosmWasmClient(httpUrl, alice.address0, (signBytes) => pen.sign(signBytes));
expect(client).toBeTruthy();
});
});
@ -34,8 +24,8 @@ describe("SigningCosmWasmClient", () => {
describe("getHeight", () => {
it("always uses authAccount implementation", async () => {
pendingWithoutWasmd();
const pen = await Secp256k1Pen.fromMnemonic(faucet.mnemonic);
const client = new SigningCosmWasmClient(httpUrl, faucet.address, (signBytes) => pen.sign(signBytes));
const pen = await Secp256k1Pen.fromMnemonic(alice.mnemonic);
const client = new SigningCosmWasmClient(httpUrl, alice.address0, (signBytes) => pen.sign(signBytes));
const openedClient = (client as unknown) as PrivateCosmWasmClient;
const blockLatestSpy = spyOn(openedClient.restClient, "blocksLatest").and.callThrough();
@ -52,8 +42,8 @@ describe("SigningCosmWasmClient", () => {
describe("upload", () => {
it("works", async () => {
pendingWithoutWasmd();
const pen = await Secp256k1Pen.fromMnemonic(faucet.mnemonic);
const client = new SigningCosmWasmClient(httpUrl, faucet.address, (signBytes) => pen.sign(signBytes));
const pen = await Secp256k1Pen.fromMnemonic(alice.mnemonic);
const client = new SigningCosmWasmClient(httpUrl, alice.address0, (signBytes) => pen.sign(signBytes));
const wasm = getHackatom();
const {
codeId,
@ -71,8 +61,8 @@ describe("SigningCosmWasmClient", () => {
it("can set builder and source", async () => {
pendingWithoutWasmd();
const pen = await Secp256k1Pen.fromMnemonic(faucet.mnemonic);
const client = new SigningCosmWasmClient(httpUrl, faucet.address, (signBytes) => pen.sign(signBytes));
const pen = await Secp256k1Pen.fromMnemonic(alice.mnemonic);
const client = new SigningCosmWasmClient(httpUrl, alice.address0, (signBytes) => pen.sign(signBytes));
const wasm = getHackatom();
const meta: UploadMeta = {
@ -90,8 +80,8 @@ describe("SigningCosmWasmClient", () => {
describe("instantiate", () => {
it("works with transfer amount", async () => {
pendingWithoutWasmd();
const pen = await Secp256k1Pen.fromMnemonic(faucet.mnemonic);
const client = new SigningCosmWasmClient(httpUrl, faucet.address, (signBytes) => pen.sign(signBytes));
const pen = await Secp256k1Pen.fromMnemonic(alice.mnemonic);
const client = new SigningCosmWasmClient(httpUrl, alice.address0, (signBytes) => pen.sign(signBytes));
const { codeId } = await client.upload(getHackatom());
const transferAmount: readonly Coin[] = [
@ -108,7 +98,7 @@ describe("SigningCosmWasmClient", () => {
const { contractAddress } = await client.instantiate(
codeId,
{
verifier: faucet.address,
verifier: alice.address0,
beneficiary: beneficiaryAddress,
},
"My cool label",
@ -123,14 +113,14 @@ describe("SigningCosmWasmClient", () => {
it("can instantiate one code multiple times", async () => {
pendingWithoutWasmd();
const pen = await Secp256k1Pen.fromMnemonic(faucet.mnemonic);
const client = new SigningCosmWasmClient(httpUrl, faucet.address, (signBytes) => pen.sign(signBytes));
const pen = await Secp256k1Pen.fromMnemonic(alice.mnemonic);
const client = new SigningCosmWasmClient(httpUrl, alice.address0, (signBytes) => pen.sign(signBytes));
const { codeId } = await client.upload(getHackatom());
const contractAddress1 = await client.instantiate(
codeId,
{
verifier: faucet.address,
verifier: alice.address0,
beneficiary: makeRandomAddress(),
},
"contract 1",
@ -138,7 +128,7 @@ describe("SigningCosmWasmClient", () => {
const contractAddress2 = await client.instantiate(
codeId,
{
verifier: faucet.address,
verifier: alice.address0,
beneficiary: makeRandomAddress(),
},
"contract 2",
@ -150,8 +140,8 @@ describe("SigningCosmWasmClient", () => {
describe("execute", () => {
it("works", async () => {
pendingWithoutWasmd();
const pen = await Secp256k1Pen.fromMnemonic(faucet.mnemonic);
const client = new SigningCosmWasmClient(httpUrl, faucet.address, (signBytes) => pen.sign(signBytes));
const pen = await Secp256k1Pen.fromMnemonic(alice.mnemonic);
const client = new SigningCosmWasmClient(httpUrl, alice.address0, (signBytes) => pen.sign(signBytes));
const { codeId } = await client.upload(getHackatom());
// instantiate
@ -169,7 +159,7 @@ describe("SigningCosmWasmClient", () => {
const { contractAddress } = await client.instantiate(
codeId,
{
verifier: faucet.address,
verifier: alice.address0,
beneficiary: beneficiaryAddress,
},
"amazing random contract",
@ -199,8 +189,8 @@ describe("SigningCosmWasmClient", () => {
describe("sendTokens", () => {
it("works", async () => {
pendingWithoutWasmd();
const pen = await Secp256k1Pen.fromMnemonic(faucet.mnemonic);
const client = new SigningCosmWasmClient(httpUrl, faucet.address, (signBytes) => pen.sign(signBytes));
const pen = await Secp256k1Pen.fromMnemonic(alice.mnemonic);
const client = new SigningCosmWasmClient(httpUrl, alice.address0, (signBytes) => pen.sign(signBytes));
// instantiate
const transferAmount: readonly Coin[] = [

View File

@ -39,14 +39,13 @@ export const wasmd = {
chainId: "testing",
};
export const faucet = {
mnemonic:
"economy stock theory fatal elder harbor betray wasp final emotion task crumble siren bottom lizard educate guess current outdoor pair theory focus wife stone",
pubkey: {
export const alice = {
mnemonic: "enlist hip relief stomach skate base shallow young switch frequent cry park",
pubkey0: {
type: "tendermint/PubKeySecp256k1",
value: "A08EGB7ro1ORuFhjOnZcSgwYlpe0DSFjVNUIkNNQxwKQ",
value: "A9cXhWb8ZpqCzkA8dQCPV29KdeRLV3rUYxrkHudLbQtS",
},
address: "cosmos1pkptre7fdkl6gfrzlesjjvhxhlc3r4gmmk8rs6",
address0: "cosmos14qemq0vw6y3gc3u3e0aty2e764u4gs5le3hada",
};
/** Unused account */
@ -56,7 +55,7 @@ export const unused = {
value: "ArkCaFUJ/IH+vKBmNRCdUVl3mCAhbopk9jjW4Ko4OfRQ",
},
address: "cosmos1cjsxept9rkggzxztslae9ndgpdyt2408lk850u",
accountNumber: 9,
accountNumber: 19,
sequence: 0,
};

View File

@ -18,10 +18,9 @@ function pendingWithoutWasmd(): void {
}
const httpUrl = "http://localhost:1317";
const faucet = {
mnemonic:
"economy stock theory fatal elder harbor betray wasp final emotion task crumble siren bottom lizard educate guess current outdoor pair theory focus wife stone",
address: "cosmos1pkptre7fdkl6gfrzlesjjvhxhlc3r4gmmk8rs6",
const alice = {
mnemonic: "enlist hip relief stomach skate base shallow young switch frequent cry park",
address0: "cosmos14qemq0vw6y3gc3u3e0aty2e764u4gs5le3hada",
};
/** Code info staking.wasm */
@ -32,7 +31,7 @@ const params = {
name: "Bounty",
symbol: "BOUNTY",
decimals: 3,
validator: "cosmosvaloper1ea5cpmcj2vf5d0xwurncx7zdnmkuc6eq696h9a",
validator: "cosmosvaloper1gjvanqxc774u6ed9thj4gpn9gj5zus5u32enqn",
exitTax: "0.005", // 0.5 %
minWithdrawal: "700",
};
@ -41,14 +40,14 @@ describe("Staking demo", () => {
it("works", async () => {
pendingWithoutWasmd();
// The owner of the contract that will collect the tax
const ownerPen = await Secp256k1Pen.fromMnemonic(faucet.mnemonic);
const ownerPen = await Secp256k1Pen.fromMnemonic(alice.mnemonic);
const ownerAddress = ownerPen.address("cosmos");
const ownerClient = new SigningCosmWasmClient(httpUrl, ownerAddress, (signBytes) =>
ownerPen.sign(signBytes),
);
// a user of the contract
const userPen = await Secp256k1Pen.fromMnemonic(faucet.mnemonic, makeCosmoshubPath(1));
const userPen = await Secp256k1Pen.fromMnemonic(alice.mnemonic, makeCosmoshubPath(1));
const userAddress = userPen.address("cosmos");
const userClient = new SigningCosmWasmClient(
httpUrl,

View File

@ -197,8 +197,8 @@ describe("CosmosClient.searchTx", () => {
assert(sendSuccessful, "value must be set in beforeAll()");
const client = new CosmosClient(wasmd.endpoint);
const result = await client.searchTx({ height: sendSuccessful.height });
expect(result.length).toEqual(1);
expect(result[0]).toEqual(
expect(result.length).toBeGreaterThanOrEqual(1);
expect(result).toContain(
jasmine.objectContaining({
height: sendSuccessful.height,
hash: sendSuccessful.hash,
@ -213,8 +213,8 @@ describe("CosmosClient.searchTx", () => {
assert(sendUnsuccessful, "value must be set in beforeAll()");
const client = new CosmosClient(wasmd.endpoint);
const result = await client.searchTx({ height: sendUnsuccessful.height });
expect(result.length).toEqual(1);
expect(result[0]).toEqual(
expect(result.length).toBeGreaterThanOrEqual(1);
expect(result).toContain(
jasmine.objectContaining({
height: sendUnsuccessful.height,
hash: sendUnsuccessful.hash,

View File

@ -37,7 +37,7 @@ export const unused = {
value: "ArkCaFUJ/IH+vKBmNRCdUVl3mCAhbopk9jjW4Ko4OfRQ",
},
address: "cosmos1cjsxept9rkggzxztslae9ndgpdyt2408lk850u",
accountNumber: 9,
accountNumber: 19,
sequence: 0,
};

View File

@ -82,7 +82,7 @@ You should get output matching the following:
## Preset accounts
1. Faucet<br>
1. **Faucet**<br>
economy stock theory fatal elder harbor betray wasp final emotion task crumble siren bottom lizard educate guess current outdoor pair theory focus wife stone<br>
Address 0: cosmos1pkptre7fdkl6gfrzlesjjvhxhlc3r4gmmk8rs6<br>
Address 1: cosmos10dyr9899g6t0pelew4nvf4j5c3jcgv0r73qga5<br>
@ -93,12 +93,36 @@ You should get output matching the following:
Pubkey 1: AiDosfIbBi54XJ1QjCeApumcy/FjdtF+YhywPf3DKTx7<br>
Pubkey 2: AzQg33JZqH7vSsm09esZY5bZvmzYwE/SY78cA0iLxpD7<br>
Pubkey 3: A3gOAlB6aiRTCPvWMQg2+ZbGYNsLd8qlvV28m8p2UhY2<br>
Pubkey 4: Aum2063ub/ErUnIUB36sK55LktGUStgcbSiaAnL1wadu<br>
2. Unused: for testing account state; this account never changes balances or nonces<br>
Pubkey 4: Aum2063ub/ErUnIUB36sK55LktGUStgcbSiaAnL1wadu
2. **Alice**: Test account for the cosmwasm package that can run in parallel with faucet without sequence conflicts<br>
enlist hip relief stomach skate base shallow young switch frequent cry park<br>
Address 0: cosmos14qemq0vw6y3gc3u3e0aty2e764u4gs5le3hada<br>
Address 1: cosmos1hhg2rlu9jscacku2wwckws7932qqqu8x3gfgw0<br>
Address 2: cosmos1xv9tklw7d82sezh9haa573wufgy59vmwe6xxe5<br>
Address 3: cosmos17yg9mssjenmc3jkqth6ulcwj9cxujrxxzezwta<br>
Address 4: cosmos1f7j7ryulwjfe9ljplvhtcaxa6wqgula3etktce<br>
Pubkey 0: A9cXhWb8ZpqCzkA8dQCPV29KdeRLV3rUYxrkHudLbQtS<br>
Pubkey 1: A4XluzvcUx0ViLF0DjYW5/noArGwpltDstoUUZo+g1b0<br>
Pubkey 2: A5TKr1NKc/MKRJ7+EHDD9PlzmGaPD/di/6hzZyBwxoy5<br>
Pubkey 3: A/HSABDUqMB2qDy+PA7fiuuuA+hfrco2VwwiThMiTzUx<br>
Pubkey 4: A7usTiqgqfxL/WKhoephDUSCHBQlLagtwI/qTmEteTRM
3. **Bob**: Test account (unused for now)<br>
remain fragile remove stamp quiz bus country dress critic mammal office need<br>
Address 0: cosmos1lvrwcvrqlc5ktzp2c4t22xgkx29q3y83lktgzl<br>
Address 1: cosmos1vkv9sfwaak76weyamqx0flmng2vuquxqcuqukh<br>
Address 2: cosmos106jwym4s9aujcmes26myzzwqsccw09sdm0v5au<br>
Address 3: cosmos1c7wpeen2uv8thayf7g8q2rgpm29clj0dgrdtzw<br>
Address 4: cosmos1mjxpv9ft30wer7ma7kwfxhm42l379xutplrdk6<br>
Pubkey 0: A0d/GxY+UALE+miWJP0qyq4/EayG1G6tsg24v+cbD6By<br>
Pubkey 1: Agqd6njsVEQD1CR+F2aqEb8hil5NXZ06mjKgetaNC12t<br>
Pubkey 2: A6e9ElvKaM0DKWh1bIdK3bgB14dyEDgIXYMA0Lbs1GoQ<br>
Pubkey 3: AkAK5PQaucieWMb0+tTRY01feYI+upRnoNK556eD0Ibb<br>
Pubkey 4: A5HMVEAJsupdQWItbZv5Z1xZifDixQi6tjU/hJpZY1bF
4. **Unused**: for testing account state; this account never changes balances or nonces<br>
oyster design unusual machine spread century engine gravity focus cave carry slot<br>
ArkCaFUJ/IH+vKBmNRCdUVl3mCAhbopk9jjW4Ko4OfRQ<br>
cosmos1cjsxept9rkggzxztslae9ndgpdyt2408lk850u
3. Guest: account for manual testing<br>
5. **Guest**: account for manual testing<br>
degree tackle suggest window test behind mesh extra cover prepare oak script<br>
Am/+YV0LaeqQPu7BDJuDHV7J8y68ptkGs10YS+9s71Nq<br>
cosmos17d0jcz59jf68g52vq38tuuncmwwjk42u6mcxej

View File

@ -6,14 +6,13 @@ const { Secp256k1Pen } = require("@cosmwasm/sdk38");
const fs = require("fs");
const httpUrl = "http://localhost:1317";
const faucet = {
mnemonic:
"economy stock theory fatal elder harbor betray wasp final emotion task crumble siren bottom lizard educate guess current outdoor pair theory focus wife stone",
address0: "cosmos1pkptre7fdkl6gfrzlesjjvhxhlc3r4gmmk8rs6",
address1: "cosmos10dyr9899g6t0pelew4nvf4j5c3jcgv0r73qga5",
address2: "cosmos1xy4yqngt0nlkdcenxymg8tenrghmek4nmqm28k",
address3: "cosmos142u9fgcjdlycfcez3lw8x6x5h7rfjlnfhpw2lx",
address4: "cosmos1hsm76p4ahyhl5yh3ve9ur49r5kemhp2r0dcjvx",
const alice = {
mnemonic: "enlist hip relief stomach skate base shallow young switch frequent cry park",
address0: "cosmos14qemq0vw6y3gc3u3e0aty2e764u4gs5le3hada",
address1: "cosmos1hhg2rlu9jscacku2wwckws7932qqqu8x3gfgw0",
address2: "cosmos1xv9tklw7d82sezh9haa573wufgy59vmwe6xxe5",
address3: "cosmos17yg9mssjenmc3jkqth6ulcwj9cxujrxxzezwta",
address4: "cosmos1f7j7ryulwjfe9ljplvhtcaxa6wqgula3etktce",
};
const unused = {
address: "cosmos1cjsxept9rkggzxztslae9ndgpdyt2408lk850u",
@ -24,7 +23,7 @@ const guest = {
const codeMeta = {
source: "https://crates.io/api/v1/crates/cw-erc20/0.4.0/download",
builder: "cosmwasm/rust-optimizer:0.8.0"
builder: "cosmwasm/rust-optimizer:0.8.0",
};
const initMsgHash = {
@ -33,23 +32,23 @@ const initMsgHash = {
symbol: "HASH",
initial_balances: [
{
address: faucet.address0,
address: alice.address0,
amount: "11",
},
{
address: faucet.address1,
address: alice.address1,
amount: "11",
},
{
address: faucet.address2,
address: alice.address2,
amount: "11",
},
{
address: faucet.address3,
address: alice.address3,
amount: "11",
},
{
address: faucet.address4,
address: alice.address4,
amount: "11",
},
{
@ -68,23 +67,23 @@ const initMsgIsa = {
symbol: "ISA",
initial_balances: [
{
address: faucet.address0,
address: alice.address0,
amount: "999999999",
},
{
address: faucet.address1,
address: alice.address1,
amount: "999999999",
},
{
address: faucet.address2,
address: alice.address2,
amount: "999999999",
},
{
address: faucet.address3,
address: alice.address3,
amount: "999999999",
},
{
address: faucet.address4,
address: alice.address4,
amount: "999999999",
},
{
@ -99,23 +98,23 @@ const initMsgJade = {
symbol: "JADE",
initial_balances: [
{
address: faucet.address0,
address: alice.address0,
amount: "189189189000000000000000000", // 189189189 JADE
},
{
address: faucet.address1,
address: alice.address1,
amount: "189189189000000000000000000", // 189189189 JADE
},
{
address: faucet.address2,
address: alice.address2,
amount: "189189189000000000000000000", // 189189189 JADE
},
{
address: faucet.address3,
address: alice.address3,
amount: "189189189000000000000000000", // 189189189 JADE
},
{
address: faucet.address4,
address: alice.address4,
amount: "189189189000000000000000000", // 189189189 JADE
},
{
@ -126,8 +125,8 @@ const initMsgJade = {
};
async function main() {
const pen = await Secp256k1Pen.fromMnemonic(faucet.mnemonic);
const client = new SigningCosmWasmClient(httpUrl, faucet.address0, (signBytes) => pen.sign(signBytes));
const pen = await Secp256k1Pen.fromMnemonic(alice.mnemonic);
const client = new SigningCosmWasmClient(httpUrl, alice.address0, (signBytes) => pen.sign(signBytes));
const wasm = fs.readFileSync(__dirname + "/contracts/cw-erc20.wasm");
const uploadReceipt = await client.upload(wasm, codeMeta, "Upload ERC20 contract");

View File

@ -6,15 +6,14 @@ const { Secp256k1Pen } = require("@cosmwasm/sdk38");
const fs = require("fs");
const httpUrl = "http://localhost:1317";
const faucet = {
mnemonic:
"economy stock theory fatal elder harbor betray wasp final emotion task crumble siren bottom lizard educate guess current outdoor pair theory focus wife stone",
address: "cosmos1pkptre7fdkl6gfrzlesjjvhxhlc3r4gmmk8rs6",
const alice = {
mnemonic: "enlist hip relief stomach skate base shallow young switch frequent cry park",
address0: "cosmos14qemq0vw6y3gc3u3e0aty2e764u4gs5le3hada",
};
const codeMeta = {
source: "https://crates.io/api/v1/crates/cw-nameservice/0.4.0/download",
builder: "cosmwasm/rust-optimizer:0.8.0"
builder: "cosmwasm/rust-optimizer:0.8.0",
};
const free = {
@ -23,7 +22,7 @@ const free = {
};
const luxury = {
label: "Luxury",
label: "Lux,ury",
initMsg: {
purchase_price: {
denom: "ucosm",
@ -37,8 +36,8 @@ const luxury = {
};
async function main() {
const pen = await Secp256k1Pen.fromMnemonic(faucet.mnemonic);
const client = new SigningCosmWasmClient(httpUrl, faucet.address, (signBytes) => pen.sign(signBytes));
const pen = await Secp256k1Pen.fromMnemonic(alice.mnemonic);
const client = new SigningCosmWasmClient(httpUrl, alice.address0, (signBytes) => pen.sign(signBytes));
const wasm = fs.readFileSync(__dirname + "/contracts/cw-nameservice.wasm");
const uploadReceipt = await client.upload(wasm, codeMeta, "Upload Name Service code");

View File

@ -6,10 +6,9 @@ const { Secp256k1Pen } = require("@cosmwasm/sdk38");
const fs = require("fs");
const httpUrl = "http://localhost:1317";
const faucet = {
mnemonic:
"economy stock theory fatal elder harbor betray wasp final emotion task crumble siren bottom lizard educate guess current outdoor pair theory focus wife stone",
address: "cosmos1pkptre7fdkl6gfrzlesjjvhxhlc3r4gmmk8rs6",
const alice = {
mnemonic: "enlist hip relief stomach skate base shallow young switch frequent cry park",
address0: "cosmos14qemq0vw6y3gc3u3e0aty2e764u4gs5le3hada",
};
const codeMeta = {
@ -25,15 +24,15 @@ const bounty = {
name: "Bounty",
symbol: "BOUNTY",
decimals: 3,
validator: "cosmosvaloper1ea5cpmcj2vf5d0xwurncx7zdnmkuc6eq696h9a",
validator: "cosmosvaloper1gjvanqxc774u6ed9thj4gpn9gj5zus5u32enqn",
exit_tax: "0.005", // 0.5 %
min_withdrawal: "7",
},
};
async function main() {
const pen = await Secp256k1Pen.fromMnemonic(faucet.mnemonic);
const client = new SigningCosmWasmClient(httpUrl, faucet.address, (signBytes) => pen.sign(signBytes));
const pen = await Secp256k1Pen.fromMnemonic(alice.mnemonic);
const client = new SigningCosmWasmClient(httpUrl, alice.address0, (signBytes) => pen.sign(signBytes));
const wasm = fs.readFileSync(__dirname + "/contracts/staking.wasm");
const uploadReceipt = await client.upload(wasm, codeMeta, "Upload Staking code");

View File

@ -17,6 +17,8 @@ docker run --rm \
"$REPOSITORY:$VERSION" \
./setup.sh \
cosmos1pkptre7fdkl6gfrzlesjjvhxhlc3r4gmmk8rs6 cosmos10dyr9899g6t0pelew4nvf4j5c3jcgv0r73qga5 cosmos1xy4yqngt0nlkdcenxymg8tenrghmek4nmqm28k cosmos142u9fgcjdlycfcez3lw8x6x5h7rfjlnfhpw2lx cosmos1hsm76p4ahyhl5yh3ve9ur49r5kemhp2r0dcjvx \
cosmos14qemq0vw6y3gc3u3e0aty2e764u4gs5le3hada cosmos1hhg2rlu9jscacku2wwckws7932qqqu8x3gfgw0 cosmos1xv9tklw7d82sezh9haa573wufgy59vmwe6xxe5 cosmos17yg9mssjenmc3jkqth6ulcwj9cxujrxxzezwta cosmos1f7j7ryulwjfe9ljplvhtcaxa6wqgula3etktce \
cosmos1lvrwcvrqlc5ktzp2c4t22xgkx29q3y83lktgzl cosmos1vkv9sfwaak76weyamqx0flmng2vuquxqcuqukh cosmos106jwym4s9aujcmes26myzzwqsccw09sdm0v5au cosmos1c7wpeen2uv8thayf7g8q2rgpm29clj0dgrdtzw cosmos1mjxpv9ft30wer7ma7kwfxhm42l379xutplrdk6 \
cosmos1cjsxept9rkggzxztslae9ndgpdyt2408lk850u \
cosmos17d0jcz59jf68g52vq38tuuncmwwjk42u6mcxej

View File

@ -1 +0,0 @@
eyJhbGciOiJQQkVTMi1IUzI1NitBMTI4S1ciLCJjcmVhdGVkIjoiMjAyMC0wNS0wNyAwODozODoxNi40ODAzMjU3ICswMDAwIFVUQyBtPSswLjIyNDM1NjAwMSIsImVuYyI6IkEyNTZHQ00iLCJwMmMiOjgxOTIsInAycyI6IlFMeko4Q0F6ajBmWlBnZE8ifQ.7SBxLhnzZOmyPoIr83s8TXrHIJEBM0ejlF1Kr9fx_P5rfO822P3Deg.R_CIZSVj1I-wAqLr.IvSYNTrZl-h-itJKTjXnlFD_zrONKMVcxOP4S1rjCX10B-qwPFmmihf5mWVGYtg9F5DZ7_pw1UWUojd3943dfWDyZcLm5NQ5pPGiG1pmiFvcL1bQU7xUuJTfmyaY-jt_A1A05icIDHhnoJhfMRC1lMuEq-Jhel48KpVcN7x5-tHwLkPvLGa84gdjVwpAyApFqTKqOyAKftfwWx6ykAPN_6eNZ5g0jc45gcQdF75jlepHxnS3r302s6O9E4ac4gM.WW-84SVBxe5v_8o3Zh-ozg

View File

@ -0,0 +1 @@
eyJhbGciOiJQQkVTMi1IUzI1NitBMTI4S1ciLCJjcmVhdGVkIjoiMjAyMC0wNi0wMyAwNjowMToxNy45MTE4MzcxICswMDAwIFVUQyBtPSswLjE5ODczODEwMSIsImVuYyI6IkEyNTZHQ00iLCJwMmMiOjgxOTIsInAycyI6IktCTEQ0bExSOHNFVW1sY2cifQ.douBZnlWVpI85bOt8DqZ4y-_GodSPg4fIdqE0bchsZq2VX7ZIykmPw.iYpjf76bEr3WHyku.d6XK_xgCX5JZrr9admENAUw3xMJgWw8D3NOACIpsvIBRvVcFEBkR19zvfAQIjc4ZutGhzHNo5UXvpVzC5HKFag32U3D6h8zaUc-Fr7UjAtMutKDpGSBJtza4pyVa-zDl9l9c24j8Y7Fj214AeCHkD5oPf7qZ3rVbaw9rSnNllb7a61s5xwfqr6cb7MDiNmy9VM1CN6me3gxaqR4NyXpMDKW-ip9JsX-2vTyCzj6dtrX4QJOaWEfLaOG4l_Sq2Mo.oisTG_Xv_ZtMv7y-kgrRlw

View File

@ -1 +1 @@
$2a$10$UJ32gZBsFnrfrTrpSTDpTOU2oXeWrTrJ3z.sKb.AYSL/aFCjlfZPy
$2a$10$eCPc31WGil1Ce5DdNognJ.HCqqlQl5OJgAUCZlg9ZEyzlF4/hAqDq

View File

@ -1 +1 @@
eyJhbGciOiJQQkVTMi1IUzI1NitBMTI4S1ciLCJjcmVhdGVkIjoiMjAyMC0wNS0wNyAwODozODoxNi40NjY2MDA1ICswMDAwIFVUQyBtPSswLjIxMDYyOTQwMSIsImVuYyI6IkEyNTZHQ00iLCJwMmMiOjgxOTIsInAycyI6IkVHU3VZU2dOcXlYWDRPWTEifQ.Kbly0p7Z_07PNvdVDOs7uza9xA8kvxyR5VYpNiGWmNaG0G-b3Rr3UA.YQdmwWHZj9mwpFYa.EduAyotMKtLXF-wcCuceZTwFO-gKJvwFWeU5vj-BHkwsitav9g8o2Wg72Nl6XeHc_Mf4c2dKU9ewFtxG-az5W3A5oo7jO7h2JcR2dhPBBDdCwBHesabAZFnOwu2orQxHfpqKPRIY7-FloYm6DL08E4BL74yQxfcbG8PbgjXUruXa9AlpUvhlS_oNkrjJooGzMkndo4OxhAQn8VPHEkKo_8b0E33md-7eWxn5elKpyFBiPRY-hhUO7opTnoGyVO9FJPbQKLOFxs5-ujkljwv9SeAcpLuIEFWUcGlGIkgYnn20WE73T1p_HGTDAY0CGTJx_nH9fy6H6qmkzkmq82mZtxrb0dALtRxjuUPndV4V05CajFxP.k5d3ilCgkAgOD8pW0SRAYA
eyJhbGciOiJQQkVTMi1IUzI1NitBMTI4S1ciLCJjcmVhdGVkIjoiMjAyMC0wNi0wMyAwNjowMToxNy44OTMxOTA1ICswMDAwIFVUQyBtPSswLjE3OTk2MDUwMSIsImVuYyI6IkEyNTZHQ00iLCJwMmMiOjgxOTIsInAycyI6Ijh0WUo2dWgtOUtYUnI2Z1cifQ.aV0sfM5fQ4sRQxB8SnbdUlb1CpHrYUAbs27lS8fpACfEuJftL-abDw.VU7R45rnsYHY0n1E.t8zl9t0XA54oi5uJcWaV_IPyzzkId-ok2tezeC_0qOpD1UyMQuoobhOs1IxlxFsqh8Y48RfmacqGn1uLmTnhnpHlvAmjvOSm11BGyhA1aP2RladboJR08wIWnj1ONyPSHTCqe66500bH3J1I1WutDsb87Axs3MgU32WLR2gAM0XrSvAVmGmBv118S-pUYUFEbSmSmYIuZ1sJNMYERire4mV0pG0mzHgkzYDDeLBjqc9C_WAFNNaFRsuykEmnhsWetmoDy8HF4JoZ_JfWYPBzLDIG5wX60pEkvgGf4zex-vsz2YVEjgR4qmW_FcopnCGAGb-4i7sKrK0MdLbeZIAE05oiBQB-zmZG1ucBkj-1u9Fisql3.Bc_EoGtxY4dNz39W6Y12Uw

View File

@ -1,5 +1,5 @@
{
"genesis_time": "2020-05-07T08:38:16.2062323Z",
"genesis_time": "2020-06-03T06:01:17.4747987Z",
"chain_id": "testing",
"consensus_params": {
"block": {
@ -19,13 +19,45 @@
},
"app_hash": "",
"app_state": {
"bank": {
"send_enabled": true
},
"mint": {
"minter": {
"inflation": "0.130000000000000000",
"annual_provisions": "0.000000000000000000"
},
"params": {
"mint_denom": "ustake",
"inflation_rate_change": "0.130000000000000000",
"inflation_max": "0.200000000000000000",
"inflation_min": "0.070000000000000000",
"goal_bonded": "0.670000000000000000",
"blocks_per_year": "6311520"
}
},
"staking": {
"params": {
"unbonding_time": "1814400000000000",
"max_validators": 100,
"max_entries": 7,
"historical_entries": 0,
"bond_denom": "ustake"
},
"last_total_power": "0",
"last_validator_powers": null,
"validators": null,
"delegations": null,
"unbonding_delegations": null,
"redelegations": null,
"exported": false
},
"crisis": {
"constant_fee": {
"denom": "ustake",
"amount": "1000"
}
},
"params": null,
"gov": {
"starting_proposal_id": "1",
"deposits": null,
@ -49,66 +81,30 @@
"veto": "0.334000000000000000"
}
},
"wasm": {
"codes": null,
"contracts": null
"slashing": {
"params": {
"signed_blocks_window": "100",
"min_signed_per_window": "0.500000000000000000",
"downtime_jail_duration": "600000000000",
"slash_fraction_double_sign": "0.050000000000000000",
"slash_fraction_downtime": "0.010000000000000000"
},
"signing_infos": {},
"missed_blocks": {}
},
"params": null,
"evidence": {
"params": {
"max_evidence_age": "120000000000"
},
"evidence": []
},
"upgrade": {},
"genutil": {
"gentxs": [
{
"type": "cosmos-sdk/StdTx",
"value": {
"msg": [
{
"type": "cosmos-sdk/MsgCreateValidator",
"value": {
"description": {
"moniker": "testing",
"identity": "",
"website": "",
"security_contact": "",
"details": ""
},
"commission": {
"rate": "0.100000000000000000",
"max_rate": "0.200000000000000000",
"max_change_rate": "0.010000000000000000"
},
"min_self_delegation": "1",
"delegator_address": "cosmos1ea5cpmcj2vf5d0xwurncx7zdnmkuc6eql3wzfw",
"validator_address": "cosmosvaloper1ea5cpmcj2vf5d0xwurncx7zdnmkuc6eq696h9a",
"pubkey": "cosmosvalconspub1zcjduepqmclspfdyzvncwpthrz9je2ap3pc9hnzf335uguxaf4xv4cd246jqv3360q",
"value": {
"denom": "ustake",
"amount": "250000000"
}
}
}
],
"fee": {
"amount": [],
"gas": "200000"
},
"signatures": [
{
"pub_key": {
"type": "tendermint/PubKeySecp256k1",
"value": "A6BMOgVABSbSQfCTEE0FuVk5C3hEAs7+SskyD6cvwSh2"
},
"signature": "qpCjRu0eGSyNLlMiT+HOli7r3GN/hPQPM1KmiE0eQlowllX3EGyBo0dj5r1MFsHKL98Q16wxUnsHZbzFtT3BAw=="
}
],
"memo": "b1917ea1ed45b406564fb5c8adb531e4314f086c@172.17.0.3:26656"
}
}
]
"supply": {
"supply": []
},
"wasm": {
"codes": null,
"contracts": null
},
"auth": {
"params": {
@ -122,7 +118,7 @@
{
"type": "cosmos-sdk/Account",
"value": {
"address": "cosmos1ea5cpmcj2vf5d0xwurncx7zdnmkuc6eql3wzfw",
"address": "cosmos1gjvanqxc774u6ed9thj4gpn9gj5zus5u57dxvq",
"coins": [
{
"denom": "ucosm",
@ -233,6 +229,196 @@
"sequence": 0
}
},
{
"type": "cosmos-sdk/Account",
"value": {
"address": "cosmos14qemq0vw6y3gc3u3e0aty2e764u4gs5le3hada",
"coins": [
{
"denom": "ucosm",
"amount": "1000000000"
},
{
"denom": "ustake",
"amount": "1000000000"
}
],
"public_key": "",
"account_number": 0,
"sequence": 0
}
},
{
"type": "cosmos-sdk/Account",
"value": {
"address": "cosmos1hhg2rlu9jscacku2wwckws7932qqqu8x3gfgw0",
"coins": [
{
"denom": "ucosm",
"amount": "1000000000"
},
{
"denom": "ustake",
"amount": "1000000000"
}
],
"public_key": "",
"account_number": 0,
"sequence": 0
}
},
{
"type": "cosmos-sdk/Account",
"value": {
"address": "cosmos1xv9tklw7d82sezh9haa573wufgy59vmwe6xxe5",
"coins": [
{
"denom": "ucosm",
"amount": "1000000000"
},
{
"denom": "ustake",
"amount": "1000000000"
}
],
"public_key": "",
"account_number": 0,
"sequence": 0
}
},
{
"type": "cosmos-sdk/Account",
"value": {
"address": "cosmos17yg9mssjenmc3jkqth6ulcwj9cxujrxxzezwta",
"coins": [
{
"denom": "ucosm",
"amount": "1000000000"
},
{
"denom": "ustake",
"amount": "1000000000"
}
],
"public_key": "",
"account_number": 0,
"sequence": 0
}
},
{
"type": "cosmos-sdk/Account",
"value": {
"address": "cosmos1f7j7ryulwjfe9ljplvhtcaxa6wqgula3etktce",
"coins": [
{
"denom": "ucosm",
"amount": "1000000000"
},
{
"denom": "ustake",
"amount": "1000000000"
}
],
"public_key": "",
"account_number": 0,
"sequence": 0
}
},
{
"type": "cosmos-sdk/Account",
"value": {
"address": "cosmos1lvrwcvrqlc5ktzp2c4t22xgkx29q3y83lktgzl",
"coins": [
{
"denom": "ucosm",
"amount": "1000000000"
},
{
"denom": "ustake",
"amount": "1000000000"
}
],
"public_key": "",
"account_number": 0,
"sequence": 0
}
},
{
"type": "cosmos-sdk/Account",
"value": {
"address": "cosmos1vkv9sfwaak76weyamqx0flmng2vuquxqcuqukh",
"coins": [
{
"denom": "ucosm",
"amount": "1000000000"
},
{
"denom": "ustake",
"amount": "1000000000"
}
],
"public_key": "",
"account_number": 0,
"sequence": 0
}
},
{
"type": "cosmos-sdk/Account",
"value": {
"address": "cosmos106jwym4s9aujcmes26myzzwqsccw09sdm0v5au",
"coins": [
{
"denom": "ucosm",
"amount": "1000000000"
},
{
"denom": "ustake",
"amount": "1000000000"
}
],
"public_key": "",
"account_number": 0,
"sequence": 0
}
},
{
"type": "cosmos-sdk/Account",
"value": {
"address": "cosmos1c7wpeen2uv8thayf7g8q2rgpm29clj0dgrdtzw",
"coins": [
{
"denom": "ucosm",
"amount": "1000000000"
},
{
"denom": "ustake",
"amount": "1000000000"
}
],
"public_key": "",
"account_number": 0,
"sequence": 0
}
},
{
"type": "cosmos-sdk/Account",
"value": {
"address": "cosmos1mjxpv9ft30wer7ma7kwfxhm42l379xutplrdk6",
"coins": [
{
"denom": "ucosm",
"amount": "1000000000"
},
{
"denom": "ustake",
"amount": "1000000000"
}
],
"public_key": "",
"account_number": 0,
"sequence": 0
}
},
{
"type": "cosmos-sdk/Account",
"value": {
@ -292,52 +478,56 @@
"delegator_starting_infos": [],
"validator_slash_events": []
},
"slashing": {
"params": {
"signed_blocks_window": "100",
"min_signed_per_window": "0.500000000000000000",
"downtime_jail_duration": "600000000000",
"slash_fraction_double_sign": "0.050000000000000000",
"slash_fraction_downtime": "0.010000000000000000"
},
"signing_infos": {},
"missed_blocks": {}
"genutil": {
"gentxs": [
{
"type": "cosmos-sdk/StdTx",
"value": {
"msg": [
{
"type": "cosmos-sdk/MsgCreateValidator",
"value": {
"description": {
"moniker": "testing",
"identity": "",
"website": "",
"security_contact": "",
"details": ""
},
"commission": {
"rate": "0.100000000000000000",
"max_rate": "0.200000000000000000",
"max_change_rate": "0.010000000000000000"
},
"min_self_delegation": "1",
"delegator_address": "cosmos1gjvanqxc774u6ed9thj4gpn9gj5zus5u57dxvq",
"validator_address": "cosmosvaloper1gjvanqxc774u6ed9thj4gpn9gj5zus5u32enqn",
"pubkey": "cosmosvalconspub1zcjduepqau36ht2r742jh230pxlu4wjmwcmkwpeqava80acphsu87vt5xlpqx6g7qh",
"value": {
"denom": "ustake",
"amount": "250000000"
}
}
}
],
"fee": {
"amount": [],
"gas": "200000"
},
"signatures": [
{
"pub_key": {
"type": "tendermint/PubKeySecp256k1",
"value": "A3tH1WyBdpZ9pgfi7TExB39aM7VkN4boCDO9zwrVp/i9"
},
"signature": "U6kUzK7dQ6arkAal+6N/nCpr/qW0Q8lAFckZZBoV63YFaXxHFyTPMR2i4zZkoQoRfYPvF+9gGjdiC1gpgJzgTg=="
}
],
"memo": "e9d5fa279f541954cc7e01521bbfee577acf73d3@172.17.0.3:26656"
}
}
]
},
"supply": {
"supply": []
},
"bank": {
"send_enabled": true
},
"staking": {
"params": {
"unbonding_time": "1814400000000000",
"max_validators": 100,
"max_entries": 7,
"historical_entries": 0,
"bond_denom": "ustake"
},
"last_total_power": "0",
"last_validator_powers": null,
"validators": null,
"delegations": null,
"unbonding_delegations": null,
"redelegations": null,
"exported": false
},
"mint": {
"minter": {
"inflation": "0.130000000000000000",
"annual_provisions": "0.000000000000000000"
},
"params": {
"mint_denom": "ustake",
"inflation_rate_change": "0.130000000000000000",
"inflation_max": "0.200000000000000000",
"inflation_min": "0.070000000000000000",
"goal_bonded": "0.670000000000000000",
"blocks_per_year": "6311520"
}
}
"upgrade": {}
}
}

View File

@ -1 +0,0 @@
{"type":"cosmos-sdk/StdTx","value":{"msg":[{"type":"cosmos-sdk/MsgCreateValidator","value":{"description":{"moniker":"testing","identity":"","website":"","security_contact":"","details":""},"commission":{"rate":"0.100000000000000000","max_rate":"0.200000000000000000","max_change_rate":"0.010000000000000000"},"min_self_delegation":"1","delegator_address":"cosmos1ea5cpmcj2vf5d0xwurncx7zdnmkuc6eql3wzfw","validator_address":"cosmosvaloper1ea5cpmcj2vf5d0xwurncx7zdnmkuc6eq696h9a","pubkey":"cosmosvalconspub1zcjduepqmclspfdyzvncwpthrz9je2ap3pc9hnzf335uguxaf4xv4cd246jqv3360q","value":{"denom":"ustake","amount":"250000000"}}}],"fee":{"amount":[],"gas":"200000"},"signatures":[{"pub_key":{"type":"tendermint/PubKeySecp256k1","value":"A6BMOgVABSbSQfCTEE0FuVk5C3hEAs7+SskyD6cvwSh2"},"signature":"qpCjRu0eGSyNLlMiT+HOli7r3GN/hPQPM1KmiE0eQlowllX3EGyBo0dj5r1MFsHKL98Q16wxUnsHZbzFtT3BAw=="}],"memo":"b1917ea1ed45b406564fb5c8adb531e4314f086c@172.17.0.3:26656"}}

View File

@ -0,0 +1 @@
{"type":"cosmos-sdk/StdTx","value":{"msg":[{"type":"cosmos-sdk/MsgCreateValidator","value":{"description":{"moniker":"testing","identity":"","website":"","security_contact":"","details":""},"commission":{"rate":"0.100000000000000000","max_rate":"0.200000000000000000","max_change_rate":"0.010000000000000000"},"min_self_delegation":"1","delegator_address":"cosmos1gjvanqxc774u6ed9thj4gpn9gj5zus5u57dxvq","validator_address":"cosmosvaloper1gjvanqxc774u6ed9thj4gpn9gj5zus5u32enqn","pubkey":"cosmosvalconspub1zcjduepqau36ht2r742jh230pxlu4wjmwcmkwpeqava80acphsu87vt5xlpqx6g7qh","value":{"denom":"ustake","amount":"250000000"}}}],"fee":{"amount":[],"gas":"200000"},"signatures":[{"pub_key":{"type":"tendermint/PubKeySecp256k1","value":"A3tH1WyBdpZ9pgfi7TExB39aM7VkN4boCDO9zwrVp/i9"},"signature":"U6kUzK7dQ6arkAal+6N/nCpr/qW0Q8lAFckZZBoV63YFaXxHFyTPMR2i4zZkoQoRfYPvF+9gGjdiC1gpgJzgTg=="}],"memo":"e9d5fa279f541954cc7e01521bbfee577acf73d3@172.17.0.3:26656"}}

View File

@ -1 +1 @@
{"priv_key":{"type":"tendermint/PrivKeyEd25519","value":"W2C/2ngeYVSOA7CNZOMDtMbd7e24iOmST4Iucmn5gPvADvb3X/6+18V6T8MYmKZC6l1ix/+ifmJJrVrnVrfTww=="}}
{"priv_key":{"type":"tendermint/PrivKeyEd25519","value":"rqCDCe+vPsO3BKaxhK+Awi5PyM3BHtfM2WYEdWKXHdTPQPJeLhSji59JeBhZpF2AW1QNqeD3WRiBEDFXl4svIA=="}}

View File

@ -1,11 +1,11 @@
{
"address": "8BB488F76BC08121E01A5EEC7EB041FB1BC1FE31",
"address": "2125DEB20C29FEE99EF92FC5895F2911093A9888",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "3j8ApaQTJ4cFdxiLLKuhiHBbzEmMacRw3U1MyuGqrqQ="
"value": "7yOrrUP1VSuqLwm/yrpbdjdnByDrOnf3Abw4fzF0N8I="
},
"priv_key": {
"type": "tendermint/PrivKeyEd25519",
"value": "2E+x3h2DDfQ2X1fBaTVi9LQMzkbpTxWm0gEy8ZJECJDePwClpBMnhwV3GIssq6GIcFvMSYxpxHDdTUzK4aqupA=="
"value": "5QbYu503DV7c/hHR0WYLNTTTdgM9RlBb0eIJVB8T6G/vI6utQ/VVK6ovCb/Kult2N2cHIOs6d/cBvDh/MXQ3wg=="
}
}