Skip to content

EOS ABI interfaces for data exchange. This personal copy has utilities designed to help with cross language support.

License

Notifications You must be signed in to change notification settings

ericpassmore/abieos

 
 

Repository files navigation

abieos

Binary <> JSON conversion using ABIs. Compatible with languages which can interface to C; see src/abieos.h.

Alpha release. Feedback requested.

Packing transactions

  1. Create a context: abieos_create
  2. Use abieos_set_abi to load eosjs2/src/transaction.abi into contract 0.
  3. Use abieos_set_abi to load the contract's ABI.
  4. Use abieos_json_to_bin and abieos_get_bin_hex to convert action data to hex. Use abieos_get_type_for_action to get the action's type.
  5. Use abieos_json_to_bin and abieos_get_bin_hex to convert transaction to hex. Use contract = 0 and type = abieos_string_to_name(context, "transaction").
  6. Destroy the context: abieos_destroy

Usage note

abieos expects object attributes to be in order. It will complain about missing attributes if they are out of order.

Example data

Example action data for abieos_json_to_bin:

{
    "from": "useraaaaaaaa",
    "to": "useraaaaaaab",
    "quantity": "0.0001 SYS",
    "memo": ""
}

Example transaction data for abieos_json_to_bin:

{
    "expiration": "2018-06-27T20:33:54.000",
    "ref_block_num": 45323,
    "ref_block_prefix": 2628749070,
    "max_net_usage_words": 0,
    "max_cpu_usage_ms": 0,
    "delay_sec": 0,
    "context_free_actions": [],
    "actions": [{
        "account": "eosio.token",
        "name": "transfer",
        "authorization":[{
            "actor":"useraaaaaaaa",
            "permission":"active"
        }],
        "data":"608C31C6187315D6708C31C6187315D60100000000000000045359530000000000"
    }],
    "transaction_extensions":[]
}

Ubuntu 16.04 with gcc 8.1.0

  • Install these. You may have to build them yourself from source or find a PPA. Make them the default.
    • gcc 8.1.0
    • cmake 3.11.3
  • sudo apt install libboost-dev libboost-date-time-dev
  • remove this from CMakeLists.txt (2 places): -fsanitize=address,undefined
mkdir build
cd build
cmake ..
make
./test

License

MIT

About

EOS ABI interfaces for data exchange. This personal copy has utilities designed to help with cross language support.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 87.3%
  • TypeScript 6.6%
  • C 3.9%
  • CMake 1.4%
  • Other 0.8%