CITA Ruby SDK
Add this line to your application's Gemfile:
gem 'cita-sdk-ruby'
And then execute:
$ bundle
Or install it yourself as:
$ gem install cita-sdk-ruby
See keccak256
, to_hex
and other utils methods in CITA::Utils
module
RPC calls RPC list
cita = CITA::Client.new("your url")
cita.rpc.block_number
cita.rpc.get_block_by_number("0x0", true)
# or
cita.rpc.getBlockByNumber("0x0", true)
sign and unsign
# make a Transaction object first
transaction = CITA::Transaction.new(
to: "8ff0f5b85fba9a6429e2e256880291774f8e224f",
nonce: "e4f195c409fe47c58a624de37c730679",
quota: 30000,
valid_until_block: 1882078,
data: "",
value: "0x3e8",
chain_id: "1",
version: 1
)
# sign transaction with your private key
content = CITA::TransactionSigner.encode(transaction, "you private key")
# you can unsign content by `decode` method
CITA::TransactionSigner.decode(content)
# you can set `recover` to false if you don't want to recover from address and public key
CITA::TransactionSigner.decode(content, recover: false)
send transaction
cita.rpc.send_transaction(transaction, private_key)
transfer tokens
cita.rpc.transfer(to: "to address", value: 1000, private_key: "your private key")
contract
contract = cita.contract_at(abi, contract_address)
# for RPC call (constant functions)
response = contract.call_func(method: :symbol)
# for RPC sendTransaction
response = contract.send_func(tx: tx, private_key: private_key, method: :transfer, params: [address, tokens])
Bug reports and pull requests are welcome on GitHub at https://github.com/citahub/cita-sdk-ruby. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
get source code:
$ git clone git@github.com:citahub/cita-sdk-ruby.git
update submodules, see .gitmodules
:
$ git submodule update --init --recursive
build secp256k1:
$ cd secp256k1 && ./autogen.sh && ./configure --enable-module-recovery --enable-experimental --enable-module-ecdh && make && make install && cd ..
Run $ make
to see all available tasks.
This project is using spec as testing framework, find test cases in spec/
dir.
$ bundle exec rake spec
- Linter tool:
$ rubocop
- Coding Style Guide: TBD
- Coding Style config:
.rubocop.yml
- Code formatter:
$ rubocop -x
- GitHub Flow, Understanding the GitHub flow
- use "develop" for feature/bugfix/refactor
- use "master" for release
- format:
vx.y.z
x.y
Follow the version number of CITAz
Defined by SDK itself:changed by fixing or adding features
The gem is available as open source under the terms of the MIT License.
Everyone interacting in the cita-sdk-ruby project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.