Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v1.7.0 testing/verification #379

Closed
29 of 38 tasks
iramiller opened this issue Jul 19, 2021 · 5 comments
Closed
29 of 38 tasks

Release v1.7.0 testing/verification #379

iramiller opened this issue Jul 19, 2021 · 5 comments
Labels
attribute Attribute Module CI Continuous Integration and release process epic This ticket is used for grouping other tickets together. ibc inter-blockchain communication marker Marker Module metadata Metadata Module name Name Module simulation Issues related to simulation testing
Projects
Milestone

Comments

@iramiller
Copy link
Member

iramiller commented Jul 19, 2021

Summary

The 0.43 Cosmos SDK and associated v1.7.0 Provenance blockchain update contains more significant changes than the typical point release update. These changes require an indepth testing and verification process to be completed before the release can be deployed to pio-testnet-1 and pio-mainnet-1 networks.

Testing/Verification Areas

Client API

Genesis, Migration @channa-figure

  • Run export/import process, verify correct chain operation
  • Export v1.5.x chain state, execute migration plan v1.7.0 and verify network start with resulting genesis file.
  • Ensure modules all contain appropriate module version number (1) and perform correct migrations to 2 as required during v1.7.0 upgrade process

Smart Contracts

Keychain and secp256r1 support

  • Ensure existing keychains (backends of test, file, os) can be used with v1.7.0 binary
  • Create and use a secp256r1 key/account for all operations
    • Add an secp256r1 based account to the localnet development configuration
  • Verify correct provenanced keys add testkey --recover operation for 24+1 word mnemonic and phrase without added password

authz

feegrant

  • provenanced tx feegrant grant: Granter can issue fee grants of basic & periodic allowances, and grantee can spend from allowance @fkneeland-figure
  • provenanced q feegrant grant: Querying for a specific fee grant from a granter/grantee pair works as expected @fkneeland-figure
  • provenanced tx feegrant revoke: Granter can revoke fee grant allowance, and grantee can no longer spend from allowance @fkneeland-figure
  • provenanced q feegrant grants: Querying of all fee grants for a grantee works as expected @fkneeland-figure

Gas

  • Verify correct refund gas operation

IBC


For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned
@iramiller iramiller added CI Continuous Integration and release process epic This ticket is used for grouping other tickets together. marker Marker Module metadata Metadata Module attribute Attribute Module name Name Module simulation Issues related to simulation testing ibc inter-blockchain communication labels Jul 19, 2021
@iramiller iramiller added this to the v1.6.0 milestone Jul 19, 2021
@iramiller iramiller added this to Triage in Mainnet via automation Jul 19, 2021
@iramiller iramiller moved this from Triage to To Do in Mainnet Jul 19, 2021
@fkneeland-figure
Copy link
Contributor

fkneeland-figure commented Aug 19, 2021

Client API

Verify grpc-web support is enabled and working ????

To do this I checked and verified that config files were being updated correctly to set grpc-web to true.
I also ran: nc -z localhost 9091 while running locally which gave me a result of: Connection to localhost port 9091 [tcp/xmltec-xmlmail] succeeded!. I did some digging and played around with different tools like grpcurl but was unable to verify anything other than that the port was open.

If there is a better way to test this that anyone knows about, please comment.

Verify rosetta interface is enabled and functional

  1. I ran make test-rosetta which builds a docker container with provenance, rosetta server, and runs tests against those
  2. I ran the rosetta tests against make run which I did by checking out the following branch that updates the config for the docker tests to work against local: Got everything working to test rosetta locally #429 I then ran the following in 4 different terminals from the provenanced directory
    1. make run
    2. provenanced rosetta --blockchain="provenance" --network="testing" --tendermint="localhost:26657" --grpc="localhost:9090" --addr=":8080" --testnet true --home ./build/run/provenanced
    3. cd ./client/rosetta/configuration && python3 faucet.py
    4. ./bin/rosetta-cli check:construction --configuration-file ./client/rosetta/configuration/rosetta.json
    5. ./bin/rosetta-cli check:data --configuration-file ./client/rosetta/configuration/rosetta.json

Also, if you haven't already you will need to install rosetta-cli and you can find instructions for that here: https://github.com/coinbase/rosetta-cli

Verify test suite can pass against a chain that has had many markers created/minted/burned/etc post genesis - not complete

I am currently waiting to get testnet data from devops for testnet-beta and then I am going to run a local node against that and verify that all the tests pass as I believe that testnet-beta would have many marker transactions in it.

Feegrant

I used multiple accounts to verify that I could do feegrants to various accounts which had 0 hash and that those accounts could then do transactions using the granters address to pay the fees. I tested both basic and periodic tests and was able to verify both the unlimited case and setting specific amounts. I also verified that the periodic tests updates the amount a user can have for fees correctly. I used various combinations of the following commands while running locally:

Grant with spend limit

provenanced -t tx feegrant grant "$addrV" "$addr1" --spend-limit 100000000nhash --gas-prices="1905nhash" --gas=auto --gas-adjustment=1.5 --home=./build/run/provenanced --chain-id="testing" --yes

Grant without spend limit

provenanced -t tx feegrant grant "$addr3" "$addr2" --gas-prices="1905nhash" --gas=auto --gas-adjustment=1.5 --home=./build/run/provenanced --chain-id="testing" --yes

Grant with a period

provenanced -t tx feegrant grant "$addrV" "$addr1" --gas-prices="1905nhash" --gas=auto --gas-adjustment=1.5 --home=./build/run/provenanced --chain-id="testing" --yes --period=30 --period-limit=200000000nhash

Query

provenanced -t q feegrant grant "$addrV" "$addr1" --home=./build/run/provenanced --chain-id="testing"

Query for grants

provenanced -t q feegrant grants "$addr1" --home=./build/run/provenanced --chain-id="testing"

Revoke Grant

provenanced -t tx feegrant revoke "$addrV" "$addr1" --gas-prices="1905nhash" --gas=auto --gas-adjustment=1.5 --home=./build/run/provenanced --chain-id="testing" --yes

Using grant funds for txs

Include the following at the end of a transaction to use the feegranter to pay for the fee rather than the account of the tx signer:

--fee-account="$addrV"

I also added a small pr to cosmos-sdk to fix a minor issue I uncovered while testing the feegrant stuff: cosmos/cosmos-sdk#10050

Verify correct Rosetta support for IBC/marker minted tokens - FAILED

I looked through the issue and all the connected issues and was unable to find a resolution for this in coinbase or in cosmos. I tested it following the same steps as before for testing locally and then I created a new coin and gave some on one of the users in the network. I then ran the exact same rosetta tests as before and it failed on syncing up the blocks on the block where the new coin was minted at.

I also used: #434 to test an alternate coin I created that I named bitcoin I went through all the steps on: https://docs.provenance.io/blockchain/basics/stablecoin to create it and to get permissions to it on an account I called fredkneeland and gave a bunch of bitcoins to that user. Then I changed the script in the rosetta profile to look for and to send bitcoins as well as nhash so that the account could pay the fees. However, my branch failed to do the tests as rosetta expects all the coins to be in the genesis block and so it failed to sync up with the block where the new coin was minted.

@egaxhaj
Copy link
Contributor

egaxhaj commented Aug 20, 2021

To verify swagger API I did the following:

  1. I ran make proto-swagger-gen which pulls down the following docker container cosmos-sdk-proto-gen-swagger-v02 to build the swagger APIs from:

    • proto/**/query.proto
    • proto/**/tx.proto
    • third_party/proto/**/query.proto
    • third_party/proto/**/tx.proto
  2. The generated swagger file from ./tmp-swagger-gen are merged with existing swagger files from client/docs/config.json and /client/docs/swagger-ui/swagger.yaml using swagger-combine

  3. Once the process is complete I verified that no errors or new changes were introduced to existing swagger files in client/docs/.

However, I did see the following output once the process was complete:

make proto-swagger-gen
Generating Protobuf Swagger
W0820 14:50:00.367282      62 services.go:38] No HttpRule found for method: Msg.AddAttribute
W0820 14:50:00.367347      62 services.go:38] No HttpRule found for method: Msg.UpdateAttribute
W0820 14:50:00.367524      62 services.go:38] No HttpRule found for method: Msg.DeleteAttribute
W0820 14:50:00.367645      62 services.go:38] No HttpRule found for method: Msg.DeleteDistinctAttribute
W0820 14:50:00.591234      90 services.go:38] No HttpRule found for method: Msg.Finalize
W0820 14:50:00.591284      90 services.go:38] No HttpRule found for method: Msg.Activate
W0820 14:50:00.591300      90 services.go:38] No HttpRule found for method: Msg.Cancel
W0820 14:50:00.591318      90 services.go:38] No HttpRule found for method: Msg.Delete
W0820 14:50:00.591423      90 services.go:38] No HttpRule found for method: Msg.Mint
W0820 14:50:00.591446      90 services.go:38] No HttpRule found for method: Msg.Burn
W0820 14:50:00.591467      90 services.go:38] No HttpRule found for method: Msg.AddAccess
W0820 14:50:00.591535      90 services.go:38] No HttpRule found for method: Msg.DeleteAccess
W0820 14:50:00.591552      90 services.go:38] No HttpRule found for method: Msg.Withdraw
W0820 14:50:00.591565      90 services.go:38] No HttpRule found for method: Msg.AddMarker
W0820 14:50:00.591586      90 services.go:38] No HttpRule found for method: Msg.Transfer
W0820 14:50:00.591668      90 services.go:38] No HttpRule found for method: Msg.SetDenomMetadata
W0820 14:50:00.834276     122 services.go:38] No HttpRule found for method: Msg.WriteScope
W0820 14:50:00.834335     122 services.go:38] No HttpRule found for method: Msg.DeleteScope
W0820 14:50:00.834354     122 services.go:38] No HttpRule found for method: Msg.AddScopeDataAccess
W0820 14:50:00.834368     122 services.go:38] No HttpRule found for method: Msg.DeleteScopeDataAccess
W0820 14:50:00.834386     122 services.go:38] No HttpRule found for method: Msg.AddScopeOwner
W0820 14:50:00.834408     122 services.go:38] No HttpRule found for method: Msg.DeleteScopeOwner
W0820 14:50:00.834648     122 services.go:38] No HttpRule found for method: Msg.WriteSession
W0820 14:50:00.834683     122 services.go:38] No HttpRule found for method: Msg.WriteRecord
W0820 14:50:00.834702     122 services.go:38] No HttpRule found for method: Msg.DeleteRecord
W0820 14:50:00.834721     122 services.go:38] No HttpRule found for method: Msg.WriteScopeSpecification
W0820 14:50:00.834738     122 services.go:38] No HttpRule found for method: Msg.DeleteScopeSpecification
W0820 14:50:00.834756     122 services.go:38] No HttpRule found for method: Msg.WriteContractSpecification
W0820 14:50:00.834773     122 services.go:38] No HttpRule found for method: Msg.DeleteContractSpecification
W0820 14:50:00.834791     122 services.go:38] No HttpRule found for method: Msg.AddContractSpecToScopeSpec
W0820 14:50:00.834803     122 services.go:38] No HttpRule found for method: Msg.DeleteContractSpecFromScopeSpec
W0820 14:50:00.834822     122 services.go:38] No HttpRule found for method: Msg.WriteRecordSpecification
W0820 14:50:00.834839     122 services.go:38] No HttpRule found for method: Msg.DeleteRecordSpecification
W0820 14:50:00.834866     122 services.go:38] No HttpRule found for method: Msg.WriteP8eContractSpec
W0820 14:50:00.834886     122 services.go:38] No HttpRule found for method: Msg.P8eMemorializeContract
W0820 14:50:00.834898     122 services.go:38] No HttpRule found for method: Msg.BindOSLocator
W0820 14:50:00.834926     122 services.go:38] No HttpRule found for method: Msg.DeleteOSLocator
W0820 14:50:00.834941     122 services.go:38] No HttpRule found for method: Msg.ModifyOSLocator
W0820 14:50:00.990014     153 services.go:38] No HttpRule found for method: Msg.BindName
W0820 14:50:00.990106     153 services.go:38] No HttpRule found for method: Msg.DeleteName

@egaxhaj
Copy link
Contributor

egaxhaj commented Aug 20, 2021

To verify --reverse pagination support I took the following steps:

  1. I ran make build to build provenanced with the latest flags.
  2. I ran make localnet-start which starts up a 4 node localnet using docker.
  3. I ran ./build/provenanced query staking validators for ASC order
  4. I ran ./build/provenanced query staking validators --reverse for DESC order

Results from from 3 & 4.

Ascending order

$ ./build/provenanced query staking validators 
pagination:
  next_key: null
  total: "0"
validators:
- commission:
    commission_rates:
      max_change_rate: "1.000000000000000000"
      max_rate: "1.000000000000000000"
      rate: "1.000000000000000000"
    update_time: "2021-08-18T20:01:40.860328300Z"
  consensus_pubkey:
    '@type': /cosmos.crypto.ed25519.PubKey
    key: HOhVKfBSLf7jqeI4Fgkh3M2f5x1gpPgNDXLvh1LS4sQ=
  delegator_shares: "100000000000.000000000000000000"
  description:
    details: ""
    identity: ""
    moniker: node1
    security_contact: ""
    website: ""
  jailed: false
  min_self_delegation: "1"
  operator_address: tpvaloper1h5hkwu3tf6wsnzgjf2ukwcpf2rq97v6tp3yahk
  status: BOND_STATUS_BONDED
  tokens: "100000000000"
  unbonding_height: "0"
  unbonding_time: "1970-01-01T00:00:00Z"
- commission:
    commission_rates:
      max_change_rate: "1.000000000000000000"
      max_rate: "1.000000000000000000"
      rate: "1.000000000000000000"
    update_time: "2021-08-18T20:01:40.860328300Z"
  consensus_pubkey:
    '@type': /cosmos.crypto.ed25519.PubKey
    key: Y/Av1whcn/aSUfL/vxT1Qh/7/2LUklcnk5tdl02G4zg=
  delegator_shares: "100000000000.000000000000000000"
  description:
    details: ""
    identity: ""
    moniker: node2
    security_contact: ""
    website: ""
  jailed: false
  min_self_delegation: "1"
  operator_address: tpvaloper1h5esxc6nswvjwk5uy5lrv9g3jcu29hc3xke2an
  status: BOND_STATUS_BONDED
  tokens: "100000000000"
  unbonding_height: "0"
  unbonding_time: "1970-01-01T00:00:00Z"
- commission:
    commission_rates:
      max_change_rate: "1.000000000000000000"
      max_rate: "1.000000000000000000"
      rate: "1.000000000000000000"
    update_time: "2021-08-18T20:01:40.860328300Z"
  consensus_pubkey:
    '@type': /cosmos.crypto.ed25519.PubKey
    key: W1bc1hZ2hpPzup5a154aPFBKOS5Euk1XKLtjdgxmkrk=
  delegator_shares: "100000000000.000000000000000000"
  description:
    details: ""
    identity: ""
    moniker: node0
    security_contact: ""
    website: ""
  jailed: false
  min_self_delegation: "1"
  operator_address: tpvaloper1cw2vkz4h4zhc6mtfxrh67q9v2k0d7697s636kd
  status: BOND_STATUS_BONDED
  tokens: "100000000000"
  unbonding_height: "0"
  unbonding_time: "1970-01-01T00:00:00Z"
- commission:
    commission_rates:
      max_change_rate: "1.000000000000000000"
      max_rate: "1.000000000000000000"
      rate: "1.000000000000000000"
    update_time: "2021-08-18T20:01:40.860328300Z"
  consensus_pubkey:
    '@type': /cosmos.crypto.ed25519.PubKey
    key: V8Q6XcFUJOZxbKIiGVK0XoRJ1S8qLOEJhgHzcxci8M8=
  delegator_shares: "100000000000.000000000000000000"
  description:
    details: ""
    identity: ""
    moniker: node3
    security_contact: ""
    website: ""
  jailed: false
  min_self_delegation: "1"
  operator_address: tpvaloper16hqsczs74w5gpz69qrtmnnc7tqywxxnkydcl43
  status: BOND_STATUS_BONDED
  tokens: "100000000000"
  unbonding_height: "0"
  unbonding_time: "1970-01-01T00:00:00Z"

Descending order:

$ ./build/provenanced query staking validators --reverse
pagination:
  next_key: null
  total: "0"
validators:
- commission:
    commission_rates:
      max_change_rate: "1.000000000000000000"
      max_rate: "1.000000000000000000"
      rate: "1.000000000000000000"
    update_time: "2021-08-18T20:01:40.860328300Z"
  consensus_pubkey:
    '@type': /cosmos.crypto.ed25519.PubKey
    key: V8Q6XcFUJOZxbKIiGVK0XoRJ1S8qLOEJhgHzcxci8M8=
  delegator_shares: "100000000000.000000000000000000"
  description:
    details: ""
    identity: ""
    moniker: node3
    security_contact: ""
    website: ""
  jailed: false
  min_self_delegation: "1"
  operator_address: tpvaloper16hqsczs74w5gpz69qrtmnnc7tqywxxnkydcl43
  status: BOND_STATUS_BONDED
  tokens: "100000000000"
  unbonding_height: "0"
  unbonding_time: "1970-01-01T00:00:00Z"
- commission:
    commission_rates:
      max_change_rate: "1.000000000000000000"
      max_rate: "1.000000000000000000"
      rate: "1.000000000000000000"
    update_time: "2021-08-18T20:01:40.860328300Z"
  consensus_pubkey:
    '@type': /cosmos.crypto.ed25519.PubKey
    key: W1bc1hZ2hpPzup5a154aPFBKOS5Euk1XKLtjdgxmkrk=
  delegator_shares: "100000000000.000000000000000000"
  description:
    details: ""
    identity: ""
    moniker: node0
    security_contact: ""
    website: ""
  jailed: false
  min_self_delegation: "1"
  operator_address: tpvaloper1cw2vkz4h4zhc6mtfxrh67q9v2k0d7697s636kd
  status: BOND_STATUS_BONDED
  tokens: "100000000000"
  unbonding_height: "0"
  unbonding_time: "1970-01-01T00:00:00Z"
- commission:
    commission_rates:
      max_change_rate: "1.000000000000000000"
      max_rate: "1.000000000000000000"
      rate: "1.000000000000000000"
    update_time: "2021-08-18T20:01:40.860328300Z"
  consensus_pubkey:
    '@type': /cosmos.crypto.ed25519.PubKey
    key: Y/Av1whcn/aSUfL/vxT1Qh/7/2LUklcnk5tdl02G4zg=
  delegator_shares: "100000000000.000000000000000000"
  description:
    details: ""
    identity: ""
    moniker: node2
    security_contact: ""
    website: ""
  jailed: false
  min_self_delegation: "1"
  operator_address: tpvaloper1h5esxc6nswvjwk5uy5lrv9g3jcu29hc3xke2an
  status: BOND_STATUS_BONDED
  tokens: "100000000000"
  unbonding_height: "0"
  unbonding_time: "1970-01-01T00:00:00Z"
- commission:
    commission_rates:
      max_change_rate: "1.000000000000000000"
      max_rate: "1.000000000000000000"
      rate: "1.000000000000000000"
    update_time: "2021-08-18T20:01:40.860328300Z"
  consensus_pubkey:
    '@type': /cosmos.crypto.ed25519.PubKey
    key: HOhVKfBSLf7jqeI4Fgkh3M2f5x1gpPgNDXLvh1LS4sQ=
  delegator_shares: "100000000000.000000000000000000"
  description:
    details: ""
    identity: ""
    moniker: node1
    security_contact: ""
    website: ""
  jailed: false
  min_self_delegation: "1"
  operator_address: tpvaloper1h5hkwu3tf6wsnzgjf2ukwcpf2rq97v6tp3yahk
  status: BOND_STATUS_BONDED
  tokens: "100000000000"
  unbonding_height: "0"
  unbonding_time: "1970-01-01T00:00:00Z"

@iramiller iramiller moved this from To Do to In Progress in Mainnet Aug 23, 2021
@egaxhaj
Copy link
Contributor

egaxhaj commented Aug 23, 2021

To verify CLI pagination #332, I took the following steps:

  1. I ran make build to rebuild the provenanced binary with the latest flags.

  2. I started up a 4 node localnet docker cluster with make localnet-start

  3. I retrieved the local address from the cluster: ./build/provenanced keys list -t --home build/node0

  4. I proceeded to test the 4 modules affected by the fix in Fix handling of --page-key value to expect a base64 encoded string #332: attribute, marker, name and metadata.

Note that I had to use the following additional flags to successfully run my tests. Thank you @carlton for helping me figure this out.
--home ./build/node0
--chain-id chain-local
----keyring-backend test

Other noteworthy flags:
-t testnet
-y Skip tx broadcasting prompt confirmation

Before proceeding with the tests see step 3 above.

Test results (TLDR)

attribute module PASSED
marker module PASSED
name module PASSED
metadata module FAILED. @dwedul-figure I only tested with locators as it was the easiest for me to work with.

In addition, --reverse did not work in the metadata locators and worked with attribute, marker, name modules. Is this a bug in Cosmos SDK?


Attribute module (PASSED)

  1. Check to see if there are existing attributes in place.

./build/provenanced query attribute list tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg -t --home build/node0 --chain-id chain-local

  1. If no attributes exist, then check what available names already exist in the name module that we can use.

./build/provenanced query name lookup tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg -t --home build/node0 --chain-id chain-local

  1. Add a few attributes. (Skip this step if step 1 results in a list of attributes)

Add {"key": 1, "value": "pio"} to the pio root name.

$ ./build/provenanced tx attribute add pio tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg json '{"key": 1, "value": "pio"}' --from tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg --fees 1000000000nhash -t --home build/node0 --chain-id chain-local --keyring-backend test -y

code: 0
codespace: ""
data: 0A310A2F2F70726F76656E616E63652E6174747269627574652E76312E4D736741646441747472696275746552657175657374
gas_used: "66270"
gas_wanted: "200000"
height: "10609"
info: ""
logs:
- events:
  - attributes:
    - key: attribute_name
      value: pio
    - key: account_address
      value: tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg
    type: account_attribute_added
  - attributes:
    - key: action
      value: /provenance.attribute.v1.MsgAddAttributeRequest
    type: message
  - attributes:
    - key: name
      value: '"pio"'
    - key: value
      value: '"eyJrZXkiOiAxLCAidmFsdWUiOiAicGlvIn0="'
    - key: type
      value: '"ATTRIBUTE_TYPE_JSON"'
    - key: account
      value: '"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg"'
    - key: owner
      value: '"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg"'
    type: provenance.attribute.v1.EventAttributeAdd
  log: ""
  msg_index: 0
raw_log: '[{"events":[{"type":"account_attribute_added","attributes":[{"key":"attribute_name","value":"pio"},{"key":"account_address","value":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg"}]},{"type":"message","attributes":[{"key":"action","value":"/provenance.attribute.v1.MsgAddAttributeRequest"}]},{"type":"provenance.attribute.v1.EventAttributeAdd","attributes":[{"key":"name","value":"\"pio\""},{"key":"value","value":"\"eyJrZXkiOiAxLCAidmFsdWUiOiAicGlvIn0=\""},{"key":"type","value":"\"ATTRIBUTE_TYPE_JSON\""},{"key":"account","value":"\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\""},{"key":"owner","value":"\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\""}]}]}]'
timestamp: ""
tx: null
txhash: 09D46134D5BFC923919953388199B3AD06D0FEA07AB2F8A2C6611289D1A315B4

Add {"key": 1, "value": "pio-test"} to the pio root name.

$ ./build/provenanced tx attribute add pio tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg json '{"key": 1, "value": "pio-test"}' --from tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg --fees 1000000000nhash -t --home build/node0 --chain-id chain-local --keyring-backend test -y 

code: 0
codespace: ""
data: 0A310A2F2F70726F76656E616E63652E6174747269627574652E76312E4D736741646441747472696275746552657175657374
gas_used: "66470"
gas_wanted: "200000"
height: "10659"
info: ""
logs:
- events:
  - attributes:
    - key: attribute_name
      value: pio
    - key: account_address
      value: tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg
    type: account_attribute_added
  - attributes:
    - key: action
      value: /provenance.attribute.v1.MsgAddAttributeRequest
    type: message
  - attributes:
    - key: value
      value: '"eyJrZXkiOiAxLCAidmFsdWUiOiAicGlvLXRlc3QifQ=="'
    - key: type
      value: '"ATTRIBUTE_TYPE_JSON"'
    - key: account
      value: '"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg"'
    - key: owner
      value: '"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg"'
    - key: name
      value: '"pio"'
    type: provenance.attribute.v1.EventAttributeAdd
  log: ""
  msg_index: 0
raw_log: '[{"events":[{"type":"account_attribute_added","attributes":[{"key":"attribute_name","value":"pio"},{"key":"account_address","value":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg"}]},{"type":"message","attributes":[{"key":"action","value":"/provenance.attribute.v1.MsgAddAttributeRequest"}]},{"type":"provenance.attribute.v1.EventAttributeAdd","attributes":[{"key":"value","value":"\"eyJrZXkiOiAxLCAidmFsdWUiOiAicGlvLXRlc3QifQ==\""},{"key":"type","value":"\"ATTRIBUTE_TYPE_JSON\""},{"key":"account","value":"\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\""},{"key":"owner","value":"\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\""},{"key":"name","value":"\"pio\""}]}]}]'
timestamp: ""
tx: null
txhash: F84F7F2246065852C0F1BC0C5CF183B4936EE614BDDBC3AAA60405A8D2324CD8
  1. Paginate through the list one at a time using --limit 1.
$ ./build/provenanced query attribute list tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg -t --home build/node0 --chain-id chain-local --limit 1  
           
account: tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg
attributes:
- address: tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg
  attribute_type: ATTRIBUTE_TYPE_STRING
  name: pb
  value: aGk=
pagination:
  next_key: S7S+wrmCJJAkYhufEU6fU9EF/ETg0WF3VSmCa3tdWtEs8k26X7CjDiboOyrFueKeGxYeXB+nQl5zBDNik4uYJA==
  total: "0"
  1. Paginate through the next item using the next_key value above.
./build/provenanced query attribute list tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg -t --home build/node0 --chain-id chain-local --limit 1 --page-key S7S+wrmCJJAkYhufEU6fU9EF/ETg0WF3VSmCa3tdWtEs8k26X7CjDiboOyrFueKeGxYeXB+nQl5zBDNik4uYJA==

account: tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg
attributes:
- address: tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg
  attribute_type: ATTRIBUTE_TYPE_STRING
  name: pio
  value: aGVsbG8=
pagination:
  next_key: S7S+wrmCJJAkYhufEU6fU9EF/ETg0WF3VSmCa3tdWtFkdjfVxfqu/csRkI10NeY4an/MuoMt/UnCJJ1d2LSiXg==
  total: "0"

Marker module (PASSED)

  1. Add a new marker to your address.
$ ./build/provenanced tx marker new 1000hottdogcoin --type=RESTRICTED --supplyFixed=true --allowGovernanceControl=true --from tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg --fees 1000000000nhash -t --home build/node0 --chain-id chain-local --keyring-backend test -y 

code: 0
codespace: ""
data: 0A2B0A292F70726F76656E616E63652E6D61726B65722E76312E4D73674164644D61726B657252657175657374
gas_used: "67634"
gas_wanted: "200000"
height: "11118"
info: ""
logs:
- events:
  - attributes:
    - key: action
      value: /provenance.marker.v1.MsgAddMarkerRequest
    - key: module
      value: marker
    type: message
  - attributes:
    - key: amount
      value: '"1000"'
    - key: status
      value: '"proposed"'
    - key: manager
      value: '"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg"'
    - key: marker_type
      value: '"MARKER_TYPE_RESTRICTED"'
    - key: denom
      value: '"hottdogcoin"'
    type: provenance.marker.v1.EventMarkerAdd
  log: ""
  msg_index: 0
raw_log: '[{"events":[{"type":"message","attributes":[{"key":"action","value":"/provenance.marker.v1.MsgAddMarkerRequest"},{"key":"module","value":"marker"}]},{"type":"provenance.marker.v1.EventMarkerAdd","attributes":[{"key":"amount","value":"\"1000\""},{"key":"status","value":"\"proposed\""},{"key":"manager","value":"\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\""},{"key":"marker_type","value":"\"MARKER_TYPE_RESTRICTED\""},{"key":"denom","value":"\"hottdogcoin\""}]}]}]'
timestamp: ""
tx: null
txhash: AF59AC9497BD977C64D5B4DFE92539C084BD501D07F0EEF5A308C44DDE50E6B7
  1. Paginate through the list one at a time using --limit 1.
$ ./build/provenanced query marker list -t --home build/node0 --chain-id chain-local --limit 1 

markers:
- '@type': /provenance.marker.v1.MarkerAccount
  access_control:
  - address: tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg
    permissions:
    - ACCESS_ADMIN
    - ACCESS_MINT
    - ACCESS_BURN
    - ACCESS_WITHDRAW
  allow_governance_control: true
  base_account:
    account_number: "10"
    address: tp1pr93cqdh4kfnmrknhwa87a5qrwxw9k3dhkszp0
    pub_key: null
    sequence: "0"
  denom: nhash
  manager: ""
  marker_type: MARKER_TYPE_COIN
  status: MARKER_STATUS_ACTIVE
  supply: "100000000000000000000"
  supply_fixed: true
pagination:
  next_key: FE2l2T5EheyNb2tJlznBE4gleOQQ
  total: "0"
  1. Paginate through the next item using the next_key value above.
$ ./build/provenanced query marker list -t --home build/node0 --chain-id chain-local --limit 1 --page-key FE2l2T5EheyNb2tJlznBE4gleOQQ

markers:
- '@type': /provenance.marker.v1.MarkerAccount
  access_control: []
  allow_governance_control: true
  base_account:
    account_number: "14"
    address: tp1fkjaj0jyshkg6mmtfxtnnsgn3qjh3eqs5ru3na
    pub_key: null
    sequence: "0"
  denom: hottdogcoin
  manager: tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg
  marker_type: MARKER_TYPE_RESTRICTED
  status: MARKER_STATUS_PROPOSED
  supply: "1000"
  supply_fixed: true
pagination:
  next_key: null
  total: "0"

Name module (PASSED)

  1. Paginate through the list one at a time using --limit 1. (I added some of my own as you can see below. You may do the same if you want to.)
./build/provenanced query name lookup tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg -t --home build/node0 --chain-id chain-local --limit 1

name:
- attribute.pio
pagination:
  next_key: AzMV9E2kp6qvjYQ4LHWDIz9pd4f1hxKU7UnNQSB/c3Wg
  total: "0"
  1. Paginate through the next item using the next_key value above.
$ ./build/provenanced query name lookup tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg -t --home build/node0 --chain-id chain-local --limit 1 --page-key AzMV9E2kp6qvjYQ4LHWDIz9pd4f1hxKU7UnNQSB/c3Wg

name:
- pb
pagination:
  next_key: A0Ah+t8Yf9LIJ3qtD7xej8Tn8cdfuzi2M3Fg8SVER5Cy
  total: "0"

Metadata module (FAILED)

To test pagination on the Metadata module I chose to use the locator as this is the easiest to add to.

  1. To add locators we’ll need to add a new address to our local chain as only one locator per address is allowed.
$ ./build/provenanced keys add user-1 --home ./build/node0 -t

override the existing name user-1 [y/N]: y

- name: user-1
  type: local
  address: tp10ywpev9jj2502nwxeg7he487wlu3yzean5a85j
  pubkey: '{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"AtDR/W3a59oUbXggf/tcLv5UZK66uzTBP05UtfSJE3tA"}'
  mnemonic: ""


**Important** write this mnemonic phrase in a safe place.
It is the only way to recover your account if you ever forget your password.

hammer zoo garment bomb slogan swing divert breeze begin picnic vessel detect volcano bamboo evoke tragic ancient sister supreme allow decorate clip extra excuse
  1. Send some nhash to the new address from your existing address.
$ ./build/provenanced tx bank send tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg tp18jjjggrwvyxqtrmk5l4wv2scav29y4sa3ckzvd 1000000000000nhash --fees 1000000000nhash -t --home ./build/node0 --chain-id chain-local --keyring-backend test -y

code: 0
codespace: ""
data: 0A1E0A1C2F636F736D6F732E62616E6B2E763162657461312E4D736753656E64
gas_used: "62619"
gas_wanted: "200000"
height: "11531"
info: ""
logs:
- events:
  - attributes:
    - key: receiver
      value: tp18jjjggrwvyxqtrmk5l4wv2scav29y4sa3ckzvd
    - key: amount
      value: 1000000000000nhash
    type: coin_received
  - attributes:
    - key: spender
      value: tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg
    - key: amount
      value: 1000000000000nhash
    type: coin_spent
  - attributes:
    - key: action
      value: /cosmos.bank.v1beta1.MsgSend
    - key: sender
      value: tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg
    - key: module
      value: bank
    type: message
  - attributes:
    - key: recipient
      value: tp18jjjggrwvyxqtrmk5l4wv2scav29y4sa3ckzvd
    - key: sender
      value: tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg
    - key: amount
      value: 1000000000000nhash
    type: transfer
  log: ""
  msg_index: 0
raw_log: '[{"events":[{"type":"coin_received","attributes":[{"key":"receiver","value":"tp18jjjggrwvyxqtrmk5l4wv2scav29y4sa3ckzvd"},{"key":"amount","value":"1000000000000nhash"}]},{"type":"coin_spent","attributes":[{"key":"spender","value":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg"},{"key":"amount","value":"1000000000000nhash"}]},{"type":"message","attributes":[{"key":"action","value":"/cosmos.bank.v1beta1.MsgSend"},{"key":"sender","value":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg"},{"key":"module","value":"bank"}]},{"type":"transfer","attributes":[{"key":"recipient","value":"tp18jjjggrwvyxqtrmk5l4wv2scav29y4sa3ckzvd"},{"key":"sender","value":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg"},{"key":"amount","value":"1000000000000nhash"}]}]}]'
timestamp: ""
tx: null
txhash: ECE21D5A5FC95AD6B870FC1B620BB121C05555F89907F2571181942770BB2FDE
  1. Associate a new locator to our new address.
$ ./build/provenanced tx metadata bind-locator tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg http://test-2.com --from tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg --fees 1000000000nhash -t --home ./build/node0 --chain-id chain-local --keyring-backend test -y

code: 0
codespace: ""
data: 0A730A2F2F70726F76656E616E63652E6D657461646174612E76312E4D736742696E644F534C6F6361746F725265717565737412400A3E0A29747031386A6A6A676772777679787174726D6B356C347776327363617632397934736133636B7A76641211687474703A2F2F746573742D322E636F6D
gas_used: "64765"
gas_wanted: "200000"
height: "8892"
info: ""
logs:
- events:
  - attributes:
    - key: action
      value: /provenance.metadata.v1.MsgBindOSLocatorRequest
    type: message
  - attributes:
    - key: owner
      value: '"tp18jjjggrwvyxqtrmk5l4wv2scav29y4sa3ckzvd"'
    type: provenance.metadata.v1.EventOSLocatorCreated
  - attributes:
    - key: module
      value: '"metadata"'
    - key: endpoint
      value: '"BindOSLocator"'
    - key: signers
      value: '["tp18jjjggrwvyxqtrmk5l4wv2scav29y4sa3ckzvd"]'
    type: provenance.metadata.v1.EventTxCompleted
  log: ""
  msg_index: 0
raw_log: '[{"events":[{"type":"message","attributes":[{"key":"action","value":"/provenance.metadata.v1.MsgBindOSLocatorRequest"}]},{"type":"provenance.metadata.v1.EventOSLocatorCreated","attributes":[{"key":"owner","value":"\"tp18jjjggrwvyxqtrmk5l4wv2scav29y4sa3ckzvd\""}]},{"type":"provenance.metadata.v1.EventTxCompleted","attributes":[{"key":"module","value":"\"metadata\""},{"key":"endpoint","value":"\"BindOSLocator\""},{"key":"signers","value":"[\"tp18jjjggrwvyxqtrmk5l4wv2scav29y4sa3ckzvd\"]"}]}]}]'
timestamp: ""
tx: null
txhash: 3D0583C23D369AAA392AF74151B40342F327F3F4F3507E5EAE490DE6D9B53E83
  1. Paginate through the list one at a time using --limit 1. (next_key should not be null)
$ ./build/provenanced query metadata locator all -t --home build/node0 --chain-id chain-local --limit 1

locators:
- encryption_key: ""
  locator_uri: http://test-2.com
  owner: tp18jjjggrwvyxqtrmk5l4wv2scav29y4sa3ckzvd
pagination:
  next_key: null
  total: "2"
request: null

List of all locators

$ ./build/provenanced query metadata locator all -t --home build/node0 --chain-id chain-local

locators:
- encryption_key: ""
  locator_uri: http://test-2.com
  owner: tp18jjjggrwvyxqtrmk5l4wv2scav29y4sa3ckzvd
- encryption_key: ""
  locator_uri: http://test.com
  owner: tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg
pagination:
  next_key: null
  total: "2"
request: null

@egaxhaj
Copy link
Contributor

egaxhaj commented Aug 24, 2021

Verify --output flag for query txs comand

To verify output flag, I did the following:

  1. I rebuild the provenanced binary with make build.
  2. I ran the following command to confirm the --output flag was listing in the CLI help output.
  3. I used the --output flag to retrieve JSON output. Validate output is valid JSON using jsonlint.com

Check --output flag is in the txs help menu.

./build/provenanced q txs --help
Search for transactions that match the exact given events where results are paginated.
Each event takes the form of '{eventType}.{eventAttribute}={value}'. Please refer
to each module's documentation for the full set of events to query for. Each module
documents its respective events under 'xx_events.md'.

Example:
$ provenanced query txs --events 'message.sender=cosmos1...&message.action=withdraw_delegator_reward' --page 1 --limit 30

Usage:
  provenanced query txs [flags]

Flags:
      --events string   list of transaction events in the form of {eventType}.{eventAttribute}={value}
      --height int      Use a specific height to query state at (this can error if the node is pruning state)
  -h, --help            help for txs
      --limit int       Query number of transactions results per page returned (default 30)
      --node string     <host>:<port> to Tendermint RPC interface for this chain (default "tcp://localhost:26657")
  -o, --output string   Output format (text|json) (default "text")
      --page int        Query a specific page of paginated results (default 1)

Global Flags:
      --chain-id string     The network chain ID
      --home string         directory for config and data (default "/Users/ergelsgaxhaj/.provenanced")
      --log_format string   The logging format (json|plain) (default "plain")
      --log_level string    The logging level (trace|debug|info|warn|error|fatal|panic) (default "info")
  -t, --testnet             Indicates this command should use the testnet configuration (default: false [mainnet])
      --trace               print out full stack trace on errors

Check --output flag in the txs send menu

$ ./build/provenanced tx bank send tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg tp18jjjggrwvyxqtrmk5l4wv2scav29y4sa3ckzvd 100stake    
Error: tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg.info: key not found
Usage:
  provenanced tx bank send [from_key_or_address] [to_address] [amount] [flags]

Flags:
  -a, --account-number uint      The account number of the signing account (offline mode only)
  -b, --broadcast-mode string    Transaction broadcasting mode (sync|async|block) (default "sync")
      --dry-run                  ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it
      --fee-account string       Fee account pays fees for the transaction instead of deducting from the signer
      --fees string              Fees to pay along with transaction; eg: 10uatom
      --from string              Name or address of private key with which to sign
      --gas string               gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically (default 200000)
      --gas-adjustment float     adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored  (default 1)
      --gas-prices string        Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom)
      --generate-only            Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase is not accessible)
  -h, --help                     help for send
      --keyring-backend string   Select keyring's backend (os|file|kwallet|pass|test|memory) (default "test")
      --keyring-dir string       The client Keyring directory; if omitted, the default 'home' directory will be used
      --ledger                   Use a connected Ledger device
      --node string              <host>:<port> to tendermint rpc interface for this chain (default "tcp://localhost:26657")
      --note string              Note to add a description to the transaction (previously --memo)
      --offline                  Offline mode (does not allow any online functionality
  -o, --output string            Output format (text|json) (default "json")
  -s, --sequence uint            The sequence number of the signing account (offline mode only)
      --sign-mode string         Choose sign mode (direct|amino-json), this is an advanced feature
      --timeout-height uint      Set a block timeout height to prevent the tx from being committed past a certain height
  -y, --yes                      Skip tx broadcasting prompt confirmation

Global Flags:
      --chain-id string     The network chain ID
      --home string         directory for config and data (default "/Users/ergelsgaxhaj/.provenanced")
      --log_format string   The logging format (json|plain) (default "plain")
      --log_level string    The logging level (trace|debug|info|warn|error|fatal|panic) (default "info")
  -t, --testnet             Indicates this command should use the testnet configuration (default: false [mainnet])
      --trace               print out full stack trace on errors

Retrieve output in JSON format using the --output flag

$  ./build/provenanced q txs --events message.sender=tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg --output json
{"total_count":"13","count":"13","page_number":"1","page_total":"1","limit":"30","txs":[{"height":"2769","txhash":"480E1ADB95F32E2C5E0512A3F012EBF5D34726E839E54C4B8A68DF688A02CB70","codespace":"","code":0,"data":"0A310A2F2F70726F76656E616E63652E6174747269627574652E76312E4D736741646441747472696275746552657175657374","raw_log":"[{\"events\":[{\"type\":\"account_attribute_added\",\"attributes\":[{\"key\":\"attribute_name\",\"value\":\"pb\"},{\"key\":\"account_address\",\"value\":\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\"}]},{\"type\":\"message\",\"attributes\":[{\"key\":\"action\",\"value\":\"/provenance.attribute.v1.MsgAddAttributeRequest\"}]},{\"type\":\"provenance.attribute.v1.EventAttributeAdd\",\"attributes\":[{\"key\":\"name\",\"value\":\"\\\"pb\\\"\"},{\"key\":\"value\",\"value\":\"\\\"aGk=\\\"\"},{\"key\":\"type\",\"value\":\"\\\"ATTRIBUTE_TYPE_STRING\\\"\"},{\"key\":\"account\",\"value\":\"\\\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\\\"\"},{\"key\":\"owner\",\"value\":\"\\\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\\\"\"}]}]}]","logs":[{"msg_index":0,"log":"","events":[{"type":"account_attribute_added","attributes":[{"key":"attribute_name","value":"pb"},{"key":"account_address","value":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg"}]},{"type":"message","attributes":[{"key":"action","value":"/provenance.attribute.v1.MsgAddAttributeRequest"}]},{"type":"provenance.attribute.v1.EventAttributeAdd","attributes":[{"key":"name","value":"\"pb\""},{"key":"value","value":"\"aGk=\""},{"key":"type","value":"\"ATTRIBUTE_TYPE_STRING\""},{"key":"account","value":"\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\""},{"key":"owner","value":"\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\""}]}]}],"info":"","gas_wanted":"200000","gas_used":"65273","tx":{"@type":"/cosmos.tx.v1beta1.Tx","body":{"messages":[{"@type":"/provenance.attribute.v1.MsgAddAttributeRequest","name":"pb","value":"aGk=","attribute_type":"ATTRIBUTE_TYPE_STRING","account":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg","owner":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg"}],"memo":"","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[{"public_key":{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"AtDzArx5J2q3sKZhuY187u0m+B5uGCnMRvrVJlTpRBv3"},"mode_info":{"single":{"mode":"SIGN_MODE_DIRECT"}},"sequence":"2"}],"fee":{"amount":[{"denom":"nhash","amount":"1000000000"}],"gas_limit":"200000","payer":"","granter":""}},"signatures":["dwnSpUZ0dXqyENwRLMf8U6iVZgMLDdleNkx0GXyMRBgan0dyqreF+qc38uYFRLw6bC//rC6dP2K++qxYUf1ONg=="]},"timestamp":"2021-08-19T20:08:37Z"},{"height":"2913","txhash":"40DFD944974B5938D8DEFA08AD5DAB48F598E5B4ED6EB3AA394E60B7E394CF35","codespace":"","code":0,"data":"0A310A2F2F70726F76656E616E63652E6174747269627574652E76312E4D736741646441747472696275746552657175657374","raw_log":"[{\"events\":[{\"type\":\"account_attribute_added\",\"attributes\":[{\"key\":\"attribute_name\",\"value\":\"pio\"},{\"key\":\"account_address\",\"value\":\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\"}]},{\"type\":\"message\",\"attributes\":[{\"key\":\"action\",\"value\":\"/provenance.attribute.v1.MsgAddAttributeRequest\"}]},{\"type\":\"provenance.attribute.v1.EventAttributeAdd\",\"attributes\":[{\"key\":\"type\",\"value\":\"\\\"ATTRIBUTE_TYPE_STRING\\\"\"},{\"key\":\"account\",\"value\":\"\\\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\\\"\"},{\"key\":\"owner\",\"value\":\"\\\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\\\"\"},{\"key\":\"name\",\"value\":\"\\\"pio\\\"\"},{\"key\":\"value\",\"value\":\"\\\"aGk=\\\"\"}]}]}]","logs":[{"msg_index":0,"log":"","events":[{"type":"account_attribute_added","attributes":[{"key":"attribute_name","value":"pio"},{"key":"account_address","value":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg"}]},{"type":"message","attributes":[{"key":"action","value":"/provenance.attribute.v1.MsgAddAttributeRequest"}]},{"type":"provenance.attribute.v1.EventAttributeAdd","attributes":[{"key":"type","value":"\"ATTRIBUTE_TYPE_STRING\""},{"key":"account","value":"\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\""},{"key":"owner","value":"\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\""},{"key":"name","value":"\"pio\""},{"key":"value","value":"\"aGk=\""}]}]}],"info":"","gas_wanted":"200000","gas_used":"65310","tx":{"@type":"/cosmos.tx.v1beta1.Tx","body":{"messages":[{"@type":"/provenance.attribute.v1.MsgAddAttributeRequest","name":"pio","value":"aGk=","attribute_type":"ATTRIBUTE_TYPE_STRING","account":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg","owner":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg"}],"memo":"","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[{"public_key":{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"AtDzArx5J2q3sKZhuY187u0m+B5uGCnMRvrVJlTpRBv3"},"mode_info":{"single":{"mode":"SIGN_MODE_DIRECT"}},"sequence":"3"}],"fee":{"amount":[{"denom":"nhash","amount":"1000000000"}],"gas_limit":"200000","payer":"","granter":""}},"signatures":["vB0Is9yDIBIf4jfakPPa92GR/qRU6KIR8ZHfPMQb0PRkvUHF5/Udk8L0h30yXt423Jb3hzIfCTkmqwILdikcVQ=="]},"timestamp":"2021-08-19T20:19:10Z"},{"height":"2916","txhash":"761D0CF82C54B3E7B58C13A16B38FED504BCB55646B182766B15A96267450A0A","codespace":"","code":0,"data":"0A310A2F2F70726F76656E616E63652E6174747269627574652E76312E4D736741646441747472696275746552657175657374","raw_log":"[{\"events\":[{\"type\":\"account_attribute_added\",\"attributes\":[{\"key\":\"attribute_name\",\"value\":\"provenance\"},{\"key\":\"account_address\",\"value\":\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\"}]},{\"type\":\"message\",\"attributes\":[{\"key\":\"action\",\"value\":\"/provenance.attribute.v1.MsgAddAttributeRequest\"}]},{\"type\":\"provenance.attribute.v1.EventAttributeAdd\",\"attributes\":[{\"key\":\"type\",\"value\":\"\\\"ATTRIBUTE_TYPE_STRING\\\"\"},{\"key\":\"account\",\"value\":\"\\\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\\\"\"},{\"key\":\"owner\",\"value\":\"\\\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\\\"\"},{\"key\":\"name\",\"value\":\"\\\"provenance\\\"\"},{\"key\":\"value\",\"value\":\"\\\"aGk=\\\"\"}]}]}]","logs":[{"msg_index":0,"log":"","events":[{"type":"account_attribute_added","attributes":[{"key":"attribute_name","value":"provenance"},{"key":"account_address","value":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg"}]},{"type":"message","attributes":[{"key":"action","value":"/provenance.attribute.v1.MsgAddAttributeRequest"}]},{"type":"provenance.attribute.v1.EventAttributeAdd","attributes":[{"key":"type","value":"\"ATTRIBUTE_TYPE_STRING\""},{"key":"account","value":"\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\""},{"key":"owner","value":"\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\""},{"key":"name","value":"\"provenance\""},{"key":"value","value":"\"aGk=\""}]}]}],"info":"","gas_wanted":"200000","gas_used":"65611","tx":{"@type":"/cosmos.tx.v1beta1.Tx","body":{"messages":[{"@type":"/provenance.attribute.v1.MsgAddAttributeRequest","name":"provenance","value":"aGk=","attribute_type":"ATTRIBUTE_TYPE_STRING","account":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg","owner":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg"}],"memo":"","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[{"public_key":{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"AtDzArx5J2q3sKZhuY187u0m+B5uGCnMRvrVJlTpRBv3"},"mode_info":{"single":{"mode":"SIGN_MODE_DIRECT"}},"sequence":"4"}],"fee":{"amount":[{"denom":"nhash","amount":"1000000000"}],"gas_limit":"200000","payer":"","granter":""}},"signatures":["ORK9lakjHwwyJYcP/a9SwQx/qO5GvS8a/9vJkD9j+2lsQfpkCTJzmUXH6kPkOGlMjJi132kLxkSMAHrEF9qP+A=="]},"timestamp":"2021-08-19T20:19:23Z"},{"height":"3988","txhash":"599B08FC7B8B45C0DD1BBB4C8F2F40D315D1377441582DABDE08920FD2DF5CF9","codespace":"","code":0,"data":"0A310A2F2F70726F76656E616E63652E6174747269627574652E76312E4D736741646441747472696275746552657175657374","raw_log":"[{\"events\":[{\"type\":\"account_attribute_added\",\"attributes\":[{\"key\":\"attribute_name\",\"value\":\"pio\"},{\"key\":\"account_address\",\"value\":\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\"}]},{\"type\":\"message\",\"attributes\":[{\"key\":\"action\",\"value\":\"/provenance.attribute.v1.MsgAddAttributeRequest\"}]},{\"type\":\"provenance.attribute.v1.EventAttributeAdd\",\"attributes\":[{\"key\":\"type\",\"value\":\"\\\"ATTRIBUTE_TYPE_STRING\\\"\"},{\"key\":\"account\",\"value\":\"\\\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\\\"\"},{\"key\":\"owner\",\"value\":\"\\\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\\\"\"},{\"key\":\"name\",\"value\":\"\\\"pio\\\"\"},{\"key\":\"value\",\"value\":\"\\\"aGVsbG8=\\\"\"}]}]}]","logs":[{"msg_index":0,"log":"","events":[{"type":"account_attribute_added","attributes":[{"key":"attribute_name","value":"pio"},{"key":"account_address","value":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg"}]},{"type":"message","attributes":[{"key":"action","value":"/provenance.attribute.v1.MsgAddAttributeRequest"}]},{"type":"provenance.attribute.v1.EventAttributeAdd","attributes":[{"key":"type","value":"\"ATTRIBUTE_TYPE_STRING\""},{"key":"account","value":"\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\""},{"key":"owner","value":"\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\""},{"key":"name","value":"\"pio\""},{"key":"value","value":"\"aGVsbG8=\""}]}]}],"info":"","gas_wanted":"200000","gas_used":"65430","tx":{"@type":"/cosmos.tx.v1beta1.Tx","body":{"messages":[{"@type":"/provenance.attribute.v1.MsgAddAttributeRequest","name":"pio","value":"aGVsbG8=","attribute_type":"ATTRIBUTE_TYPE_STRING","account":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg","owner":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg"}],"memo":"","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[{"public_key":{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"AtDzArx5J2q3sKZhuY187u0m+B5uGCnMRvrVJlTpRBv3"},"mode_info":{"single":{"mode":"SIGN_MODE_DIRECT"}},"sequence":"21"}],"fee":{"amount":[{"denom":"nhash","amount":"1000000000"}],"gas_limit":"200000","payer":"","granter":""}},"signatures":["BZfeLOZ1ERFwwF+luC46K4g3LfXLLFQRPUF/2r7Sc/kd1N+Aqs09poJEqLyhfwYTcPnLs91qZ5pPjY9XQIfC7Q=="]},"timestamp":"2021-08-20T15:09:45Z"},{"height":"4068","txhash":"5D608E076EBDC366CDA6339C2283A61AC55C00915AEB3A1719982F1914A4CBEA","codespace":"","code":0,"data":"0A310A2F2F70726F76656E616E63652E6174747269627574652E76312E4D736741646441747472696275746552657175657374","raw_log":"[{\"events\":[{\"type\":\"account_attribute_added\",\"attributes\":[{\"key\":\"attribute_name\",\"value\":\"pio\"},{\"key\":\"account_address\",\"value\":\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\"}]},{\"type\":\"message\",\"attributes\":[{\"key\":\"action\",\"value\":\"/provenance.attribute.v1.MsgAddAttributeRequest\"}]},{\"type\":\"provenance.attribute.v1.EventAttributeAdd\",\"attributes\":[{\"key\":\"name\",\"value\":\"\\\"pio\\\"\"},{\"key\":\"value\",\"value\":\"\\\"eyJrZXkiOiAxLCAidmFsdWUiOiAiaGVsbG8ifQ==\\\"\"},{\"key\":\"type\",\"value\":\"\\\"ATTRIBUTE_TYPE_JSON\\\"\"},{\"key\":\"account\",\"value\":\"\\\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\\\"\"},{\"key\":\"owner\",\"value\":\"\\\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\\\"\"}]}]}]","logs":[{"msg_index":0,"log":"","events":[{"type":"account_attribute_added","attributes":[{"key":"attribute_name","value":"pio"},{"key":"account_address","value":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg"}]},{"type":"message","attributes":[{"key":"action","value":"/provenance.attribute.v1.MsgAddAttributeRequest"}]},{"type":"provenance.attribute.v1.EventAttributeAdd","attributes":[{"key":"name","value":"\"pio\""},{"key":"value","value":"\"eyJrZXkiOiAxLCAidmFsdWUiOiAiaGVsbG8ifQ==\""},{"key":"type","value":"\"ATTRIBUTE_TYPE_JSON\""},{"key":"account","value":"\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\""},{"key":"owner","value":"\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\""}]}]}],"info":"","gas_wanted":"200000","gas_used":"66350","tx":{"@type":"/cosmos.tx.v1beta1.Tx","body":{"messages":[{"@type":"/provenance.attribute.v1.MsgAddAttributeRequest","name":"pio","value":"eyJrZXkiOiAxLCAidmFsdWUiOiAiaGVsbG8ifQ==","attribute_type":"ATTRIBUTE_TYPE_JSON","account":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg","owner":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg"}],"memo":"","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[{"public_key":{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"AtDzArx5J2q3sKZhuY187u0m+B5uGCnMRvrVJlTpRBv3"},"mode_info":{"single":{"mode":"SIGN_MODE_DIRECT"}},"sequence":"22"}],"fee":{"amount":[{"denom":"nhash","amount":"1000000000"}],"gas_limit":"200000","payer":"","granter":""}},"signatures":["JutYpeQIrAYvVtQIJZhCMKoAOS7k+VrgvIWjrN245CQph7oOUa07H/dO3MnA6ZbCH4ddouwyM/XZLYShWzM8Jg=="]},"timestamp":"2021-08-20T15:15:38Z"},{"height":"4510","txhash":"9DDD20CB85D7C5C0375B263F67F5C2A81AE3B2912523DA2FAA81E5652604F479","codespace":"","code":0,"data":"0A280A262F70726F76656E616E63652E6E616D652E76312E4D736742696E644E616D6552657175657374","raw_log":"[{\"events\":[{\"type\":\"message\",\"attributes\":[{\"key\":\"action\",\"value\":\"/provenance.name.v1.MsgBindNameRequest\"}]},{\"type\":\"name_bound\",\"attributes\":[{\"key\":\"address\",\"value\":\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\"},{\"key\":\"name\",\"value\":\"attribute\"}]},{\"type\":\"provenance.name.v1.EventNameBound\",\"attributes\":[{\"key\":\"address\",\"value\":\"\\\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\\\"\"},{\"key\":\"name\",\"value\":\"\\\"attribute.pio\\\"\"}]}]}]","logs":[{"msg_index":0,"log":"","events":[{"type":"message","attributes":[{"key":"action","value":"/provenance.name.v1.MsgBindNameRequest"}]},{"type":"name_bound","attributes":[{"key":"address","value":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg"},{"key":"name","value":"attribute"}]},{"type":"provenance.name.v1.EventNameBound","attributes":[{"key":"address","value":"\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\""},{"key":"name","value":"\"attribute.pio\""}]}]}],"info":"","gas_wanted":"200000","gas_used":"81869","tx":{"@type":"/cosmos.tx.v1beta1.Tx","body":{"messages":[{"@type":"/provenance.name.v1.MsgBindNameRequest","parent":{"name":"pio","address":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg","restricted":false},"record":{"name":"attribute","address":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg","restricted":true}}],"memo":"","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[{"public_key":{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"AtDzArx5J2q3sKZhuY187u0m+B5uGCnMRvrVJlTpRBv3"},"mode_info":{"single":{"mode":"SIGN_MODE_DIRECT"}},"sequence":"30"}],"fee":{"amount":[{"denom":"nhash","amount":"1000000000"}],"gas_limit":"200000","payer":"","granter":""}},"signatures":["zD107JjNp4KY9PruSIg8qQH6ij+ZtaaFiOK+SxDWP7F3MnUnGE+Z5SjT7j69ueY4iUnmN1FT9GYVq4I+9e0+og=="]},"timestamp":"2021-08-20T15:47:58Z"},{"height":"5408","txhash":"A6564389A9690E40D8C4B8B429ED977F756B671D3C31DADDEC4CE601E7E5DA38","codespace":"","code":0,"data":"0A2B0A292F70726F76656E616E63652E6D61726B65722E76312E4D73674164644D61726B657252657175657374","raw_log":"[{\"events\":[{\"type\":\"message\",\"attributes\":[{\"key\":\"action\",\"value\":\"/provenance.marker.v1.MsgAddMarkerRequest\"},{\"key\":\"module\",\"value\":\"marker\"}]},{\"type\":\"provenance.marker.v1.EventMarkerAdd\",\"attributes\":[{\"key\":\"denom\",\"value\":\"\\\"hotdogcoin\\\"\"},{\"key\":\"amount\",\"value\":\"\\\"1000\\\"\"},{\"key\":\"status\",\"value\":\"\\\"proposed\\\"\"},{\"key\":\"manager\",\"value\":\"\\\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\\\"\"},{\"key\":\"marker_type\",\"value\":\"\\\"MARKER_TYPE_RESTRICTED\\\"\"}]}]}]","logs":[{"msg_index":0,"log":"","events":[{"type":"message","attributes":[{"key":"action","value":"/provenance.marker.v1.MsgAddMarkerRequest"},{"key":"module","value":"marker"}]},{"type":"provenance.marker.v1.EventMarkerAdd","attributes":[{"key":"denom","value":"\"hotdogcoin\""},{"key":"amount","value":"\"1000\""},{"key":"status","value":"\"proposed\""},{"key":"manager","value":"\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\""},{"key":"marker_type","value":"\"MARKER_TYPE_RESTRICTED\""}]}]}],"info":"","gas_wanted":"200000","gas_used":"67594","tx":{"@type":"/cosmos.tx.v1beta1.Tx","body":{"messages":[{"@type":"/provenance.marker.v1.MsgAddMarkerRequest","amount":{"denom":"hotdogcoin","amount":"1000"},"manager":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg","from_address":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg","status":"MARKER_STATUS_PROPOSED","marker_type":"MARKER_TYPE_RESTRICTED","access_list":[],"supply_fixed":true,"allow_governance_control":true}],"memo":"","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[{"public_key":{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"AtDzArx5J2q3sKZhuY187u0m+B5uGCnMRvrVJlTpRBv3"},"mode_info":{"single":{"mode":"SIGN_MODE_DIRECT"}},"sequence":"32"}],"fee":{"amount":[{"denom":"nhash","amount":"1000000000"}],"gas_limit":"200000","payer":"","granter":""}},"signatures":["SmJRMipn82QjSlFyuBnN3b3WGVnTeU70bBAkYkAQBpgo3zPW5Id1uIUytOzKlAHTngGE6hrMcgUQI4XUhoKD6Q=="]},"timestamp":"2021-08-20T16:54:21Z"},{"height":"7381","txhash":"59205D5ABBBCD49020BC050556A15FD545E48A6A8E58932906BE2E1A81A70F00","codespace":"","code":0,"data":"0A710A2F2F70726F76656E616E63652E6D657461646174612E76312E4D736742696E644F534C6F6361746F7252657175657374123E0A3C0A29747031637732766B7A3468347A6863366D74667872683637713976326B306437363937306E76777267120F687474703A2F2F746573742E636F6D","raw_log":"[{\"events\":[{\"type\":\"message\",\"attributes\":[{\"key\":\"action\",\"value\":\"/provenance.metadata.v1.MsgBindOSLocatorRequest\"}]},{\"type\":\"provenance.metadata.v1.EventOSLocatorCreated\",\"attributes\":[{\"key\":\"owner\",\"value\":\"\\\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\\\"\"}]},{\"type\":\"provenance.metadata.v1.EventTxCompleted\",\"attributes\":[{\"key\":\"module\",\"value\":\"\\\"metadata\\\"\"},{\"key\":\"endpoint\",\"value\":\"\\\"BindOSLocator\\\"\"},{\"key\":\"signers\",\"value\":\"[\\\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\\\"]\"}]}]}]","logs":[{"msg_index":0,"log":"","events":[{"type":"message","attributes":[{"key":"action","value":"/provenance.metadata.v1.MsgBindOSLocatorRequest"}]},{"type":"provenance.metadata.v1.EventOSLocatorCreated","attributes":[{"key":"owner","value":"\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\""}]},{"type":"provenance.metadata.v1.EventTxCompleted","attributes":[{"key":"module","value":"\"metadata\""},{"key":"endpoint","value":"\"BindOSLocator\""},{"key":"signers","value":"[\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\"]"}]}]}],"info":"","gas_wanted":"200000","gas_used":"58958","tx":{"@type":"/cosmos.tx.v1beta1.Tx","body":{"messages":[{"@type":"/provenance.metadata.v1.MsgBindOSLocatorRequest","locator":{"owner":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg","locator_uri":"http://test.com","encryption_key":""}}],"memo":"","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[{"public_key":{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"AtDzArx5J2q3sKZhuY187u0m+B5uGCnMRvrVJlTpRBv3"},"mode_info":{"single":{"mode":"SIGN_MODE_DIRECT"}},"sequence":"33"}],"fee":{"amount":[{"denom":"nhash","amount":"1000000000"}],"gas_limit":"200000","payer":"","granter":""}},"signatures":["8WdJ7wJ9qeVUxwHraulE4tdMJO9bMn07vQ8Pqu4qtidVuwP5ZdQLj5jzFhULegEjpbrtdHcvzkqFKQDshOv7Kw=="]},"timestamp":"2021-08-20T19:45:29Z"},{"height":"8875","txhash":"3F81AE2AFBEBAAE6532B8153D57487D955C3BA1E4B79129348E1C9DE608ADFF5","codespace":"","code":0,"data":"0A1E0A1C2F636F736D6F732E62616E6B2E763162657461312E4D736753656E64","raw_log":"[{\"events\":[{\"type\":\"coin_received\",\"attributes\":[{\"key\":\"receiver\",\"value\":\"tp18jjjggrwvyxqtrmk5l4wv2scav29y4sa3ckzvd\"},{\"key\":\"amount\",\"value\":\"1000000000000nhash\"}]},{\"type\":\"coin_spent\",\"attributes\":[{\"key\":\"spender\",\"value\":\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\"},{\"key\":\"amount\",\"value\":\"1000000000000nhash\"}]},{\"type\":\"message\",\"attributes\":[{\"key\":\"action\",\"value\":\"/cosmos.bank.v1beta1.MsgSend\"},{\"key\":\"sender\",\"value\":\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\"},{\"key\":\"module\",\"value\":\"bank\"}]},{\"type\":\"transfer\",\"attributes\":[{\"key\":\"recipient\",\"value\":\"tp18jjjggrwvyxqtrmk5l4wv2scav29y4sa3ckzvd\"},{\"key\":\"sender\",\"value\":\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\"},{\"key\":\"amount\",\"value\":\"1000000000000nhash\"}]}]}]","logs":[{"msg_index":0,"log":"","events":[{"type":"coin_received","attributes":[{"key":"receiver","value":"tp18jjjggrwvyxqtrmk5l4wv2scav29y4sa3ckzvd"},{"key":"amount","value":"1000000000000nhash"}]},{"type":"coin_spent","attributes":[{"key":"spender","value":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg"},{"key":"amount","value":"1000000000000nhash"}]},{"type":"message","attributes":[{"key":"action","value":"/cosmos.bank.v1beta1.MsgSend"},{"key":"sender","value":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg"},{"key":"module","value":"bank"}]},{"type":"transfer","attributes":[{"key":"recipient","value":"tp18jjjggrwvyxqtrmk5l4wv2scav29y4sa3ckzvd"},{"key":"sender","value":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg"},{"key":"amount","value":"1000000000000nhash"}]}]}],"info":"","gas_wanted":"200000","gas_used":"69587","tx":{"@type":"/cosmos.tx.v1beta1.Tx","body":{"messages":[{"@type":"/cosmos.bank.v1beta1.MsgSend","from_address":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg","to_address":"tp18jjjggrwvyxqtrmk5l4wv2scav29y4sa3ckzvd","amount":[{"denom":"nhash","amount":"1000000000000"}]}],"memo":"","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[{"public_key":{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"AtDzArx5J2q3sKZhuY187u0m+B5uGCnMRvrVJlTpRBv3"},"mode_info":{"single":{"mode":"SIGN_MODE_DIRECT"}},"sequence":"35"}],"fee":{"amount":[{"denom":"nhash","amount":"1000000000"}],"gas_limit":"200000","payer":"","granter":""}},"signatures":["YuGTsuLMWVk42/jo5rHVQOW3K3QjjXuK63OiPPDY/jkGi/fhV2avvPlZbmagttrchCPZL1Ac1AHd4cfumqMF+A=="]},"timestamp":"2021-08-20T21:34:59Z"},{"height":"10609","txhash":"09D46134D5BFC923919953388199B3AD06D0FEA07AB2F8A2C6611289D1A315B4","codespace":"","code":0,"data":"0A310A2F2F70726F76656E616E63652E6174747269627574652E76312E4D736741646441747472696275746552657175657374","raw_log":"[{\"events\":[{\"type\":\"account_attribute_added\",\"attributes\":[{\"key\":\"attribute_name\",\"value\":\"pio\"},{\"key\":\"account_address\",\"value\":\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\"}]},{\"type\":\"message\",\"attributes\":[{\"key\":\"action\",\"value\":\"/provenance.attribute.v1.MsgAddAttributeRequest\"}]},{\"type\":\"provenance.attribute.v1.EventAttributeAdd\",\"attributes\":[{\"key\":\"name\",\"value\":\"\\\"pio\\\"\"},{\"key\":\"value\",\"value\":\"\\\"eyJrZXkiOiAxLCAidmFsdWUiOiAicGlvIn0=\\\"\"},{\"key\":\"type\",\"value\":\"\\\"ATTRIBUTE_TYPE_JSON\\\"\"},{\"key\":\"account\",\"value\":\"\\\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\\\"\"},{\"key\":\"owner\",\"value\":\"\\\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\\\"\"}]}]}]","logs":[{"msg_index":0,"log":"","events":[{"type":"account_attribute_added","attributes":[{"key":"attribute_name","value":"pio"},{"key":"account_address","value":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg"}]},{"type":"message","attributes":[{"key":"action","value":"/provenance.attribute.v1.MsgAddAttributeRequest"}]},{"type":"provenance.attribute.v1.EventAttributeAdd","attributes":[{"key":"name","value":"\"pio\""},{"key":"value","value":"\"eyJrZXkiOiAxLCAidmFsdWUiOiAicGlvIn0=\""},{"key":"type","value":"\"ATTRIBUTE_TYPE_JSON\""},{"key":"account","value":"\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\""},{"key":"owner","value":"\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\""}]}]}],"info":"","gas_wanted":"200000","gas_used":"66270","tx":{"@type":"/cosmos.tx.v1beta1.Tx","body":{"messages":[{"@type":"/provenance.attribute.v1.MsgAddAttributeRequest","name":"pio","value":"eyJrZXkiOiAxLCAidmFsdWUiOiAicGlvIn0=","attribute_type":"ATTRIBUTE_TYPE_JSON","account":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg","owner":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg"}],"memo":"","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[{"public_key":{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"AtDzArx5J2q3sKZhuY187u0m+B5uGCnMRvrVJlTpRBv3"},"mode_info":{"single":{"mode":"SIGN_MODE_DIRECT"}},"sequence":"36"}],"fee":{"amount":[{"denom":"nhash","amount":"1000000000"}],"gas_limit":"200000","payer":"","granter":""}},"signatures":["eRyzRWPIFv/CmC5tQ2CBAkDX/YgGMCaH5DLLqVc5JD0Y/qZAJOcAlzOIavfRIVT532EJaVE9a2g5E0O2llPHUQ=="]},"timestamp":"2021-08-23T15:50:45Z"},{"height":"10659","txhash":"F84F7F2246065852C0F1BC0C5CF183B4936EE614BDDBC3AAA60405A8D2324CD8","codespace":"","code":0,"data":"0A310A2F2F70726F76656E616E63652E6174747269627574652E76312E4D736741646441747472696275746552657175657374","raw_log":"[{\"events\":[{\"type\":\"account_attribute_added\",\"attributes\":[{\"key\":\"attribute_name\",\"value\":\"pio\"},{\"key\":\"account_address\",\"value\":\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\"}]},{\"type\":\"message\",\"attributes\":[{\"key\":\"action\",\"value\":\"/provenance.attribute.v1.MsgAddAttributeRequest\"}]},{\"type\":\"provenance.attribute.v1.EventAttributeAdd\",\"attributes\":[{\"key\":\"value\",\"value\":\"\\\"eyJrZXkiOiAxLCAidmFsdWUiOiAicGlvLXRlc3QifQ==\\\"\"},{\"key\":\"type\",\"value\":\"\\\"ATTRIBUTE_TYPE_JSON\\\"\"},{\"key\":\"account\",\"value\":\"\\\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\\\"\"},{\"key\":\"owner\",\"value\":\"\\\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\\\"\"},{\"key\":\"name\",\"value\":\"\\\"pio\\\"\"}]}]}]","logs":[{"msg_index":0,"log":"","events":[{"type":"account_attribute_added","attributes":[{"key":"attribute_name","value":"pio"},{"key":"account_address","value":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg"}]},{"type":"message","attributes":[{"key":"action","value":"/provenance.attribute.v1.MsgAddAttributeRequest"}]},{"type":"provenance.attribute.v1.EventAttributeAdd","attributes":[{"key":"value","value":"\"eyJrZXkiOiAxLCAidmFsdWUiOiAicGlvLXRlc3QifQ==\""},{"key":"type","value":"\"ATTRIBUTE_TYPE_JSON\""},{"key":"account","value":"\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\""},{"key":"owner","value":"\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\""},{"key":"name","value":"\"pio\""}]}]}],"info":"","gas_wanted":"200000","gas_used":"66470","tx":{"@type":"/cosmos.tx.v1beta1.Tx","body":{"messages":[{"@type":"/provenance.attribute.v1.MsgAddAttributeRequest","name":"pio","value":"eyJrZXkiOiAxLCAidmFsdWUiOiAicGlvLXRlc3QifQ==","attribute_type":"ATTRIBUTE_TYPE_JSON","account":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg","owner":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg"}],"memo":"","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[{"public_key":{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"AtDzArx5J2q3sKZhuY187u0m+B5uGCnMRvrVJlTpRBv3"},"mode_info":{"single":{"mode":"SIGN_MODE_DIRECT"}},"sequence":"37"}],"fee":{"amount":[{"denom":"nhash","amount":"1000000000"}],"gas_limit":"200000","payer":"","granter":""}},"signatures":["0SpP1p/7R6Uuwm9+/Jz7Mg146xNO8B6XD3wZV+rasAMbgjelvX+87feWbTDB0U1i5a4NVabgLJVd7SqkjJglkg=="]},"timestamp":"2021-08-23T15:54:25Z"},{"height":"11118","txhash":"AF59AC9497BD977C64D5B4DFE92539C084BD501D07F0EEF5A308C44DDE50E6B7","codespace":"","code":0,"data":"0A2B0A292F70726F76656E616E63652E6D61726B65722E76312E4D73674164644D61726B657252657175657374","raw_log":"[{\"events\":[{\"type\":\"message\",\"attributes\":[{\"key\":\"action\",\"value\":\"/provenance.marker.v1.MsgAddMarkerRequest\"},{\"key\":\"module\",\"value\":\"marker\"}]},{\"type\":\"provenance.marker.v1.EventMarkerAdd\",\"attributes\":[{\"key\":\"amount\",\"value\":\"\\\"1000\\\"\"},{\"key\":\"status\",\"value\":\"\\\"proposed\\\"\"},{\"key\":\"manager\",\"value\":\"\\\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\\\"\"},{\"key\":\"marker_type\",\"value\":\"\\\"MARKER_TYPE_RESTRICTED\\\"\"},{\"key\":\"denom\",\"value\":\"\\\"hottdogcoin\\\"\"}]}]}]","logs":[{"msg_index":0,"log":"","events":[{"type":"message","attributes":[{"key":"action","value":"/provenance.marker.v1.MsgAddMarkerRequest"},{"key":"module","value":"marker"}]},{"type":"provenance.marker.v1.EventMarkerAdd","attributes":[{"key":"amount","value":"\"1000\""},{"key":"status","value":"\"proposed\""},{"key":"manager","value":"\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\""},{"key":"marker_type","value":"\"MARKER_TYPE_RESTRICTED\""},{"key":"denom","value":"\"hottdogcoin\""}]}]}],"info":"","gas_wanted":"200000","gas_used":"67634","tx":{"@type":"/cosmos.tx.v1beta1.Tx","body":{"messages":[{"@type":"/provenance.marker.v1.MsgAddMarkerRequest","amount":{"denom":"hottdogcoin","amount":"1000"},"manager":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg","from_address":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg","status":"MARKER_STATUS_PROPOSED","marker_type":"MARKER_TYPE_RESTRICTED","access_list":[],"supply_fixed":true,"allow_governance_control":true}],"memo":"","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[{"public_key":{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"AtDzArx5J2q3sKZhuY187u0m+B5uGCnMRvrVJlTpRBv3"},"mode_info":{"single":{"mode":"SIGN_MODE_DIRECT"}},"sequence":"39"}],"fee":{"amount":[{"denom":"nhash","amount":"1000000000"}],"gas_limit":"200000","payer":"","granter":""}},"signatures":["UwVl2xB9tF0tMVE58z/P7WYXdrOTbQiXwQa+5jMvugw7IB2w6uVlCZIapSq5rCIuTcgg/jTYyILJi9NQe+8tkw=="]},"timestamp":"2021-08-23T16:28:09Z"},{"height":"11531","txhash":"ECE21D5A5FC95AD6B870FC1B620BB121C05555F89907F2571181942770BB2FDE","codespace":"","code":0,"data":"0A1E0A1C2F636F736D6F732E62616E6B2E763162657461312E4D736753656E64","raw_log":"[{\"events\":[{\"type\":\"coin_received\",\"attributes\":[{\"key\":\"receiver\",\"value\":\"tp18jjjggrwvyxqtrmk5l4wv2scav29y4sa3ckzvd\"},{\"key\":\"amount\",\"value\":\"1000000000000nhash\"}]},{\"type\":\"coin_spent\",\"attributes\":[{\"key\":\"spender\",\"value\":\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\"},{\"key\":\"amount\",\"value\":\"1000000000000nhash\"}]},{\"type\":\"message\",\"attributes\":[{\"key\":\"action\",\"value\":\"/cosmos.bank.v1beta1.MsgSend\"},{\"key\":\"sender\",\"value\":\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\"},{\"key\":\"module\",\"value\":\"bank\"}]},{\"type\":\"transfer\",\"attributes\":[{\"key\":\"recipient\",\"value\":\"tp18jjjggrwvyxqtrmk5l4wv2scav29y4sa3ckzvd\"},{\"key\":\"sender\",\"value\":\"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg\"},{\"key\":\"amount\",\"value\":\"1000000000000nhash\"}]}]}]","logs":[{"msg_index":0,"log":"","events":[{"type":"coin_received","attributes":[{"key":"receiver","value":"tp18jjjggrwvyxqtrmk5l4wv2scav29y4sa3ckzvd"},{"key":"amount","value":"1000000000000nhash"}]},{"type":"coin_spent","attributes":[{"key":"spender","value":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg"},{"key":"amount","value":"1000000000000nhash"}]},{"type":"message","attributes":[{"key":"action","value":"/cosmos.bank.v1beta1.MsgSend"},{"key":"sender","value":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg"},{"key":"module","value":"bank"}]},{"type":"transfer","attributes":[{"key":"recipient","value":"tp18jjjggrwvyxqtrmk5l4wv2scav29y4sa3ckzvd"},{"key":"sender","value":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg"},{"key":"amount","value":"1000000000000nhash"}]}]}],"info":"","gas_wanted":"200000","gas_used":"62619","tx":{"@type":"/cosmos.tx.v1beta1.Tx","body":{"messages":[{"@type":"/cosmos.bank.v1beta1.MsgSend","from_address":"tp1cw2vkz4h4zhc6mtfxrh67q9v2k0d76970nvwrg","to_address":"tp18jjjggrwvyxqtrmk5l4wv2scav29y4sa3ckzvd","amount":[{"denom":"nhash","amount":"1000000000000"}]}],"memo":"","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[{"public_key":{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"AtDzArx5J2q3sKZhuY187u0m+B5uGCnMRvrVJlTpRBv3"},"mode_info":{"single":{"mode":"SIGN_MODE_DIRECT"}},"sequence":"40"}],"fee":{"amount":[{"denom":"nhash","amount":"1000000000"}],"gas_limit":"200000","payer":"","granter":""}},"signatures":["36BJXYR7AyD7/pUTBMkCCrhwL4fyoBVfv9cABxIabdlmPpisBOY36v0qX/rFrp2ve77uTzUUrfsCMtSZ+4Wdjw=="]},"timestamp":"2021-08-23T16:58:33Z"}]}

@iramiller iramiller changed the title Release v1.6.0 testing/verification Release v1.7.0 testing/verification Aug 31, 2021
Mainnet automation moved this from In Progress to Done Sep 13, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
attribute Attribute Module CI Continuous Integration and release process epic This ticket is used for grouping other tickets together. ibc inter-blockchain communication marker Marker Module metadata Metadata Module name Name Module simulation Issues related to simulation testing
Projects
Mainnet
  
Done
Development

No branches or pull requests

3 participants