diff --git a/.circleci/config.yml b/.circleci/config.yml index d350d8b7c..be2d9690b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -216,11 +216,11 @@ jobs: name: Trigger website build command: | curl --silent \ - --show-error \ - -X POST \ - --header "Content-Type: application/json" \ - -d "{\"branch\": \"$CIRCLE_BRANCH\"}" \ - "https://circleci.com/api/v1.1/project/github/$CIRCLE_PROJECT_USERNAME/$WEBSITE_REPO_NAME/build?circle-token=$TENDERBOT_API_TOKEN" > response.json + --show-error \ + -X POST \ + --header "Content-Type: application/json" \ + -d "{\"branch\": \"$CIRCLE_BRANCH\"}" \ + "https://circleci.com/api/v1.1/project/github/$CIRCLE_PROJECT_USERNAME/$WEBSITE_REPO_NAME/build?circle-token=$TENDERBOT_API_TOKEN" > response.json RESULT=`jq -r '.status' response.json` MESSAGE=`jq -r '.message' response.json` @@ -373,12 +373,12 @@ jobs: steps: - checkout - run: - name: Test RPC endpoints agsainst swagger documentation + name: Test RPC endpoints against swagger documentation command: | set -x export PATH=~/.local/bin:$PATH - # install node 11.15 and dredd + # install node and dredd ./scripts/get_nodejs.sh # build the binaries with a proper version of Go diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 63c4de646..1b9ea4409 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,7 +2,7 @@ Thank you for considering making contributions to Tendermint and related repositories! Start by taking a look at the [coding repo](https://github.com/tendermint/coding) for overall information on repository workflow and standards. -Please follow standard github best practices: fork the repo, branch from the tip of `master`, make some commits, and submit a pull request to `master`. +Please follow standard github best practices: fork the repo, branch from the tip of `master`, make some commits, and submit a pull request to `master`. See the [open issues](https://github.com/tendermint/tendermint/issues) for things we need help with! Before making a pull request, please open an issue describing the @@ -21,16 +21,16 @@ Please make sure to use `gofmt` before every commit - the easiest way to do this Please note that Go requires code to live under absolute paths, which complicates forking. While my fork lives at `https://github.com/ebuchman/tendermint`, -the code should never exist at `$GOPATH/src/github.com/ebuchman/tendermint`. +the code should never exist at `$GOPATH/src/github.com/ebuchman/tendermint`. Instead, we use `git remote` to add the fork as a new remote for the original repo, -`$GOPATH/src/github.com/tendermint/tendermint `, and do all the work there. +`$GOPATH/src/github.com/tendermint/tendermint`, and do all the work there. For instance, to create a fork and work on a branch of it, I would: - * Create the fork on github, using the fork button. - * Go to the original repo checked out locally (i.e. `$GOPATH/src/github.com/tendermint/tendermint`) - * `git remote rename origin upstream` - * `git remote add origin git@github.com:ebuchman/basecoin.git` +- Create the fork on github, using the fork button. +- Go to the original repo checked out locally (i.e. `$GOPATH/src/github.com/tendermint/tendermint`) +- `git remote rename origin upstream` +- `git remote add origin git@github.com:ebuchman/basecoin.git` Now `origin` refers to my fork and `upstream` refers to the tendermint version. So I can `git push -u origin master` to update my fork, and make pull requests to tendermint from there. @@ -38,8 +38,8 @@ Of course, replace `ebuchman` with your git handle. To pull in updates from the origin repo, run - * `git fetch upstream` - * `git rebase upstream/master` (or whatever branch you want) +- `git fetch upstream` +- `git rebase upstream/master` (or whatever branch you want) ## Dependencies @@ -113,7 +113,7 @@ removed from the header in rpc responses as well. ## Branching Model and Release -The main development branch is master. +The main development branch is master. Every release is maintained in a release branch named `vX.Y.Z`. @@ -140,36 +140,35 @@ easy to reference the pull request where a change was introduced. #### Major Release -1. start on `master` +1. start on `master` 2. run integration tests (see `test_integrations` in Makefile) 3. prepare release in a pull request against `master` (to be squash merged): - - copy `CHANGELOG_PENDING.md` to top of `CHANGELOG.md` - - run `python ./scripts/linkify_changelog.py CHANGELOG.md` to add links for - all issues - - run `bash ./scripts/authors.sh` to get a list of authors since the latest - release, and add the github aliases of external contributors to the top of - the changelog. To lookup an alias from an email, try `bash - ./scripts/authors.sh ` - - reset the `CHANGELOG_PENDING.md` - - bump versions + - copy `CHANGELOG_PENDING.md` to top of `CHANGELOG.md` + - run `python ./scripts/linkify_changelog.py CHANGELOG.md` to add links for + all issues + - run `bash ./scripts/authors.sh` to get a list of authors since the latest + release, and add the github aliases of external contributors to the top of + the changelog. To lookup an alias from an email, try `bash ./scripts/authors.sh ` + - reset the `CHANGELOG_PENDING.md` + - bump versions 4. push your changes with prepared release details to `vX.X` (this will trigger the release `vX.X.0`) 5. merge back to master (don't squash merge!) #### Minor Release -If there were no breaking changes and you need to create a release nonetheless, -the procedure is almost exactly like with a new release above. +If there were no breaking changes and you need to create a release nonetheless, +the procedure is almost exactly like with a new release above. The only difference is that in the end you create a pull request against the existing `X.X` branch. The branch name should match the release number you want to create. -Merging this PR will trigger the next release. -For example, if the PR is against an existing 0.34 branch which already contains a v0.34.0 release/tag, +Merging this PR will trigger the next release. +For example, if the PR is against an existing 0.34 branch which already contains a v0.34.0 release/tag, the patch version will be incremented and the created release will be v0.34.1. #### Backport Release 1. start from the existing release branch you want to backport changes to (e.g. v0.30) -Branch to a release/vX.X.X branch locally (e.g. release/v0.30.7) + Branch to a release/vX.X.X branch locally (e.g. release/v0.30.7) 2. cherry pick the commit(s) that contain the changes you want to backport (usually these commits are from squash-merged PRs which were already reviewed) 3. steps 2 and 3 from [Major Release](#major-release) 4. push changes to release/vX.X.X branch @@ -187,12 +186,12 @@ includes its continuous integration status using a badge in the `README.md`. ### RPC Testing If you contribute to the RPC endpoints it's important to document your changes in the [Swagger file](./docs/spec/rpc/swagger.yaml) -To test your changes you should install `nodejs` version `v11.15.*` and run: +To test your changes you should install `nodejs` and run: ```bash npm i -g dredd make build-linux build-contract-tests-hooks make contract-tests -``` +``` This command will popup a network and check every endpoint against what has been documented diff --git a/docs/spec/rpc/swagger.yaml b/docs/spec/rpc/swagger.yaml index 70fa82014..a276304a1 100644 --- a/docs/spec/rpc/swagger.yaml +++ b/docs/spec/rpc/swagger.yaml @@ -1,6 +1,6 @@ swagger: "2.0" info: - version: "0.32.1" + version: "Master" title: RPC client for Tendermint description: A REST interface for state queries, transaction generation and broadcasting. license: @@ -37,12 +37,12 @@ paths: If you haven't received anything after a couple of blocks, resend it. If the same happens again, send it to some other node. A few reasons why it could happen: - + 1. malicious node can drop or pretend it had committed your tx 2. malicious proposer (not necessary the one you're communicating with) can drop transactions, which might become valid in the future (https://github.com/tendermint/tendermint/issues/3322) - + Please refer to https://tendermint.com/docs/tendermint-core/using-tendermint.html#formatting @@ -60,11 +60,11 @@ paths: 200: description: empty answer schema: - $ref: '#/definitions/BroadcastTxResponse' + $ref: "#/definitions/BroadcastTxResponse" 500: description: empty error schema: - $ref: '#/definitions/ErrorResponse' + $ref: "#/definitions/ErrorResponse" /broadcast_tx_async: get: summary: Returns right away, with no response. Does not wait for CheckTx nor DeliverTx results. @@ -101,11 +101,11 @@ paths: 200: description: empty answer schema: - $ref: '#/definitions/BroadcastTxResponse' + $ref: "#/definitions/BroadcastTxResponse" 500: description: empty error schema: - $ref: '#/definitions/ErrorResponse' + $ref: "#/definitions/ErrorResponse" /broadcast_tx_commit: get: summary: Returns with the responses from CheckTx and DeliverTx. @@ -140,11 +140,11 @@ paths: 200: description: empty answer schema: - $ref: '#/definitions/BroadcastTxCommitResponse' + $ref: "#/definitions/BroadcastTxCommitResponse" 500: description: empty error schema: - $ref: '#/definitions/ErrorResponse' + $ref: "#/definitions/ErrorResponse" /subscribe: get: summary: Subscribe for events via WebSocket. @@ -285,11 +285,11 @@ paths: 200: description: empty answer schema: - $ref: '#/definitions/EmptyResponse' + $ref: "#/definitions/EmptyResponse" 500: description: empty error schema: - $ref: '#/definitions/ErrorResponse' + $ref: "#/definitions/ErrorResponse" /unsubscribe: get: summary: Unsubscribe from event on Websocket @@ -297,19 +297,19 @@ paths: - Websocket operationId: unsubscribe description: | - ```go - client := client.NewHTTP("tcp:0.0.0.0:26657", "/websocket") - err := client.Start() - if err != nil { - handle error - } - defer client.Stop() - query := "tm.event = 'Tx' AND tx.height = 3" - err = client.Unsubscribe(context.Background(), "test-client", query) - if err != nil { - handle error - } - ``` + ```go + client := client.NewHTTP("tcp:0.0.0.0:26657", "/websocket") + err := client.Start() + if err != nil { + handle error + } + defer client.Stop() + query := "tm.event = 'Tx' AND tx.height = 3" + err = client.Unsubscribe(context.Background(), "test-client", query) + if err != nil { + handle error + } + ``` parameters: - in: query name: query @@ -328,11 +328,11 @@ paths: 200: description: empty answer schema: - $ref: '#/definitions/EmptyResponse' + $ref: "#/definitions/EmptyResponse" 500: description: empty error schema: - $ref: '#/definitions/ErrorResponse' + $ref: "#/definitions/ErrorResponse" /unsubscribe_all: get: summary: Unsubscribe from all events via WebSocket @@ -347,11 +347,11 @@ paths: 200: description: empty answer schema: - $ref: '#/definitions/EmptyResponse' + $ref: "#/definitions/EmptyResponse" 500: description: empty error schema: - $ref: '#/definitions/ErrorResponse' + $ref: "#/definitions/ErrorResponse" /health: get: summary: Node heartbeat @@ -366,11 +366,11 @@ paths: 200: description: empty answer schema: - $ref: '#/definitions/EmptyResponse' + $ref: "#/definitions/EmptyResponse" 500: description: empty error schema: - $ref: '#/definitions/ErrorResponse' + $ref: "#/definitions/ErrorResponse" /status: get: summary: Node Status @@ -385,11 +385,11 @@ paths: 200: description: Status of the node schema: - $ref: '#/definitions/StatusResponse' + $ref: "#/definitions/StatusResponse" 500: description: empty error schema: - $ref: '#/definitions/ErrorResponse' + $ref: "#/definitions/ErrorResponse" /net_info: get: summary: Network informations @@ -404,11 +404,11 @@ paths: 200: description: empty answer schema: - $ref: '#/definitions/NetInfoResponse' + $ref: "#/definitions/NetInfoResponse" 500: description: empty error schema: - $ref: '#/definitions/ErrorResponse' + $ref: "#/definitions/ErrorResponse" /blockchain: get: summary: Get block headers for minHeight <= height <= maxHeight. @@ -434,11 +434,11 @@ paths: 200: description: Block headers, returned in descending order (highest first). schema: - $ref: '#/definitions/BlockchainResponse' + $ref: "#/definitions/BlockchainResponse" 500: description: Error schema: - $ref: '#/definitions/ErrorResponse' + $ref: "#/definitions/ErrorResponse" /block: get: summary: Get block at a specified height @@ -460,11 +460,11 @@ paths: 200: description: Block informations. schema: - $ref: '#/definitions/BlockResponse' + $ref: "#/definitions/BlockResponse" 500: description: Error schema: - $ref: '#/definitions/ErrorResponse' + $ref: "#/definitions/ErrorResponse" /block_results: get: summary: Get block results at a specified height @@ -486,11 +486,11 @@ paths: 200: description: Block results. schema: - $ref: '#/definitions/BlockResultsResponse' + $ref: "#/definitions/BlockResultsResponse" 500: description: Error schema: - $ref: '#/definitions/ErrorResponse' + $ref: "#/definitions/ErrorResponse" /commit: get: summary: Get commit results at a specified height @@ -512,11 +512,11 @@ paths: 200: description: Commit results. schema: - $ref: '#/definitions/CommitResponse' + $ref: "#/definitions/CommitResponse" 500: description: Error schema: - $ref: '#/definitions/ErrorResponse' + $ref: "#/definitions/ErrorResponse" /validators: get: summary: Get validator set at a specified height @@ -538,11 +538,11 @@ paths: 200: description: Commit results. schema: - $ref: '#/definitions/ValidatorsResponse' + $ref: "#/definitions/ValidatorsResponse" 500: description: Error schema: - $ref: '#/definitions/ErrorResponse' + $ref: "#/definitions/ErrorResponse" /genesis: get: summary: Get Genesis @@ -557,11 +557,11 @@ paths: 200: description: Genesis results. schema: - $ref: '#/definitions/GenesisResponse' + $ref: "#/definitions/GenesisResponse" 500: description: Error schema: - $ref: '#/definitions/ErrorResponse' + $ref: "#/definitions/ErrorResponse" /dump_consensus_state: get: summary: Get consensus state @@ -576,11 +576,11 @@ paths: 200: description: consensus state results. schema: - $ref: '#/definitions/DumpConsensusResponse' + $ref: "#/definitions/DumpConsensusResponse" 500: description: Error schema: - $ref: '#/definitions/ErrorResponse' + $ref: "#/definitions/ErrorResponse" /consensus_state: get: summary: Get consensus state @@ -595,11 +595,11 @@ paths: 200: description: consensus state results. schema: - $ref: '#/definitions/ConsensusStateResponse' + $ref: "#/definitions/ConsensusStateResponse" 500: description: Error schema: - $ref: '#/definitions/ErrorResponse' + $ref: "#/definitions/ErrorResponse" /consensus_params: get: summary: Get consensus parameters @@ -621,11 +621,11 @@ paths: 200: description: consensus parameters results. schema: - $ref: '#/definitions/ConsensusParamsResponse' + $ref: "#/definitions/ConsensusParamsResponse" 500: description: Error schema: - $ref: '#/definitions/ErrorResponse' + $ref: "#/definitions/ErrorResponse" /unconfirmed_txs: get: summary: Get the list of unconfirmed transactions @@ -646,11 +646,11 @@ paths: 200: description: List of unconfirmed transactions schema: - $ref: '#/definitions/UnconfirmedTransactionsResponse' + $ref: "#/definitions/UnconfirmedTransactionsResponse" 500: description: Error schema: - $ref: '#/definitions/ErrorResponse' + $ref: "#/definitions/ErrorResponse" /num_unconfirmed_txs: get: summary: Get data about unconfirmed transactions @@ -665,11 +665,11 @@ paths: 200: description: status about unconfirmed transactions schema: - $ref: '#/definitions/NumUnconfirmedTransactionsResponse' + $ref: "#/definitions/NumUnconfirmedTransactionsResponse" 500: description: Error schema: - $ref: '#/definitions/ErrorResponse' + $ref: "#/definitions/ErrorResponse" /tx_search: get: summary: Search for transactions @@ -712,11 +712,11 @@ paths: 200: description: List of unconfirmed transactions schema: - $ref: '#/definitions/TxSearchResponse' + $ref: "#/definitions/TxSearchResponse" 500: description: Error schema: - $ref: '#/definitions/ErrorResponse' + $ref: "#/definitions/ErrorResponse" /tx: get: summary: Get transactions by hash @@ -745,11 +745,11 @@ paths: 200: description: Get a transaction schema: - $ref: '#/definitions/TxResponse' + $ref: "#/definitions/TxResponse" 500: description: Error schema: - $ref: '#/definitions/ErrorResponse' + $ref: "#/definitions/ErrorResponse" /abci_info: get: summary: Get some info about the application. @@ -764,11 +764,11 @@ paths: 200: description: Get some info about the application. schema: - $ref: '#/definitions/ABCIInfoResponse' + $ref: "#/definitions/ABCIInfoResponse" 500: description: Error schema: - $ref: '#/definitions/ErrorResponse' + $ref: "#/definitions/ErrorResponse" /abci_query: get: summary: Query the application for some information. @@ -810,11 +810,11 @@ paths: 200: description: Response of the submitted query schema: - $ref: '#/definitions/ABCIQueryResponse' + $ref: "#/definitions/ABCIQueryResponse" 500: description: Error schema: - $ref: '#/definitions/ErrorResponse' + $ref: "#/definitions/ErrorResponse" /broadcast_evidence: get: @@ -837,12 +837,11 @@ paths: 200: description: Broadcast evidence of the misbehavior. schema: - $ref: '#/definitions/BroadcastEvidenceResponse' + $ref: "#/definitions/BroadcastEvidenceResponse" 500: description: Error schema: - $ref: '#/definitions/ErrorResponse' - + $ref: "#/definitions/ErrorResponse" definitions: JSONRPC: @@ -857,7 +856,7 @@ definitions: EmptyResponse: description: Empty Response allOf: - - $ref: '#/definitions/JSONRPC' + - $ref: "#/definitions/JSONRPC" - type: object properties: result: @@ -866,7 +865,7 @@ definitions: ErrorResponse: description: Error Response allOf: - - $ref: '#/definitions/JSONRPC' + - $ref: "#/definitions/JSONRPC" - type: object properties: error: @@ -897,7 +896,7 @@ definitions: type: object properties: protocol_version: - $ref: '#/definitions/ProtocolVersion' + $ref: "#/definitions/ProtocolVersion" id: type: string x-example: "5576458aef205977e18fd50b274e9b5d9014525a" @@ -951,7 +950,7 @@ definitions: type: string x-example: "5D6A51A8E9899C44079C6AF90618BA0369070E6E" pub_key: - $ref: '#/definitions/PubKey' + $ref: "#/definitions/PubKey" voting_power: type: string x-example: "0" @@ -960,19 +959,19 @@ definitions: type: object properties: node_info: - $ref: '#/definitions/NodeInfo' + $ref: "#/definitions/NodeInfo" sync_info: - $ref: '#/definitions/SyncInfo' + $ref: "#/definitions/SyncInfo" validator_info: - $ref: '#/definitions/ValidatorInfo' + $ref: "#/definitions/ValidatorInfo" StatusResponse: description: Status Response allOf: - - $ref: '#/definitions/JSONRPC' + - $ref: "#/definitions/JSONRPC" - type: object properties: result: - $ref: '#/definitions/Status' + $ref: "#/definitions/Status" Monitor: type: object properties: @@ -1040,23 +1039,23 @@ definitions: type: string x-example: "168901057956119" SendMonitor: - $ref: '#/definitions/Monitor' + $ref: "#/definitions/Monitor" RecvMonitor: - $ref: '#/definitions/Monitor' + $ref: "#/definitions/Monitor" Channels: type: array items: - $ref: '#/definitions/Channel' + $ref: "#/definitions/Channel" Peer: type: object properties: node_info: - $ref: '#/definitions/NodeInfo' + $ref: "#/definitions/NodeInfo" is_outbound: type: boolean x-example: true connection_status: - $ref: '#/definitions/ConnectionStatus' + $ref: "#/definitions/ConnectionStatus" remote_ip: type: string x-example: "95.179.155.35" @@ -1077,15 +1076,15 @@ definitions: peers: type: array items: - $ref: '#/definitions/Peer' + $ref: "#/definitions/Peer" NetInfoResponse: description: NetInfo Response allOf: - - $ref: '#/definitions/JSONRPC' + - $ref: "#/definitions/JSONRPC" - type: object properties: result: - $ref: '#/definitions/NetInfo' + $ref: "#/definitions/NetInfo" BlockID: required: - "hash" @@ -1154,7 +1153,7 @@ definitions: type: string x-example: "3" last_block_id: - $ref: '#/definitions/BlockID' + $ref: "#/definitions/BlockID" last_commit_hash: type: string x-example: "21B9BC845AD2CB2C4193CDD17BFC506F1EBE5A7402E84AD96E64171287A34812" @@ -1208,9 +1207,9 @@ definitions: type: object properties: block_id: - $ref: '#/definitions/BlockMetaId' + $ref: "#/definitions/BlockMetaId" header: - $ref: '#/definitions/BlockMetaHeader' + $ref: "#/definitions/BlockMetaHeader" Blockchain: type: object required: @@ -1223,15 +1222,15 @@ definitions: block_metas: type: "array" items: - $ref: '#/definitions/BlockMeta' + $ref: "#/definitions/BlockMeta" BlockchainResponse: - description: Blockchain info + description: Blockchain info allOf: - - $ref: '#/definitions/JSONRPC' + - $ref: "#/definitions/JSONRPC" - type: object properties: result: - $ref: '#/definitions/Blockchain' + $ref: "#/definitions/Blockchain" Commit: required: - "type" @@ -1253,7 +1252,7 @@ definitions: type: string x-example: "0" block_id: - $ref: '#/definitions/BlockID' + $ref: "#/definitions/BlockID" timestamp: type: string x-example: "2019-08-01T11:39:38.867269833Z" @@ -1270,30 +1269,30 @@ definitions: type: object properties: header: - $ref: '#/definitions/BlockMetaHeader' + $ref: "#/definitions/BlockMetaHeader" data: type: array items: type: string - x-example: 'yQHwYl3uCkKoo2GaChRnd+THLQ2RM87nEZrE19910Z28ABIUWW/t8AtIMwcyU0sT32RcMDI9GF0aEAoFdWF0b20SBzEwMDAwMDASEwoNCgV1YXRvbRIEMzEwMRCd8gEaagom61rphyEDoJPxlcjRoNDtZ9xMdvs+lRzFaHe2dl2P5R2yVCWrsHISQKkqX5H1zXAIJuC57yw0Yb03Fwy75VRip0ZBtLiYsUqkOsPUoQZAhDNP+6LY+RUwz/nVzedkF0S29NZ32QXdGv0=' + x-example: "yQHwYl3uCkKoo2GaChRnd+THLQ2RM87nEZrE19910Z28ABIUWW/t8AtIMwcyU0sT32RcMDI9GF0aEAoFdWF0b20SBzEwMDAwMDASEwoNCgV1YXRvbRIEMzEwMRCd8gEaagom61rphyEDoJPxlcjRoNDtZ9xMdvs+lRzFaHe2dl2P5R2yVCWrsHISQKkqX5H1zXAIJuC57yw0Yb03Fwy75VRip0ZBtLiYsUqkOsPUoQZAhDNP+6LY+RUwz/nVzedkF0S29NZ32QXdGv0=" evidence: type: array items: - $ref: '#/definitions/Evidence' + $ref: "#/definitions/Evidence" last_commit: type: object properties: block_id: - $ref: '#/definitions/BlockID' + $ref: "#/definitions/BlockID" precommits: type: array items: - $ref: '#/definitions/Commit' + $ref: "#/definitions/Commit" Validator: type: object properties: pub_key: - $ref: '#/definitions/PubKey' + $ref: "#/definitions/PubKey" voting_power: type: number address: @@ -1310,31 +1309,31 @@ definitions: total_voting_power: type: number validator: - $ref: '#/definitions/Validator' + $ref: "#/definitions/Validator" BlockComplete: type: object properties: block_meta: - $ref: '#/definitions/BlockMeta' + $ref: "#/definitions/BlockMeta" block: - $ref: '#/definitions/Block' + $ref: "#/definitions/Block" BlockResponse: - description: Blockc info + description: Blockc info allOf: - - $ref: '#/definitions/JSONRPC' + - $ref: "#/definitions/JSONRPC" - type: object properties: result: - $ref: '#/definitions/BlockComplete' + $ref: "#/definitions/BlockComplete" Tag: type: object properties: key: type: string - example: 'YWN0aW9u' + example: "YWN0aW9u" value: type: string - example: 'c2VuZA==' + example: "c2VuZA==" ################## FROM NOW ON NEEDS REFACTOR ################## BlockResultsResponse: type: "object" @@ -1371,7 +1370,7 @@ definitions: properties: log: type: "string" - example: "[{\"msg_index\":\"0\",\"success\":true,\"log\":\"\"}]" + example: '[{"msg_index":"0","success":true,"log":""}]' gasWanted: type: "string" example: "25629" @@ -2249,7 +2248,7 @@ definitions: - "n_txs" - "total" - "total_bytes" -# - "txs" + # - "txs" properties: n_txs: type: "string" @@ -2260,14 +2259,14 @@ definitions: total_bytes: type: "string" example: "19974" -# txs: -# type: "array" -# x-nullable: true -# items: -# type: "string" -# x-nullable: true -# example: -# - "gAPwYl3uCjCMTXENChSMnIkb5ZpYHBKIZqecFEV2tuZr7xIUA75/FmYq9WymsOBJ0XSJ8yV8zmQKMIxNcQ0KFIyciRvlmlgcEohmp5wURXa25mvvEhQbrvwbvlNiT+Yjr86G+YQNx7kRVgowjE1xDQoUjJyJG+WaWBwSiGannBRFdrbma+8SFK2m+1oxgILuQLO55n8mWfnbIzyPCjCMTXENChSMnIkb5ZpYHBKIZqecFEV2tuZr7xIUQNGfkmhTNMis4j+dyMDIWXdIPiYKMIxNcQ0KFIyciRvlmlgcEohmp5wURXa25mvvEhS8sL0D0wwgGCItQwVowak5YB38KRIUCg4KBXVhdG9tEgUxMDA1NBDoxRgaagom61rphyECn8x7emhhKdRCB2io7aS/6Cpuq5NbVqbODmqOT3jWw6kSQKUresk+d+Gw0BhjiggTsu8+1voW+VlDCQ1GRYnMaFOHXhyFv7BCLhFWxLxHSAYT8a5XqoMayosZf9mANKdXArA=" + # txs: + # type: "array" + # x-nullable: true + # items: + # type: "string" + # x-nullable: true + # example: + # - "gAPwYl3uCjCMTXENChSMnIkb5ZpYHBKIZqecFEV2tuZr7xIUA75/FmYq9WymsOBJ0XSJ8yV8zmQKMIxNcQ0KFIyciRvlmlgcEohmp5wURXa25mvvEhQbrvwbvlNiT+Yjr86G+YQNx7kRVgowjE1xDQoUjJyJG+WaWBwSiGannBRFdrbma+8SFK2m+1oxgILuQLO55n8mWfnbIzyPCjCMTXENChSMnIkb5ZpYHBKIZqecFEV2tuZr7xIUQNGfkmhTNMis4j+dyMDIWXdIPiYKMIxNcQ0KFIyciRvlmlgcEohmp5wURXa25mvvEhS8sL0D0wwgGCItQwVowak5YB38KRIUCg4KBXVhdG9tEgUxMDA1NBDoxRgaagom61rphyECn8x7emhhKdRCB2io7aS/6Cpuq5NbVqbODmqOT3jWw6kSQKUresk+d+Gw0BhjiggTsu8+1voW+VlDCQ1GRYnMaFOHXhyFv7BCLhFWxLxHSAYT8a5XqoMayosZf9mANKdXArA=" type: "object" NumUnconfirmedTransactionsResponse: type: object @@ -2349,7 +2348,7 @@ definitions: properties: log: type: "string" - example: "[{\"msg_index\":\"0\",\"success\":true,\"log\":\"\"}]" + example: '[{"msg_index":"0","success":true,"log":""}]' gasWanted: type: "string" example: "200000" @@ -2450,7 +2449,7 @@ definitions: properties: log: type: "string" - example: "[{\"msg_index\":\"0\",\"success\":true,\"log\":\"\"}]" + example: '[{"msg_index":"0","success":true,"log":""}]' gasWanted: type: "string" example: "200000" @@ -2497,7 +2496,7 @@ definitions: properties: data: type: "string" - example: "{\"size\":0}" + example: '{"size":0}' version: type: string example: "0.16.1" diff --git a/scripts/get_nodejs.sh b/scripts/get_nodejs.sh index 7f0dd6e38..59469cc50 100755 --- a/scripts/get_nodejs.sh +++ b/scripts/get_nodejs.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -VERSION=v11.15.0 +VERSION=v12.9.0 NODE_FULL=node-${VERSION}-linux-x64 mkdir -p ~/.local/bin @@ -10,5 +10,5 @@ tar -xzf ~/.local/node/${NODE_FULL}.tar.gz -C ~/.local/node/ ln -s ~/.local/node/${NODE_FULL}/bin/node ~/.local/bin/node ln -s ~/.local/node/${NODE_FULL}/bin/npm ~/.local/bin/npm export PATH=~/.local/bin:$PATH -npm i -g dredd@11.0.1 +npm i -g dredd ln -s ~/.local/node/${NODE_FULL}/bin/dredd ~/.local/bin/dredd