Skip to content
This repository has been archived by the owner on Aug 2, 2022. It is now read-only.

develop: make cleos unpack a packed transaction before signing and ad… #10220

Merged
merged 1 commit into from
Apr 5, 2021

Conversation

linhuang-blockone
Copy link
Contributor

…d test cases to cleos sign command

Change Description

This is a clone of Rel.2.1.x PR #10203.

https://blockone.atlassian.net/browse/EPE-806

Currently when signing a packed transaction, cleos does not unpack the transaction before signing. A sign request for a packed transaction looks like

REQUEST:
---------------------
POST /v1/wallet/sign_transaction HTTP/1.1
Host: /home/ubuntu/eosio-wallet/keosd.sock:
content-length: 563
Accept: /
Connection: close

[{
*"expiration": "1970-01-01T00:00:00",*
"ref_block_num": 0,
"ref_block_prefix": 0,
"max_net_usage_words": 0,
"max_cpu_usage_ms": 0,

After this PR, for a packed transaction like

{
  "signatures": [],
  "compression": "none",
  "packed_context_free_data": "",
  "packed_trx": "a591425d4188b19d31b1000000000100a6823403ea3055000000572d3ccdcd010000000000ea305500000000a8ed323222000000000000a6690000000000ea305501000000000000000453595300000000016d00"
}

cleos --print-request --print-response sign --public-key EOS8Dq1KosJ9PMn1vKQK3TbiihgfUiDBUsz471xaCE6eYUssPB1KY packed_trx.json will generate

info  2021-03-29T20:32:54.017 thread-0  main.cpp:3757                 operator()           ] grabbing chain_id from nodeos
REQUEST:
---------------------
POST /v1/chain/get_info HTTP/1.1
Host: 127.0.0.1:8888
content-length: 0
Accept: */*
Connection: close
---------------------
RESPONSE:
---------------------
{
  "server_version": "ff2cfa7a",
  "chain_id": "8a34ec7df1b8cd06ff4a8abbaa7cc50300823350cadc59ab296cb00d104d2b8f",
  "head_block_num": 102,
  "last_irreversible_block_num": 101,
  "last_irreversible_block_id": "0000006527042cd9aa0854751a8ecf0fadcb68c5f6324767c7c2a0e148fba529",
  "head_block_id": "00000066cca62dd687f5f70ed2729a80e9b936f85910a32cc439633807828636",
  "head_block_time": "2021-03-29T20:32:54.000",
  "head_block_producer": "eosio",
  "virtual_block_cpu_limit": 221215,
  "virtual_block_net_limit": 1160019,
  "block_cpu_limit": 199900,
  "block_net_limit": 1048576,
  "server_version_string": "v2.1.0-rc3",
  "fork_db_head_block_num": 102,
  "fork_db_head_block_id": "00000066cca62dd687f5f70ed2729a80e9b936f85910a32cc439633807828636",
  "server_full_version_string": "v2.1.0-rc3-ff2cfa7aeac6ac7d8a83a4a38296de7b74908402-dirty",
  "last_irreversible_block_time": "2021-03-29T20:32:53.500"
}
---------------------
REQUEST:
---------------------
POST /v1/wallet/sign_transaction HTTP/1.1
Host: /Users/lin.huang/eosio-wallet/keosd.sock:
content-length: 740
Accept: */*
Connection: close
[{
    "expiration": "2019-08-01T07:15:49",
    "ref_block_num": 34881,
    "ref_block_prefix": 2972818865,
    "max_net_usage_words": 0,
    "max_cpu_usage_ms": 0,
    "delay_sec": 0,
    "context_free_actions": [],
    "actions": [{
        "account": "eosio.token",
        "name": "transfer",
        "authorization": [{
            "actor": "eosio",
            "permission": "active"
          }
        ],
        "data": "000000000000a6690000000000ea305501000000000000000453595300000000016d"
      }
    ],
    "transaction_extensions": [],
    "signatures": [],
    "context_free_data": []
  },[
    "EOS8Dq1KosJ9PMn1vKQK3TbiihgfUiDBUsz471xaCE6eYUssPB1KY"
  ],
  "8a34ec7df1b8cd06ff4a8abbaa7cc50300823350cadc59ab296cb00d104d2b8f"
]
---------------------
RESPONSE:
---------------------
{
  "expiration": "2019-08-01T07:15:49",
  "ref_block_num": 34881,
  "ref_block_prefix": 2972818865,
  "max_net_usage_words": 0,
  "max_cpu_usage_ms": 0,
  "delay_sec": 0,
  "context_free_actions": [],
  "actions": [{
      "account": "eosio.token",
      "name": "transfer",
      "authorization": [{
          "actor": "eosio",
          "permission": "active"
        }
      ],
      "data": "000000000000a6690000000000ea305501000000000000000453595300000000016d"
    }
  ],
  "transaction_extensions": [],
  "signatures": [
    "SIG_K1_KicUhKP4bdYydf8eHY6nLpZvvRiEuF1gQk5cS92McWnHnZKyaunr4356TC8z6BoqU8EK1oShYT2m8gQqsfxUsZNhpDroLi"
  ],
  "context_free_data": []
}
---------------------
{
  "signatures": [
    "SIG_K1_KicUhKP4bdYydf8eHY6nLpZvvRiEuF1gQk5cS92McWnHnZKyaunr4356TC8z6BoqU8EK1oShYT2m8gQqsfxUsZNhpDroLi"
  ],
  "compression": "none",
  "packed_context_free_data": "",
  "packed_trx": "a591425d4188b19d31b1000000000100a6823403ea3055000000572d3ccdcd010000000000ea305500000000a8ed323222000000000000a6690000000000ea305501000000000000000453595300000000016d00"
}

Change Type

Select ONE:

  • Documentation
  • Stability bug fix
  • Other
  • Other - special case

Testing Changes

Select ANY that apply:

  • New Tests
  • Existing Tests
  • Test Framework
  • CI System
  • Other

Consensus Changes

  • Consensus Changes

API Changes

  • API Changes

Documentation Additions

  • Documentation Additions

@linhuang-blockone linhuang-blockone merged commit 1a8daae into develop Apr 5, 2021
@linhuang-blockone linhuang-blockone deleted the develop_sign_packed_trx_fix branch April 5, 2021 17:01
@heifner
Copy link
Contributor

heifner commented Apr 16, 2021

Issue: #10104

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants