All notable changes to this project will be documented in this file.
- Eth: update version #280
- Eth/abi: fix negative integer coding #279
- Support negative number from JSON RPC #267
- Abi/event: confirm decoding tuples works #278
- Allow to call JSON RPC with custom block number #268
- Gem: run rufo #277
- Fix event signature #250
- Support tuple params in EventLog #276
- Ci: update ruby version #271
- Eth/api: remove coinbase as default account #269
- Build(deps): bump JamesIves/github-pages-deploy-action from 4.5.0 to 4.6.1 #275
- Build(deps): bump github/codeql-action from 2 to 3 #257
- Build(deps): bump JamesIves/github-pages-deploy-action from 4.4.3 to 4.5.0 #256
- Fix typo in contract_spec.rb #253
- Eth/eip721: fix data type bug for bytes, fix #251 #252
- Ci: unpatch geth #248
- Build(deps): bump actions/checkout from 3 to 4 #246
- Eth/abi: allow encoding address types #242
- Eth/solidity: enable --via-ir #232
- Checking userinfo with the uri method #233
- Eth/abi: add abicoder gem tests collection #218
- Manual default_account #215
- Add moonbeam networks in #209
- Spec: run rufo #245
- Fix the decoding of unsigned transactions #243
- Build(deps): bump JamesIves/github-pages-deploy-action from 4.4.2 to 4.4.3 #244
- Build(deps): bump JamesIves/github-pages-deploy-action from 4.4.1 to 4.4.2 #240
- Eth/tx: update tx initcode cost for shanghai #237
- Eth/client: remove default gas limit attribute #235
- Docs: minor fixups #229
- Eth/contract: ensure contract name is title case #228
- Deps: require forwardable for contracts #227
- Ens/resolver: remove pending for etc coin type #219
- Deps: update secp256k1 to 6 #214
- Eth/solidity: add docs for solc path override #213
- Manually overwrite solc path #212
- Abi.decoder handles arrays of string and bytes #207
- Eth/util: fix compressed public key to address in #206
- Eth/api: update execution apis to latest spec #204
- Eth/abi: split abi class into encoder and decoder #203
- Eth/client: deduplicate code #202
- Eth/client: rewrite send to send_request #201
- Docs: update changelog for 0.5.10 #200
- Tested with Ruby 3.2 #199
- Eth/ens: restore docs for normalize #198
- Docs: update readme #195
- Eth/contract: ensure address arrays support #194
- Eth/client: do not allow accessing local accounts on remote connections #193
- Eth/client: correctly select functions #191
- Docs: create security policy #190
- Docs: add contribution guidelines #189
- Docs: add coc #188
- Docs: update changelog for 0.5.9 #187
- Eth/abi: dynamic struct encoding (#135) #185
- Eth/client: support camel case (convert before sending the tx) #172
- Eth/client: add
tx_succeeded?
#173
- Eth/client: raise an error if a contract interaction reverts #186
- Eth/client: dup params to prevent marshalling on client obj #184
- Eth/client: add test for tx_succeeded? #183
- Eth: rename functions prefixed with is_ #182
- Eth/chain: update available chains #181
- Docs: update changelog for 0.5.8 #180
- Eth: happy new 2023 #179
- Docs: fix readme workflow badge #178
- Solidity: sanitize the contract path before compiling #176
- Ci: add libyaml on ubuntu #175
- Client: ability to manual set nonce of tx for transfer, deploy, transact methods was added. #169
- Client: ability for call contract methods with specific transaction value was added #168
- Client: add ENS resolve support #150
- Client: satisfy yard docs for transfer kwargs #170
- Client: remove invalid parameters from call_raw method #166
- Gem: bump required ruby version to 3 #165
- Build(deps): bump JamesIves/github-pages-deploy-action from 4.4.0 to 4.4.1 #162
- Gem: bump version to 0.5.8 #161
- Docs: update changelog #160
- Docs: add readme header for yard (#159)
- Eth/client: fix api documentation (#158)
- Eth/client: update default fees (#157)
- Docs: move readme usage to wiki (#156)
- Eth/signature: fix allowing ledger v values of 0 (#155)
- Eth/client: rename http basic to http auth (#154)
- Fix Eth:Tx.decode for transaction with s length < 64 chars (#148)
- Build(deps): bump JamesIves/github-pages-deploy-action from 4.3.4 to 4.4.0 (#140)
- Fixed to return uint256[] correctly when passed as type (#147)
- Build(deps): bump JamesIves/github-pages-deploy-action from 4.3.3 to 4.3.4 (#133)
- Docs: update CHANGELOG (#132)
- Gem: bump version to 0.5.7 (#131)
- Eth/client: Add gas limit override option for contract deployments (#128)
- Eth/abi: support dynamic array encoding (#122)
- Eth/client: Include contract constructor args when estimating intrinsic gas (#111)
- Eth/abi: allow parsing numerics from string inputs (#112)
- Eth/signature: fix prefix_message for multibyte characters (#120)
- Eth/abi: raise error if numeric comes as string (#114)
- Gem: bump version to 0.5.6 (#130)
- Eth/contract: Add missing def_delegator for constructor_inputs (#96)
- Eth/client: Enable passing in constructor params to deploy (#106)
- Eth/chain: add matic/mumbai (#107)
- Gem: bump version to 0.5.5 (#89)
- Docs: update changelog for 0.5.4 (#90)
- Ci: add weekly dependency checks (#91)
- Build(deps): bump github/codeql-action from 1 to 2 (#92)
- Build(deps): bump actions/checkout from 2 to 3 (#93)
- Build(deps): bump JamesIves/github-pages-deploy-action from 4.1.7 to 4.3.3 (#94)
- Eth/abi: fix handling of hex values for byte strings (#100)
- Eth/abi: add a testcase for handling hex and bin strings (#101)
- Eth/abi: Fix Eth::Abi::DecodingError in call method (#105)
- Eth: some docs and cleanups (#108)
- Eth/client: method for eip-1271 (#80)
- Docs: update changelog (#77)
- Gem: bump version to 0.5.4 (#78)
- Ci: bump ruby version to 3.1 on ci (#79)
- Fix typos (#81)
- Eth/contract: allow creating from file, abi, bin (#83)
- Eth/client: fix account requirement for client.call() (#85)
- Add dependency support for openssl 2.2 and greater, including 3.x (#88)
- Smart contract support (#68)
- Eth/solidity: add solidity compiler bindings (#66)
- Eth: remove duplicated code (#62)
- Ci: allow coverage to drop to 99% without failing (#63)
- Docs: update readme (#64)
- Docs: add wiki to readme (#65)
- Docs: update changelog (#61)
- Eth/chain: add sepolia chain id; docs (#60)
- Eth/rlp: cleanup (#59)
- Eth/tx: properly serialize signatures (#58)
- Eth/client: fix legacy transfer (#57)
- Gem: relax openssl requirement (#56)
- Docs: update changelog (#53)
- Spec: add upstream test fixtures for keystore (#50)
- Eth/tx: create legacy, type-1, and type-2 transactions #33
- Signature: implement eip 712 typed structured data signing #27
- Lib: import ABI to eth/abi #29
- Eth/chains: implement eip 155 for replay protection #20
- Docs: update readme with features #49
- Eth/tx: add method to estimate intrinsic gas costs #48
- Eth/key: allow chain_id empty for signing messages/data #47
- Gem: prepare for release #46
- Eth/sig: allow v values > 0xff, fix #30 #43
- Eth/abi: refactor for maintainability #42
- Docs: improve readme #41
- Lib: improve error handling #39
- Docs: update readme for tx and keys #40
- Implement encrypt/decrypt #22
- Gem: clean up some docs and scripts #32
- Rename util and chain to singular #26
- Docs: add some examples to readme #25
- Key/signature: personal sign and verify #24
- Ci: only run coverage on CI #23
- Lib/signature: implement personal_recover (eip 191 #21
- Eth/util: public_key_to_address should return an eth::address #19
- Ci: add docs workflow #18
- Address class implementation and tests #13
- Spec: improve util tests #12
- Spec: improve key tests #11
- Gems: bump keccak and secp256k1 #10
- Docs: add code climate badge #8
- Ci: enable codecov #7
- Docs: add AUTHORS file #6
- Lib: implement Eth::Key class #4
- Ci: add nightly schedule #2
- Reset gem to point blank #1
- CI: add yard doc and rufo workflows se3000/ruby-eth#75
- Gem: run rufo se3000/ruby-eth#74
- Gem: dependencies se3000/ruby-eth#73
- Lib: fix compatibility with libressl (macos) and openssl 1.1.1k se3000/ruby-eth#66
- Gems: bump version to 0.4.17 se3000/ruby-eth#70
- Gems: bump keccak to 1.3.0 se3000/ruby-eth#69
- Docs: update changelog se3000/ruby-eth#65
- Gems: bump version to 0.4.16 se3000/ruby-eth#65
- License: update copyright notice se3000/ruby-eth#64
- Docs: add badges to readme se3000/ruby-eth#64
- Git: deprecating master se3000/ruby-eth#63
- CI: replace travis with github actions se3000/ruby-eth#62
- Gems: replace digest-sha3-patched with keccak se3000/ruby-eth#58
Released as eth-patched
from a different source tree.
- Bump rake version because of security vulnerability
- Support for recovering signatures with a V value below 27 (like from Ledger hardware wallets)
- Use updated sha3 dependency
- Improved OpenSSL support
- Changed Eth::Configuration.default_chain_id back to .chain_id for dependent libraries.
- escoffon added support for chain IDs larger than 120.
- Updated MoneyTree dependency.
- Support scrypt private key decryption
- Further improve Open SSL configurability
- Support old versions of SSL to help avoid preious breaking changes
- Eth::Key::Encrypter class to handle encrypting keys.
- Eth::Key.encrypt as a nice wrapper around Encrypter class.
- Eth::Key::Decrypter class to handle encrypting keys.
- Eth::Key.decrypt as a nice wrapper around Decrypter class.
- Address#valid? to validate EIP55 checksums.
- Address#checksummed to generate EIP55 checksums.
- Utils.valid_address? to easily validate EIP55 checksums.
- Utils.format_address to easily convert an address to EIP55 checksummed.
- Dependencies no longer include Ethereum::Base. Eth now implements those helpers directly and includes ffi, digest-sha3, and rlp directly.
- Tx#hash includes the '0x' hex prefix.
- Tx#data_bin returns the data field of a transaction in binary.
- Tx#data_hex returns the data field of a transaction as a hexadecimal string.
- Tx#id is an alias of Tx#hash
- Tx#data is configurable to return either hex or binary:
config.tx_data_hex = true
. - Tx#hex includes the '0x' hex prefix.
- Key#address getter is prepended by '0x'.
- Extract public key to address method into Utils.public_key_to_address.
- Tx#from returns an address instead of a public key.
- Chain ID is updated to the later version of the spec.