From c82516a5575b68445db39d98be5a6a2c1835bcdb Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Tue, 18 Feb 2020 16:13:17 +0100 Subject: [PATCH 1/8] Add Guest account for manual testing --- scripts/wasmd/README.md | 4 + scripts/wasmd/generate_template.sh | 2 +- ...xz755ul9u7mm6naqr8z57vpwygzg4dr7ng.address | 1 + ...v8h6a75z9zdde7cmxv4fdz75appy7h5wvg.address | 1 - scripts/wasmd/template/.wasmcli/keyhash | 2 +- .../wasmd/template/.wasmcli/validator.info | 2 +- .../wasmd/template/.wasmd/config/genesis.json | 301 ++++++++++-------- ...89558533ad6df13f96bfb7c8ae44b457a919a.json | 1 - ...4858c45bd94c7ed875736014ae30dfc4cb232.json | 1 + .../template/.wasmd/config/node_key.json | 2 +- .../.wasmd/config/priv_validator_key.json | 6 +- 11 files changed, 173 insertions(+), 150 deletions(-) create mode 100644 scripts/wasmd/template/.wasmcli/cosmos1pmsqxz755ul9u7mm6naqr8z57vpwygzg4dr7ng.address delete mode 100644 scripts/wasmd/template/.wasmcli/cosmos1wreev8h6a75z9zdde7cmxv4fdz75appy7h5wvg.address delete mode 100644 scripts/wasmd/template/.wasmd/config/gentx/gentx-67289558533ad6df13f96bfb7c8ae44b457a919a.json create mode 100644 scripts/wasmd/template/.wasmd/config/gentx/gentx-c064858c45bd94c7ed875736014ae30dfc4cb232.json diff --git a/scripts/wasmd/README.md b/scripts/wasmd/README.md index a698a8d6..6fab941b 100644 --- a/scripts/wasmd/README.md +++ b/scripts/wasmd/README.md @@ -90,3 +90,7 @@ You should get output matching the following: oyster design unusual machine spread century engine gravity focus cave carry slot
ArkCaFUJ/IH+vKBmNRCdUVl3mCAhbopk9jjW4Ko4OfRQ
cosmos1cjsxept9rkggzxztslae9ndgpdyt2408lk850u +3. Guest: account for manual testing
+ degree tackle suggest window test behind mesh extra cover prepare oak script
+ Am/+YV0LaeqQPu7BDJuDHV7J8y68ptkGs10YS+9s71Nq
+ cosmos17d0jcz59jf68g52vq38tuuncmwwjk42u6mcxej diff --git a/scripts/wasmd/generate_template.sh b/scripts/wasmd/generate_template.sh index 9a448adc..63eb9f80 100755 --- a/scripts/wasmd/generate_template.sh +++ b/scripts/wasmd/generate_template.sh @@ -16,7 +16,7 @@ docker run --rm \ --mount type=bind,source="$SCRIPT_DIR/template",target=/root \ "$REPOSITORY:$VERSION" \ ./setup.sh \ - cosmos1pkptre7fdkl6gfrzlesjjvhxhlc3r4gmmk8rs6 cosmos1cjsxept9rkggzxztslae9ndgpdyt2408lk850u + cosmos1pkptre7fdkl6gfrzlesjjvhxhlc3r4gmmk8rs6 cosmos1cjsxept9rkggzxztslae9ndgpdyt2408lk850u cosmos17d0jcz59jf68g52vq38tuuncmwwjk42u6mcxej # The ./template folder is created by the docker daemon's user (root on Linux, current user # when using Docker Desktop on macOS), let's make it ours if needed diff --git a/scripts/wasmd/template/.wasmcli/cosmos1pmsqxz755ul9u7mm6naqr8z57vpwygzg4dr7ng.address b/scripts/wasmd/template/.wasmcli/cosmos1pmsqxz755ul9u7mm6naqr8z57vpwygzg4dr7ng.address new file mode 100644 index 00000000..0c9744ea --- /dev/null +++ b/scripts/wasmd/template/.wasmcli/cosmos1pmsqxz755ul9u7mm6naqr8z57vpwygzg4dr7ng.address @@ -0,0 +1 @@ +eyJhbGciOiJQQkVTMi1IUzI1NitBMTI4S1ciLCJjcmVhdGVkIjoiMjAyMC0wMi0xOCAxNToxMjowNC4xMDQxNjI1ICswMDAwIFVUQyBtPSswLjMyMDEwNDEwMSIsImVuYyI6IkEyNTZHQ00iLCJwMmMiOjgxOTIsInAycyI6Ik5XdGp5MmZGR0RNV0xiTjIifQ.-kj99E7nORiGyJ7RzSDNlkA9VSZr2azZcBP8MWi1OfHxfyE5O0sw5A.F6v3B_uBKWw2ULK5.5R8ihTadacZcRL-qwRbAXIHfFqqg8sP_1_BuLQeGkKLBzV3buzeBNjNoh_4qtym1LJuzsIbof8wavzLL8MkBVINIW0Z9S2uS4_O759gEBCvnHv0hOd4iSfUI9MG8645PkZv6GNnC2ORYMAZJvUpnWHEZm7NRAHWj-dCdpthWX36Nj-UiibjnDN4bsCEtLmo6gbzOA-M85Y5Qyj0o3-l16X7triiqKzY9OZP8rAnx8RC3BxBR_9E9bWumJ5OdRw4.ZtcbN7CvBsCnH6G9UY5x6Q \ No newline at end of file diff --git a/scripts/wasmd/template/.wasmcli/cosmos1wreev8h6a75z9zdde7cmxv4fdz75appy7h5wvg.address b/scripts/wasmd/template/.wasmcli/cosmos1wreev8h6a75z9zdde7cmxv4fdz75appy7h5wvg.address deleted file mode 100644 index 60300308..00000000 --- a/scripts/wasmd/template/.wasmcli/cosmos1wreev8h6a75z9zdde7cmxv4fdz75appy7h5wvg.address +++ /dev/null @@ -1 +0,0 @@ -eyJhbGciOiJQQkVTMi1IUzI1NitBMTI4S1ciLCJjcmVhdGVkIjoiMjAyMC0wMi0wOSAxMTowNTozMi4wNjg2NzQ1ICswMDAwIFVUQyBtPSswLjIyNTA4MDAwMSIsImVuYyI6IkEyNTZHQ00iLCJwMmMiOjgxOTIsInAycyI6ImR3S2hTZDJfT1c4UDkyY00ifQ._x85VK6XkQ6XVU4zoSEEjAtMO7qCoSGWiVIo0OJtbksUCWsYhbRPTg.09Qg67smHfoMlScZ.YDYvL193V0G2u9fuJYF-1CSykfctJv8VFpQR3eYroPT233CQI9uXb2KUAK0lP_4AIrDREvkVv1CWQ3Wa0WTGSrOFepIB2X3AFGAf2gw8OsZybdsRiN2Y__7Ljmo7rNjMur9L53fiY7Y4eN83oP9034FovfByDeAL85Lwc0r1Jbf9u4wEB4QudtlFGjfbgfUw4MBDImpmI1dPfnw_1izqWgvlbDlpAzQUALo90gCHtwuCOsVgpCNeFOci5eV60LA.kNLZneL-i5Dzi8Xhi8bU_w \ No newline at end of file diff --git a/scripts/wasmd/template/.wasmcli/keyhash b/scripts/wasmd/template/.wasmcli/keyhash index 9b1c2dc6..5e2ac784 100755 --- a/scripts/wasmd/template/.wasmcli/keyhash +++ b/scripts/wasmd/template/.wasmcli/keyhash @@ -1 +1 @@ -$2a$10$wE2S5ENI/eoNUjFTtNCisOmJWW0h0yIVHBr1CjlrDzcCDBRozAZqO \ No newline at end of file +$2a$10$KBpztuuiI6ifCrIwZV3dpOvJ.Wcv0D5NNQRDCCAkK5C9EzlAMAT/2 \ No newline at end of file diff --git a/scripts/wasmd/template/.wasmcli/validator.info b/scripts/wasmd/template/.wasmcli/validator.info index dbfdf11a..2e4743bf 100644 --- a/scripts/wasmd/template/.wasmcli/validator.info +++ b/scripts/wasmd/template/.wasmcli/validator.info @@ -1 +1 @@ -eyJhbGciOiJQQkVTMi1IUzI1NitBMTI4S1ciLCJjcmVhdGVkIjoiMjAyMC0wMi0wOSAxMTowNTozMi4wNDgzNjkzICswMDAwIFVUQyBtPSswLjIwNDc3NjcwMSIsImVuYyI6IkEyNTZHQ00iLCJwMmMiOjgxOTIsInAycyI6IkRfU1A3Ni1zU3lCRkY0cUQifQ.CPLPgBUrK53I4uLXRR7ba78yQlfio1QI6xedzWjCnTlKEUIdso1c7g.SvJq7pwz3Z86LrNU.03eoFsTiIAfHa2XH14Rgh7bvUnzkH_q4ljLyweN93GVIQIgWjqhRXzaf3ZdZ34i5H0TIs9xr7LcvbttvsUpetw1GjujFboY6hDWhMD0hOE67NysQPIYIsIbC76y5O5_Q6HVZ14vxuEbxgF8qJjGUnpAwqoNwUDBQr8Nju8ZpcAt9Y9VGDw-wiYS3TuYLEED84XQuUwWAIbQNbqvRaY6ZuVtL30-j1cVpy6AyuHmKlFS5L7ddB64eQfni9LErc2VqTnBZypuuaJ1CuGwL1gM0cQrtpRXM-rmSFvu0nXciDqJ2bIUa3qBwULtnBaVqSSAkrj-DgTbHPWhX7RyJoVObEqtQ_XRrB252aKj5HudlYjUThE3O.JWWfqTMVbUQpqUTfepEixA \ No newline at end of file +eyJhbGciOiJQQkVTMi1IUzI1NitBMTI4S1ciLCJjcmVhdGVkIjoiMjAyMC0wMi0xOCAxNToxMjowNC4wNjIzNTQ0ICswMDAwIFVUQyBtPSswLjI3ODMwMTAwMSIsImVuYyI6IkEyNTZHQ00iLCJwMmMiOjgxOTIsInAycyI6InBTaWpUWjdZdWMzRUtIWmkifQ.7Eeibj2aQsJ6CFFqQc8IZCbNu7CyS3nbY2mD39Ipy-YsFxjecBUrfA.D04K3EtsF9wL_eqU.TKHX_2FqZ6QZTYs3FwavdSJWybVSngtS7K9awvS_GPxliB8XxMqmlpqUPO8B6nFjtAlE4NRgFAWhIUjf_GSzdS385RS14_bQ9zGajnVs3TBCCEP2c8SP7EImakkjnlGQ8u8gOMboB92tGEQIdPxQFGs7JmMzeJvk3LbAMgQAYnbUowLsdU3c5bUEIK5kyLqnUf7IgIjQfHzipJR227aQC-jjPSQ7QWmnM2EozQ7KFeKbL7m1uw4fhFGcajzpGkeS2p3UvY_q4EHJCX5VL1sqGIe-DFhcaw6ZqnePQl__LVtG-PBmVMLAGC3uYYbAb0hINHjnd9pNzqV-NaobSzFXi8Oi2QomYi9IDgdsoWwwQQnw6auO.QBap3Xg9mTu9I2tyFpzGIA \ No newline at end of file diff --git a/scripts/wasmd/template/.wasmd/config/genesis.json b/scripts/wasmd/template/.wasmd/config/genesis.json index c217021d..4e5bf893 100644 --- a/scripts/wasmd/template/.wasmd/config/genesis.json +++ b/scripts/wasmd/template/.wasmd/config/genesis.json @@ -1,5 +1,5 @@ { - "genesis_time": "2020-02-09T11:05:31.7520515Z", + "genesis_time": "2020-02-18T15:12:03.6027603Z", "chain_id": "testing", "consensus_params": { "block": { @@ -19,48 +19,6 @@ }, "app_hash": "", "app_state": { - "distribution": { - "params": { - "community_tax": "0.020000000000000000", - "base_proposer_reward": "0.010000000000000000", - "bonus_proposer_reward": "0.040000000000000000", - "withdraw_addr_enabled": true - }, - "fee_pool": { - "community_pool": [] - }, - "delegator_withdraw_infos": [], - "previous_proposer": "", - "outstanding_rewards": [], - "validator_accumulated_commissions": [], - "validator_historical_rewards": [], - "validator_current_rewards": [], - "delegator_starting_infos": [], - "validator_slash_events": [] - }, - "gov": { - "starting_proposal_id": "1", - "deposits": null, - "votes": null, - "proposals": null, - "deposit_params": { - "min_deposit": [ - { - "denom": "ustake", - "amount": "10000000" - } - ], - "max_deposit_period": "172800000000000" - }, - "voting_params": { - "voting_period": "172800000000000" - }, - "tally_params": { - "quorum": "0.334000000000000000", - "threshold": "0.500000000000000000", - "veto": "0.334000000000000000" - } - }, "slashing": { "params": { "signed_blocks_window": "100", @@ -72,101 +30,6 @@ "signing_infos": {}, "missed_blocks": {} }, - "supply": { - "supply": [] - }, - "wasm": { - "codes": null, - "contracts": null - }, - "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" - } - }, - "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": "cosmos1wreev8h6a75z9zdde7cmxv4fdz75appy7h5wvg", - "validator_address": "cosmosvaloper1wreev8h6a75z9zdde7cmxv4fdz75appymrqmqm", - "pubkey": "cosmosvalconspub1zcjduepq0hlq4z5lt56ly07u79w3v3m9g59ms0kk7lykn5qvn48267s899hsdtxe88", - "value": { - "denom": "ustake", - "amount": "250000000" - } - } - } - ], - "fee": { - "amount": [], - "gas": "200000" - }, - "signatures": [ - { - "pub_key": { - "type": "tendermint/PubKeySecp256k1", - "value": "AjiLD/neb68jAuQI6XAeGfHf9xWz0k05QxVCJtHh2JCQ" - }, - "signature": "+jsUfDU6Ji7li432ryDyVA3GBh82FQN8ufGuX9As+PptSmY8twa2sRD683dglBdq7DBSfxYQ4wSHU7zdzWmp6A==" - } - ], - "memo": "67289558533ad6df13f96bfb7c8ae44b457a919a@172.17.0.3:26656" - } - } - ] - }, - "evidence": { - "params": { - "max_evidence_age": "120000000000" - }, - "evidence": [] - }, - "params": null, - "upgrade": {}, - "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 - }, "auth": { "params": { "max_memo_characters": "256", @@ -179,7 +42,7 @@ { "type": "cosmos-sdk/Account", "value": { - "address": "cosmos1wreev8h6a75z9zdde7cmxv4fdz75appy7h5wvg", + "address": "cosmos1pmsqxz755ul9u7mm6naqr8z57vpwygzg4dr7ng", "coins": [ { "denom": "ucosm", @@ -232,17 +95,173 @@ "account_number": 0, "sequence": 0 } + }, + { + "type": "cosmos-sdk/Account", + "value": { + "address": "cosmos17d0jcz59jf68g52vq38tuuncmwwjk42u6mcxej", + "coins": [ + { + "denom": "ucosm", + "amount": "1000000000" + }, + { + "denom": "ustake", + "amount": "1000000000" + } + ], + "public_key": "", + "account_number": 0, + "sequence": 0 + } } ] }, + "params": null, + "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": "cosmos1pmsqxz755ul9u7mm6naqr8z57vpwygzg4dr7ng", + "validator_address": "cosmosvaloper1pmsqxz755ul9u7mm6naqr8z57vpwygzgsehtlm", + "pubkey": "cosmosvalconspub1zcjduepqsy5ztk6n6a78w9lhf8vew4fpylcgtlt989dfz84jhgmqy2qk0zjqesfvtx", + "value": { + "denom": "ustake", + "amount": "250000000" + } + } + } + ], + "fee": { + "amount": [], + "gas": "200000" + }, + "signatures": [ + { + "pub_key": { + "type": "tendermint/PubKeySecp256k1", + "value": "A/iVJJOJPgTk5Pb8YBfa1+x067H2FNMXZltax6K6YSx6" + }, + "signature": "YDNKqJwbCHvvvOAKdLFaQDdvdXI9Kweq6etRX0HVJcUFj1EANs2oJ48FvxlVA7H6lJJgxeB7rZvE+HPjdUhJwQ==" + } + ], + "memo": "c064858c45bd94c7ed875736014ae30dfc4cb232@172.17.0.11:26656" + } + } + ] + }, + "bank": { + "send_enabled": true + }, + "gov": { + "starting_proposal_id": "1", + "deposits": null, + "votes": null, + "proposals": null, + "deposit_params": { + "min_deposit": [ + { + "denom": "ustake", + "amount": "10000000" + } + ], + "max_deposit_period": "172800000000000" + }, + "voting_params": { + "voting_period": "172800000000000" + }, + "tally_params": { + "quorum": "0.334000000000000000", + "threshold": "0.500000000000000000", + "veto": "0.334000000000000000" + } + }, + "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": {}, + "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 + }, + "evidence": { + "params": { + "max_evidence_age": "120000000000" + }, + "evidence": [] + }, + "wasm": { + "codes": null, + "contracts": null + }, + "distribution": { + "params": { + "community_tax": "0.020000000000000000", + "base_proposer_reward": "0.010000000000000000", + "bonus_proposer_reward": "0.040000000000000000", + "withdraw_addr_enabled": true + }, + "fee_pool": { + "community_pool": [] + }, + "delegator_withdraw_infos": [], + "previous_proposer": "", + "outstanding_rewards": [], + "validator_accumulated_commissions": [], + "validator_historical_rewards": [], + "validator_current_rewards": [], + "delegator_starting_infos": [], + "validator_slash_events": [] + }, "crisis": { "constant_fee": { "denom": "ustake", "amount": "1000" } }, - "bank": { - "send_enabled": true + "supply": { + "supply": [] } } } \ No newline at end of file diff --git a/scripts/wasmd/template/.wasmd/config/gentx/gentx-67289558533ad6df13f96bfb7c8ae44b457a919a.json b/scripts/wasmd/template/.wasmd/config/gentx/gentx-67289558533ad6df13f96bfb7c8ae44b457a919a.json deleted file mode 100644 index 5a90e9e6..00000000 --- a/scripts/wasmd/template/.wasmd/config/gentx/gentx-67289558533ad6df13f96bfb7c8ae44b457a919a.json +++ /dev/null @@ -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":"cosmos1wreev8h6a75z9zdde7cmxv4fdz75appy7h5wvg","validator_address":"cosmosvaloper1wreev8h6a75z9zdde7cmxv4fdz75appymrqmqm","pubkey":"cosmosvalconspub1zcjduepq0hlq4z5lt56ly07u79w3v3m9g59ms0kk7lykn5qvn48267s899hsdtxe88","value":{"denom":"ustake","amount":"250000000"}}}],"fee":{"amount":[],"gas":"200000"},"signatures":[{"pub_key":{"type":"tendermint/PubKeySecp256k1","value":"AjiLD/neb68jAuQI6XAeGfHf9xWz0k05QxVCJtHh2JCQ"},"signature":"+jsUfDU6Ji7li432ryDyVA3GBh82FQN8ufGuX9As+PptSmY8twa2sRD683dglBdq7DBSfxYQ4wSHU7zdzWmp6A=="}],"memo":"67289558533ad6df13f96bfb7c8ae44b457a919a@172.17.0.3:26656"}} diff --git a/scripts/wasmd/template/.wasmd/config/gentx/gentx-c064858c45bd94c7ed875736014ae30dfc4cb232.json b/scripts/wasmd/template/.wasmd/config/gentx/gentx-c064858c45bd94c7ed875736014ae30dfc4cb232.json new file mode 100644 index 00000000..9bccfe4a --- /dev/null +++ b/scripts/wasmd/template/.wasmd/config/gentx/gentx-c064858c45bd94c7ed875736014ae30dfc4cb232.json @@ -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":"cosmos1pmsqxz755ul9u7mm6naqr8z57vpwygzg4dr7ng","validator_address":"cosmosvaloper1pmsqxz755ul9u7mm6naqr8z57vpwygzgsehtlm","pubkey":"cosmosvalconspub1zcjduepqsy5ztk6n6a78w9lhf8vew4fpylcgtlt989dfz84jhgmqy2qk0zjqesfvtx","value":{"denom":"ustake","amount":"250000000"}}}],"fee":{"amount":[],"gas":"200000"},"signatures":[{"pub_key":{"type":"tendermint/PubKeySecp256k1","value":"A/iVJJOJPgTk5Pb8YBfa1+x067H2FNMXZltax6K6YSx6"},"signature":"YDNKqJwbCHvvvOAKdLFaQDdvdXI9Kweq6etRX0HVJcUFj1EANs2oJ48FvxlVA7H6lJJgxeB7rZvE+HPjdUhJwQ=="}],"memo":"c064858c45bd94c7ed875736014ae30dfc4cb232@172.17.0.11:26656"}} diff --git a/scripts/wasmd/template/.wasmd/config/node_key.json b/scripts/wasmd/template/.wasmd/config/node_key.json index d380c3bc..3b894be9 100644 --- a/scripts/wasmd/template/.wasmd/config/node_key.json +++ b/scripts/wasmd/template/.wasmd/config/node_key.json @@ -1 +1 @@ -{"priv_key":{"type":"tendermint/PrivKeyEd25519","value":"i42pVrwetpGZFC78UUNhL6Bk41/N3sKDW9XKNz+IOm/JX5aN10vUrpA52DXOQNug55lTvTyuPR8izLSBcovIrg=="}} \ No newline at end of file +{"priv_key":{"type":"tendermint/PrivKeyEd25519","value":"dJxiYKRVk5sGYnadvNtXJeNwwJXL027GAhZxfEqKITiK63NC/mtK2p+Xk7o17FxV3bEZgAMHpdKCfUid+8k4Eg=="}} \ No newline at end of file diff --git a/scripts/wasmd/template/.wasmd/config/priv_validator_key.json b/scripts/wasmd/template/.wasmd/config/priv_validator_key.json index 1a4b6f20..b8d56435 100644 --- a/scripts/wasmd/template/.wasmd/config/priv_validator_key.json +++ b/scripts/wasmd/template/.wasmd/config/priv_validator_key.json @@ -1,11 +1,11 @@ { - "address": "3FBF50B72FE062495F150AEB78D1981E7DAEBE60", + "address": "D8004608AFC0F2022DA49EB200FE6950D0991C01", "pub_key": { "type": "tendermint/PubKeyEd25519", - "value": "ff4Kip9dNfI/3PFdFkdlRQu4Ptb3yWnQDJ1OrXoHKW8=" + "value": "gSgl21PXfHcX90nZl1UhJ/CF/WU5WpEesro2AigWeKQ=" }, "priv_key": { "type": "tendermint/PrivKeyEd25519", - "value": "yMKZJArmVw5zXDTHbYR0sNRqugzW3HNbO6yK5bOHYBp9/gqKn1018j/c8V0WR2VFC7g+1vfJadAMnU6tegcpbw==" + "value": "/drcoXTemHTY+V9UDuWVsEB+elJ6EKUdnIhAFjmJJ2eBKCXbU9d8dxf3SdmXVSEn8IX9ZTlakR6yujYCKBZ4pA==" } } \ No newline at end of file From af45c254ca2cd4f218095f2b8fbeae5594425ea8 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Tue, 18 Feb 2020 13:24:32 +0100 Subject: [PATCH 2/8] Unpad integers r, s in Secp256k1Signature constructor Closes #100 --- packages/bcp/src/cosmwasmconnection.spec.ts | 10 +++++++--- packages/sdk/package.json | 4 +++- packages/sdk/src/index.ts | 6 +++++- packages/sdk/src/pen.spec.ts | 6 +++--- packages/sdk/src/sequence.ts | 6 +++--- packages/sdk/src/signature.ts | 9 +++++++++ packages/sdk/types/index.d.ts | 6 +++++- packages/sdk/types/signature.d.ts | 2 ++ 8 files changed, 37 insertions(+), 12 deletions(-) diff --git a/packages/bcp/src/cosmwasmconnection.spec.ts b/packages/bcp/src/cosmwasmconnection.spec.ts index c02fc489..6a74af14 100644 --- a/packages/bcp/src/cosmwasmconnection.spec.ts +++ b/packages/bcp/src/cosmwasmconnection.spec.ts @@ -1,4 +1,8 @@ -import { CosmosAddressBech32Prefix, decodeSignature } from "@cosmwasm/sdk"; +import { + CosmosAddressBech32Prefix, + decodeSignature, + makeSecp256k1SignatureFromFixedLength, +} from "@cosmwasm/sdk"; import { Account, Address, @@ -17,7 +21,7 @@ import { TransactionState, UnsignedTransaction, } from "@iov/bcp"; -import { Random, Secp256k1, Secp256k1Signature, Sha256 } from "@iov/crypto"; +import { Random, Secp256k1, Sha256 } from "@iov/crypto"; import { Bech32, Encoding } from "@iov/encoding"; import { HdPaths, Secp256k1HdWallet, UserProfile } from "@iov/keycontrol"; import { assert } from "@iov/utils"; @@ -475,7 +479,7 @@ describe("CosmWasmConnection", () => { const { pubkey, signature } = decodeSignature(encodeFullSignature(signatures[0])); const prehashed = new Sha256(signBytes).digest(); const valid = await Secp256k1.verifySignature( - new Secp256k1Signature(signature.slice(0, 32), signature.slice(32, 64)), + makeSecp256k1SignatureFromFixedLength(signature), prehashed, pubkey, ); diff --git a/packages/sdk/package.json b/packages/sdk/package.json index a45a3bee..516a50f8 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -41,9 +41,11 @@ "@iov/crypto": "^2.0.2", "@iov/encoding": "^2.0.2", "@iov/utils": "^2.0.2", - "axios": "^0.19.0" + "axios": "^0.19.0", + "bn.js": "^5.1.1" }, "devDependencies": { + "@types/bn.js": "^4.11.6", "readonly-date": "^1.0.0" } } diff --git a/packages/sdk/src/index.ts b/packages/sdk/src/index.ts index 2a269008..ca7ceb27 100644 --- a/packages/sdk/src/index.ts +++ b/packages/sdk/src/index.ts @@ -23,5 +23,9 @@ export { encodeSecp256k1Pubkey, } from "./pubkey"; export { findSequenceForSignedTx } from "./sequence"; -export { encodeSecp256k1Signature, decodeSignature } from "./signature"; +export { + encodeSecp256k1Signature, + decodeSignature, + makeSecp256k1SignatureFromFixedLength, +} from "./signature"; export { SigningCallback, SigningCosmWasmClient, ExecuteResult } from "./signingcosmwasmclient"; diff --git a/packages/sdk/src/pen.spec.ts b/packages/sdk/src/pen.spec.ts index 57c71c78..68a514c2 100644 --- a/packages/sdk/src/pen.spec.ts +++ b/packages/sdk/src/pen.spec.ts @@ -1,8 +1,8 @@ -import { Secp256k1, Secp256k1Signature, Sha256 } from "@iov/crypto"; +import { Secp256k1, Sha256 } from "@iov/crypto"; import { Encoding } from "@iov/encoding"; import { Secp256k1Pen } from "./pen"; -import { decodeSignature } from "./signature"; +import { decodeSignature, makeSecp256k1SignatureFromFixedLength } from "./signature"; const { fromHex } = Encoding; @@ -37,7 +37,7 @@ describe("Sec256k1Pen", () => { const { pubkey, signature } = decodeSignature(await pen.sign(data)); const valid = await Secp256k1.verifySignature( - new Secp256k1Signature(signature.slice(0, 32), signature.slice(32, 64)), + makeSecp256k1SignatureFromFixedLength(signature), new Sha256(data).digest(), pubkey, ); diff --git a/packages/sdk/src/sequence.ts b/packages/sdk/src/sequence.ts index 8a53e897..9c2ef647 100644 --- a/packages/sdk/src/sequence.ts +++ b/packages/sdk/src/sequence.ts @@ -1,7 +1,7 @@ -import { Secp256k1, Secp256k1Signature, Sha256 } from "@iov/crypto"; +import { Secp256k1, Sha256 } from "@iov/crypto"; import { makeSignBytes } from "./encoding"; -import { decodeSignature } from "./signature"; +import { decodeSignature, makeSecp256k1SignatureFromFixedLength } from "./signature"; import { CosmosSdkTx } from "./types"; /** @@ -26,7 +26,7 @@ export async function findSequenceForSignedTx( if (!firstSignature) throw new Error("Signature missing in tx"); const { pubkey, signature } = decodeSignature(firstSignature); - const secp256keSignature = new Secp256k1Signature(signature.slice(0, 32), signature.slice(32, 64)); + const secp256keSignature = makeSecp256k1SignatureFromFixedLength(signature); for (let s = min; s < upperBound; s++) { // console.log(`Trying sequence ${s}`); diff --git a/packages/sdk/src/signature.ts b/packages/sdk/src/signature.ts index d31eb119..daa2750c 100644 --- a/packages/sdk/src/signature.ts +++ b/packages/sdk/src/signature.ts @@ -1,4 +1,6 @@ +import { Secp256k1Signature } from "@iov/crypto"; import { Encoding } from "@iov/encoding"; +import BN from "bn.js"; import { encodeSecp256k1Pubkey } from "./pubkey"; import { pubkeyType, StdSignature } from "./types"; @@ -37,3 +39,10 @@ export function decodeSignature( throw new Error("Unsupported pubkey type"); } } + +// TODO: use Secp256k1Signature.fromFixedLength once this is published https://github.com/iov-one/iov-core/pull/1401 +export function makeSecp256k1SignatureFromFixedLength(signature: Uint8Array): Secp256k1Signature { + const unpaddedR = Uint8Array.from(new BN(signature.slice(0, 32)).toArray()); + const unpaddedS = Uint8Array.from(new BN(signature.slice(32, 64)).toArray()); + return new Secp256k1Signature(unpaddedR, unpaddedS); +} diff --git a/packages/sdk/types/index.d.ts b/packages/sdk/types/index.d.ts index ffe33888..dd2ad348 100644 --- a/packages/sdk/types/index.d.ts +++ b/packages/sdk/types/index.d.ts @@ -22,5 +22,9 @@ export { encodeSecp256k1Pubkey, } from "./pubkey"; export { findSequenceForSignedTx } from "./sequence"; -export { encodeSecp256k1Signature, decodeSignature } from "./signature"; +export { + encodeSecp256k1Signature, + decodeSignature, + makeSecp256k1SignatureFromFixedLength, +} from "./signature"; export { SigningCallback, SigningCosmWasmClient, ExecuteResult } from "./signingcosmwasmclient"; diff --git a/packages/sdk/types/signature.d.ts b/packages/sdk/types/signature.d.ts index c23e7167..16c7e432 100644 --- a/packages/sdk/types/signature.d.ts +++ b/packages/sdk/types/signature.d.ts @@ -1,3 +1,4 @@ +import { Secp256k1Signature } from "@iov/crypto"; import { StdSignature } from "./types"; /** * Takes a binary pubkey and signature to create a signature object @@ -12,3 +13,4 @@ export declare function decodeSignature( readonly pubkey: Uint8Array; readonly signature: Uint8Array; }; +export declare function makeSecp256k1SignatureFromFixedLength(signature: Uint8Array): Secp256k1Signature; From 0e3af5fcff1b239237b80e04eb9d0d8437d9e313 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Tue, 18 Feb 2020 16:54:55 +0100 Subject: [PATCH 3/8] v0.0.5-alpha.0 --- lerna.json | 2 +- packages/bcp/package.json | 4 ++-- packages/cli/package.json | 4 ++-- packages/faucet/package.json | 4 ++-- packages/sdk/package.json | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lerna.json b/lerna.json index bd84b607..5c9a7360 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "0.0.4", + "version": "0.0.5-alpha.0", "useWorkspaces": true, "npmClient": "yarn" } diff --git a/packages/bcp/package.json b/packages/bcp/package.json index 81fbcb32..40cb6186 100644 --- a/packages/bcp/package.json +++ b/packages/bcp/package.json @@ -1,6 +1,6 @@ { "name": "@cosmwasm/bcp", - "version": "0.0.4", + "version": "0.0.5-alpha.0", "description": "Transaction codec and client to communicate with any wasmd blockchain", "author": "Ethan Frey ", "license": "Apache-2.0", @@ -38,7 +38,7 @@ "pack-web": "yarn build-or-skip && webpack --mode development --config webpack.web.config.js" }, "dependencies": { - "@cosmwasm/sdk": "^0.0.4", + "@cosmwasm/sdk": "^0.0.5-alpha.0", "@iov/bcp": "^2.0.2", "@iov/crypto": "^2.0.2", "@iov/encoding": "^2.0.2", diff --git a/packages/cli/package.json b/packages/cli/package.json index c63afa8a..40e52cb4 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@cosmwasm/cli", - "version": "0.0.4", + "version": "0.0.5-alpha.0", "description": "Command line interface", "contributors": [ "IOV SAS ", @@ -36,7 +36,7 @@ "!**/testdata/" ], "dependencies": { - "@cosmwasm/sdk": "^0.0.4", + "@cosmwasm/sdk": "^0.0.5-alpha.0", "@iov/crypto": "^2.0.2", "@iov/encoding": "^2.0.2", "@iov/utils": "^2.0.2", diff --git a/packages/faucet/package.json b/packages/faucet/package.json index 80cd59d6..1c058f36 100644 --- a/packages/faucet/package.json +++ b/packages/faucet/package.json @@ -1,6 +1,6 @@ { "name": "@cosmwasm/faucet", - "version": "0.0.4", + "version": "0.0.5-alpha.0", "description": "The faucet", "author": "Ethan Frey ", "license": "Apache-2.0", @@ -35,7 +35,7 @@ "test": "yarn build-or-skip && yarn test-node" }, "dependencies": { - "@cosmwasm/bcp": "^0.0.4", + "@cosmwasm/bcp": "^0.0.5-alpha.0", "@iov/bcp": "^2.0.2", "@iov/crypto": "^2.0.2", "@iov/encoding": "^2.0.2", diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 516a50f8..44ba78fe 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@cosmwasm/sdk", - "version": "0.0.4", + "version": "0.0.5-alpha.0", "description": "CosmWasm SDK", "author": "Ethan Frey ", "license": "Apache-2.0", From 55dd5278c2ae8aa6aadc2b342521bcc527a770da Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Tue, 18 Feb 2020 17:01:04 +0100 Subject: [PATCH 4/8] Bump ts target to es2017 --- tsconfig.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tsconfig.json b/tsconfig.json index eea54531..7817c12b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -17,7 +17,7 @@ "resolveJsonModule": true, "sourceMap": true, "strict": true, - "target": "es6", - "lib": ["es6"] + "target": "es2017", + "lib": ["es2017"] } } From 1aa476ba9a960ac060088c419e2e801378870cf3 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Tue, 18 Feb 2020 17:15:53 +0100 Subject: [PATCH 5/8] Use new token names HASH/ISA/JADE those don't conflict with other BCP demo tokens --- packages/bcp/src/cosmwasmcodec.spec.ts | 12 +++--- packages/bcp/src/cosmwasmconnection.spec.ts | 38 +++++++++---------- packages/bcp/src/decode.spec.ts | 10 ++--- packages/bcp/src/encode.spec.ts | 14 +++---- packages/faucet/README.md | 2 +- packages/faucet/src/api/requestparser.spec.ts | 10 ++--- packages/faucet/src/constants.ts | 4 +- packages/faucet/src/faucet.spec.ts | 12 +++--- packages/faucet/src/multichainhelpers.spec.ts | 8 ++-- scripts/wasmd/deploy_erc20.js | 30 ++++++++------- 10 files changed, 71 insertions(+), 69 deletions(-) diff --git a/packages/bcp/src/cosmwasmcodec.spec.ts b/packages/bcp/src/cosmwasmcodec.spec.ts index 2269887e..d44dffe6 100644 --- a/packages/bcp/src/cosmwasmcodec.spec.ts +++ b/packages/bcp/src/cosmwasmcodec.spec.ts @@ -22,17 +22,17 @@ const defaultErc20Tokens: readonly Erc20Token[] = [ { contractAddress: "cosmos18vd8fpwxzck93qlwghaj6arh4p7c5n89uzcee5", fractionalDigits: 5, - ticker: "ASH", + ticker: "HASH", }, { contractAddress: "cosmos1hqrdl6wstt8qzshwc6mrumpjk9338k0lr4dqxd", fractionalDigits: 0, - ticker: "BASH", + ticker: "ISA", }, { contractAddress: "cosmos18r5szma8hm93pvx6lwpjwyxruw27e0k5uw835c", fractionalDigits: 18, - ticker: "CASH", + ticker: "JADE", }, ]; @@ -73,11 +73,11 @@ describe("CosmWasmCodec", () => { chainId: chainId, sender: "cosmos1txqfn5jmcts0x0q7krdxj8tgf98tj0965vqlmq" as Address, recipient: "cosmos1dddd" as Address, - memo: "My first BASH payment", + memo: "My first ISA payment", amount: { fractionalDigits: 0, quantity: "345", - tokenTicker: "BASH" as TokenTicker, + tokenTicker: "ISA" as TokenTicker, }, fee: { tokens: { @@ -91,7 +91,7 @@ describe("CosmWasmCodec", () => { const expected = { bytes: toUtf8( - '{"account_number":"0","chain_id":"cosmoshub-3","fee":{"amount":[{"amount":"2500","denom":"uatom"}],"gas":"100000"},"memo":"My first BASH payment","msgs":[{"type":"wasm/execute","value":{"contract":"cosmos1hqrdl6wstt8qzshwc6mrumpjk9338k0lr4dqxd","msg":{"transfer":{"amount":"345","recipient":"cosmos1dddd"}},"sender":"cosmos1txqfn5jmcts0x0q7krdxj8tgf98tj0965vqlmq","sent_funds":[]}}],"sequence":"99"}', + '{"account_number":"0","chain_id":"cosmoshub-3","fee":{"amount":[{"amount":"2500","denom":"uatom"}],"gas":"100000"},"memo":"My first ISA payment","msgs":[{"type":"wasm/execute","value":{"contract":"cosmos1hqrdl6wstt8qzshwc6mrumpjk9338k0lr4dqxd","msg":{"transfer":{"amount":"345","recipient":"cosmos1dddd"}},"sender":"cosmos1txqfn5jmcts0x0q7krdxj8tgf98tj0965vqlmq","sent_funds":[]}}],"sequence":"99"}', ), prehashType: PrehashType.Sha256, }; diff --git a/packages/bcp/src/cosmwasmconnection.spec.ts b/packages/bcp/src/cosmwasmconnection.spec.ts index 6a74af14..0155ed1e 100644 --- a/packages/bcp/src/cosmwasmconnection.spec.ts +++ b/packages/bcp/src/cosmwasmconnection.spec.ts @@ -58,7 +58,7 @@ const faucet = { describe("CosmWasmConnection", () => { const cosm = "COSM" as TokenTicker; - const bash = "BASH" as TokenTicker; + const isa = "ISA" as TokenTicker; const httpUrl = "http://localhost:1317"; const defaultChainId = "cosmos:testing" as ChainId; const defaultEmptyAddress = "cosmos1h806c7khnvmjlywdrkdgk2vrayy2mmvf9rxk2r" as Address; @@ -97,20 +97,20 @@ describe("CosmWasmConnection", () => { { contractAddress: "cosmos18vd8fpwxzck93qlwghaj6arh4p7c5n89uzcee5", fractionalDigits: 5, - ticker: "ASH", - name: "Ash Token", + ticker: "HASH", + name: "Hash Token", }, { contractAddress: "cosmos1hqrdl6wstt8qzshwc6mrumpjk9338k0lr4dqxd", fractionalDigits: 0, - ticker: "BASH", - name: "Bash Token", + ticker: "ISA", + name: "Isa Token", }, { contractAddress: "cosmos18r5szma8hm93pvx6lwpjwyxruw27e0k5uw835c", fractionalDigits: 18, - ticker: "CASH", - name: "Cash Token", + ticker: "JADE", + name: "Jade Token", }, ], }; @@ -184,18 +184,18 @@ describe("CosmWasmConnection", () => { expect(tokens).toEqual([ { fractionalDigits: 5, - tokenName: "Ash Token", - tokenTicker: "ASH" as TokenTicker, + tokenName: "Hash Token", + tokenTicker: "HASH" as TokenTicker, }, { fractionalDigits: 0, - tokenName: "Bash Token", - tokenTicker: "BASH" as TokenTicker, + tokenName: "Isa Token", + tokenTicker: "ISA" as TokenTicker, }, { fractionalDigits: 18, - tokenName: "Cash Token", - tokenTicker: "CASH" as TokenTicker, + tokenName: "Jade Token", + tokenTicker: "JADE" as TokenTicker, }, { fractionalDigits: 6, @@ -240,12 +240,12 @@ describe("CosmWasmConnection", () => { expect(account.pubkey).toBeUndefined(); expect(account.balance).toEqual([ { - tokenTicker: "ASH" as TokenTicker, + tokenTicker: "HASH" as TokenTicker, quantity: "12812345", fractionalDigits: 5, }, { - tokenTicker: "BASH" as TokenTicker, + tokenTicker: "ISA" as TokenTicker, quantity: "42", fractionalDigits: 0, }, @@ -414,7 +414,7 @@ describe("CosmWasmConnection", () => { amount: { quantity: "345", fractionalDigits: 0, - tokenTicker: bash, + tokenTicker: isa, }, }); const nonce = await connection.getNonce({ address: senderAddress }); @@ -1004,7 +1004,7 @@ describe("CosmWasmConnection", () => { amount: { quantity: "75", fractionalDigits: 0, - tokenTicker: "BASH" as TokenTicker, + tokenTicker: "ISA" as TokenTicker, }, }); const nonce = await connection.getNonce({ address: senderAddress }); @@ -1015,10 +1015,10 @@ describe("CosmWasmConnection", () => { expect(blockInfo.state).toEqual(TransactionState.Succeeded); const recipientAccount = await connection.getAccount({ address: recipient }); - assert(recipientAccount, "Recipient account must have BASH tokens"); + assert(recipientAccount, "Recipient account must have ISA tokens"); expect(recipientAccount.balance).toEqual([ { - tokenTicker: "BASH" as TokenTicker, + tokenTicker: "ISA" as TokenTicker, quantity: "75", fractionalDigits: 0, }, diff --git a/packages/bcp/src/decode.spec.ts b/packages/bcp/src/decode.spec.ts index cdfa1129..49e5df0d 100644 --- a/packages/bcp/src/decode.spec.ts +++ b/packages/bcp/src/decode.spec.ts @@ -68,17 +68,17 @@ describe("decode", () => { { contractAddress: "cosmos18vd8fpwxzck93qlwghaj6arh4p7c5n89uzcee5", fractionalDigits: 5, - ticker: "ASH", + ticker: "HASH", }, { contractAddress: "cosmos1hqrdl6wstt8qzshwc6mrumpjk9338k0lr4dqxd", fractionalDigits: 0, - ticker: "BASH", + ticker: "ISA", }, { contractAddress: "cosmos18r5szma8hm93pvx6lwpjwyxruw27e0k5uw835c", fractionalDigits: 18, - ticker: "CASH", + ticker: "JADE", }, ]; @@ -187,7 +187,7 @@ describe("decode", () => { recipient: "cosmos1z7g5w84ynmjyg0kqpahdjqpj7yq34v3suckp0e" as Address, amount: { quantity: "887878484", - tokenTicker: "ASH" as TokenTicker, + tokenTicker: "HASH" as TokenTicker, fractionalDigits: 5, }, memo: defaultMemo, @@ -255,7 +255,7 @@ describe("decode", () => { recipient: "cosmos1z7g5w84ynmjyg0kqpahdjqpj7yq34v3suckp0e" as Address, amount: { quantity: "887878484", - tokenTicker: "ASH" as TokenTicker, + tokenTicker: "HASH" as TokenTicker, fractionalDigits: 5, }, memo: defaultMemo, diff --git a/packages/bcp/src/encode.spec.ts b/packages/bcp/src/encode.spec.ts index b0738993..ba7ee428 100644 --- a/packages/bcp/src/encode.spec.ts +++ b/packages/bcp/src/encode.spec.ts @@ -53,17 +53,17 @@ describe("encode", () => { { contractAddress: "cosmos18vd8fpwxzck93qlwghaj6arh4p7c5n89uzcee5", fractionalDigits: 5, - ticker: "ASH", + ticker: "HASH", }, { contractAddress: "cosmos1hqrdl6wstt8qzshwc6mrumpjk9338k0lr4dqxd", fractionalDigits: 0, - ticker: "BASH", + ticker: "ISA", }, { contractAddress: "cosmos18r5szma8hm93pvx6lwpjwyxruw27e0k5uw835c", fractionalDigits: 18, - ticker: "CASH", + ticker: "JADE", }, ]; @@ -83,7 +83,7 @@ describe("encode", () => { const amount: Amount = { quantity: "789", fractionalDigits: 0, - tokenTicker: "BASH" as TokenTicker, + tokenTicker: "ISA" as TokenTicker, }; expect(toErc20Amount(amount, bash)).toEqual("789"); }); @@ -92,7 +92,7 @@ describe("encode", () => { const amount: Amount = { quantity: "789", fractionalDigits: 0, - tokenTicker: "BASH" as TokenTicker, + tokenTicker: "ISA" as TokenTicker, }; expect(() => toErc20Amount(amount, ash)).toThrowError(/ticker mismatch/i); }); @@ -101,7 +101,7 @@ describe("encode", () => { const amount: Amount = { quantity: "789", fractionalDigits: 2, - tokenTicker: "BASH" as TokenTicker, + tokenTicker: "ISA" as TokenTicker, }; expect(() => toErc20Amount(amount, bash)).toThrowError(/fractional digits mismatch/i); }); @@ -298,7 +298,7 @@ describe("encode", () => { amount: { fractionalDigits: 0, quantity: "345", - tokenTicker: "BASH" as TokenTicker, + tokenTicker: "ISA" as TokenTicker, }, fee: { tokens: { diff --git a/packages/faucet/README.md b/packages/faucet/README.md index 3919206e..ec983ca5 100644 --- a/packages/faucet/README.md +++ b/packages/faucet/README.md @@ -116,7 +116,7 @@ situation is different. ``` curl --header "Content-Type: application/json" \ --request POST \ - --data '{"ticker":"BASH","address":"cosmos1yre6ac7qfgyfgvh58ph0rgw627rhw766y430qq"}' \ + --data '{"ticker":"ISA","address":"cosmos1yre6ac7qfgyfgvh58ph0rgw627rhw766y430qq"}' \ http://localhost:8000/credit ``` diff --git a/packages/faucet/src/api/requestparser.spec.ts b/packages/faucet/src/api/requestparser.spec.ts index 84be6d2c..73512029 100644 --- a/packages/faucet/src/api/requestparser.spec.ts +++ b/packages/faucet/src/api/requestparser.spec.ts @@ -2,26 +2,26 @@ import { RequestParser } from "./requestparser"; describe("RequestParser", () => { it("can process valid credit request", () => { - const body = { address: "abc", ticker: "CASH" }; - expect(RequestParser.parseCreditBody(body)).toEqual({ address: "abc", ticker: "CASH" }); + const body = { address: "abc", ticker: "TKN" }; + expect(RequestParser.parseCreditBody(body)).toEqual({ address: "abc", ticker: "TKN" }); }); it("throws for invalid credit requests", () => { // address unset { - const body = { ticker: "CASH" }; + const body = { ticker: "TKN" }; expect(() => RequestParser.parseCreditBody(body)).toThrowError(/Property 'address' must be a string/i); } // address wrong type { - const body = { address: true, ticker: "CASH" }; + const body = { address: true, ticker: "TKN" }; expect(() => RequestParser.parseCreditBody(body)).toThrowError(/Property 'address' must be a string/i); } // address empty { - const body = { address: "", ticker: "CASH" }; + const body = { address: "", ticker: "TKN" }; expect(() => RequestParser.parseCreditBody(body)).toThrowError(/Property 'address' must not be empty/i); } diff --git a/packages/faucet/src/constants.ts b/packages/faucet/src/constants.ts index 3e37b1e8..510c5b98 100644 --- a/packages/faucet/src/constants.ts +++ b/packages/faucet/src/constants.ts @@ -27,8 +27,8 @@ export const developmentTokenConfig: TokenConfiguration = { { contractAddress: "cosmos1hqrdl6wstt8qzshwc6mrumpjk9338k0lr4dqxd", fractionalDigits: 0, - ticker: "BASH", - name: "Bash Token", + ticker: "ISA", + name: "Isa Token", }, ], }; diff --git a/packages/faucet/src/faucet.spec.ts b/packages/faucet/src/faucet.spec.ts index fbabaec2..b8ff9c40 100644 --- a/packages/faucet/src/faucet.spec.ts +++ b/packages/faucet/src/faucet.spec.ts @@ -35,8 +35,8 @@ const defaultConfig: TokenConfiguration = { { contractAddress: "cosmos1hqrdl6wstt8qzshwc6mrumpjk9338k0lr4dqxd", fractionalDigits: 0, - ticker: "BASH", - name: "Bash Token", + ticker: "ISA", + name: "Isa Token", }, ], }; @@ -112,7 +112,7 @@ describe("Faucet", () => { amount: { quantity: "7", fractionalDigits: 0, - tokenTicker: "BASH" as TokenTicker, + tokenTicker: "ISA" as TokenTicker, }, sender: holder, recipient: recipient, @@ -123,7 +123,7 @@ describe("Faucet", () => { { quantity: "7", fractionalDigits: 0, - tokenTicker: "BASH" as TokenTicker, + tokenTicker: "ISA" as TokenTicker, }, ]); connection.disconnect(); @@ -141,7 +141,7 @@ describe("Faucet", () => { assert(distributorBalance); expect(distributorBalance).toEqual([ jasmine.objectContaining({ - tokenTicker: "BASH", + tokenTicker: "ISA", fractionalDigits: 0, }), jasmine.objectContaining({ @@ -207,7 +207,7 @@ describe("Faucet", () => { const { profile } = await makeProfile(); const faucet = new Faucet(defaultConfig, connection, codec, profile); const tickers = await faucet.loadTokenTickers(); - expect(tickers).toEqual(["BASH", "COSM", "STAKE"]); + expect(tickers).toEqual(["ISA", "COSM", "STAKE"]); connection.disconnect(); }); }); diff --git a/packages/faucet/src/multichainhelpers.spec.ts b/packages/faucet/src/multichainhelpers.spec.ts index b81c8553..cd7172bb 100644 --- a/packages/faucet/src/multichainhelpers.spec.ts +++ b/packages/faucet/src/multichainhelpers.spec.ts @@ -26,11 +26,11 @@ describe("multichainhelpers", () => { { quantity: "1", fractionalDigits: 9, - tokenTicker: "CASH" as TokenTicker, + tokenTicker: "JADE" as TokenTicker, }, ], }); - expect(tickers).toEqual(["CASH"]); + expect(tickers).toEqual(["JADE"]); }); it("works for two tokens", () => { @@ -41,7 +41,7 @@ describe("multichainhelpers", () => { { quantity: "1", fractionalDigits: 9, - tokenTicker: "CASH" as TokenTicker, + tokenTicker: "JADE" as TokenTicker, }, { quantity: "1", @@ -50,7 +50,7 @@ describe("multichainhelpers", () => { }, ], }); - expect(tickers).toEqual(["CASH", "TRASH"]); + expect(tickers).toEqual(["JADE", "TRASH"]); }); }); }); diff --git a/scripts/wasmd/deploy_erc20.js b/scripts/wasmd/deploy_erc20.js index 91d6cb1f..86ac400c 100755 --- a/scripts/wasmd/deploy_erc20.js +++ b/scripts/wasmd/deploy_erc20.js @@ -10,46 +10,48 @@ const faucet = { "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 unusedAccount = "cosmos1cjsxept9rkggzxztslae9ndgpdyt2408lk850u"; +const unused = { + address: "cosmos1cjsxept9rkggzxztslae9ndgpdyt2408lk850u", +}; -const initMsgAsh = { +const initMsgHash = { decimals: 5, - name: "Ash token", - symbol: "ASH", + name: "Hash token", + symbol: "HASH", initial_balances: [ { address: faucet.address, amount: "11", }, { - address: unusedAccount, + address: unused.address, amount: "12812345", }, ], }; -const initMsgBash = { +const initMsgIsa = { decimals: 0, - name: "Bash Token", - symbol: "BASH", + name: "Isa Token", + symbol: "ISA", initial_balances: [ { address: faucet.address, amount: "999999999", }, { - address: unusedAccount, + address: unused.address, amount: "42", }, ], }; -const initMsgCash = { +const initMsgJade = { decimals: 18, - name: "Cash Token", - symbol: "CASH", + name: "Jade Token", + symbol: "JADE", initial_balances: [ { address: faucet.address, - amount: "189189189000000000000000000", // 189189189 CASH + amount: "189189189000000000000000000", // 189189189 JADE }, ], }; @@ -62,7 +64,7 @@ async function main() { const codeId = await client.upload(wasm, "Upload ERC20 contract"); console.info(`Upload succeeded. Code ID is ${codeId}`); - for (const initMsg of [initMsgAsh, initMsgBash, initMsgCash]) { + for (const initMsg of [initMsgHash, initMsgIsa, initMsgJade]) { const memo = `Create an ERC20 instance for ${initMsg.symbol}`; const contractAddress = await client.instantiate(codeId, initMsg, memo); console.info(`Contract instantiated for ${initMsg.symbol} at ${contractAddress}`); From b639b2dd11eeb83b95dc24c0927df192846cef52 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Tue, 18 Feb 2020 17:18:09 +0100 Subject: [PATCH 6/8] Give guest account some HASH and JADE --- scripts/wasmd/deploy_erc20.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/scripts/wasmd/deploy_erc20.js b/scripts/wasmd/deploy_erc20.js index 86ac400c..4a13cbef 100755 --- a/scripts/wasmd/deploy_erc20.js +++ b/scripts/wasmd/deploy_erc20.js @@ -13,6 +13,9 @@ const faucet = { const unused = { address: "cosmos1cjsxept9rkggzxztslae9ndgpdyt2408lk850u", }; +const guest = { + address: "cosmos17d0jcz59jf68g52vq38tuuncmwwjk42u6mcxej", +}; const initMsgHash = { decimals: 5, @@ -27,6 +30,10 @@ const initMsgHash = { address: unused.address, amount: "12812345", }, + { + address: guest.address, + amount: "22004000000", + }, ], }; const initMsgIsa = { @@ -53,6 +60,10 @@ const initMsgJade = { address: faucet.address, amount: "189189189000000000000000000", // 189189189 JADE }, + { + address: guest.address, + amount: "189500000000000000000", // 189.5 JADE + }, ], }; From cf9c1e7884342fcb6ea06f0c66a9d324d735c891 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Tue, 18 Feb 2020 17:37:37 +0100 Subject: [PATCH 7/8] Add nonces --- packages/bcp/nonces/1582043857 | 0 packages/cli/nonces/1582043857 | 0 packages/faucet/nonces/1582043857 | 0 packages/sdk/nonces/1582043857 | 0 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 packages/bcp/nonces/1582043857 create mode 100644 packages/cli/nonces/1582043857 create mode 100644 packages/faucet/nonces/1582043857 create mode 100644 packages/sdk/nonces/1582043857 diff --git a/packages/bcp/nonces/1582043857 b/packages/bcp/nonces/1582043857 new file mode 100644 index 00000000..e69de29b diff --git a/packages/cli/nonces/1582043857 b/packages/cli/nonces/1582043857 new file mode 100644 index 00000000..e69de29b diff --git a/packages/faucet/nonces/1582043857 b/packages/faucet/nonces/1582043857 new file mode 100644 index 00000000..e69de29b diff --git a/packages/sdk/nonces/1582043857 b/packages/sdk/nonces/1582043857 new file mode 100644 index 00000000..e69de29b From c6df378a31d630420e305d519c8b376524779881 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Tue, 18 Feb 2020 17:37:49 +0100 Subject: [PATCH 8/8] v0.0.5-alpha.1 --- lerna.json | 2 +- packages/bcp/package.json | 4 ++-- packages/cli/package.json | 4 ++-- packages/faucet/package.json | 4 ++-- packages/sdk/package.json | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lerna.json b/lerna.json index 5c9a7360..f0eb255e 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "0.0.5-alpha.0", + "version": "0.0.5-alpha.1", "useWorkspaces": true, "npmClient": "yarn" } diff --git a/packages/bcp/package.json b/packages/bcp/package.json index 40cb6186..df289a03 100644 --- a/packages/bcp/package.json +++ b/packages/bcp/package.json @@ -1,6 +1,6 @@ { "name": "@cosmwasm/bcp", - "version": "0.0.5-alpha.0", + "version": "0.0.5-alpha.1", "description": "Transaction codec and client to communicate with any wasmd blockchain", "author": "Ethan Frey ", "license": "Apache-2.0", @@ -38,7 +38,7 @@ "pack-web": "yarn build-or-skip && webpack --mode development --config webpack.web.config.js" }, "dependencies": { - "@cosmwasm/sdk": "^0.0.5-alpha.0", + "@cosmwasm/sdk": "^0.0.5-alpha.1", "@iov/bcp": "^2.0.2", "@iov/crypto": "^2.0.2", "@iov/encoding": "^2.0.2", diff --git a/packages/cli/package.json b/packages/cli/package.json index 40e52cb4..17b8ce18 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@cosmwasm/cli", - "version": "0.0.5-alpha.0", + "version": "0.0.5-alpha.1", "description": "Command line interface", "contributors": [ "IOV SAS ", @@ -36,7 +36,7 @@ "!**/testdata/" ], "dependencies": { - "@cosmwasm/sdk": "^0.0.5-alpha.0", + "@cosmwasm/sdk": "^0.0.5-alpha.1", "@iov/crypto": "^2.0.2", "@iov/encoding": "^2.0.2", "@iov/utils": "^2.0.2", diff --git a/packages/faucet/package.json b/packages/faucet/package.json index 1c058f36..a5a2eeb1 100644 --- a/packages/faucet/package.json +++ b/packages/faucet/package.json @@ -1,6 +1,6 @@ { "name": "@cosmwasm/faucet", - "version": "0.0.5-alpha.0", + "version": "0.0.5-alpha.1", "description": "The faucet", "author": "Ethan Frey ", "license": "Apache-2.0", @@ -35,7 +35,7 @@ "test": "yarn build-or-skip && yarn test-node" }, "dependencies": { - "@cosmwasm/bcp": "^0.0.5-alpha.0", + "@cosmwasm/bcp": "^0.0.5-alpha.1", "@iov/bcp": "^2.0.2", "@iov/crypto": "^2.0.2", "@iov/encoding": "^2.0.2", diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 44ba78fe..6bd339cd 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@cosmwasm/sdk", - "version": "0.0.5-alpha.0", + "version": "0.0.5-alpha.1", "description": "CosmWasm SDK", "author": "Ethan Frey ", "license": "Apache-2.0",