etherlite 0.5.3 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/etherlite.gemspec +17 -17
- data/lib/etherlite/account/private_key.rb +5 -14
- data/lib/etherlite/api/node.rb +0 -9
- data/lib/etherlite/connection.rb +1 -1
- data/lib/etherlite/version.rb +1 -1
- data/lib/etherlite.rb +1 -1
- metadata +4 -4
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 98f9a12feec6ffb0a40a90f914810d9960f526920cc86bbbfe1c323ea83cc2ea
         | 
| 4 | 
            +
              data.tar.gz: ea64f460710a7f52bcc3b1ea1a0ec1f7dbc2c3d06eba96f5a07df491efd07bb7
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 8af135b1ea2716ee896df900dcc425fd47d0384990d89964fd06b43dae03ad7c0e3bf1937937b0119ebed6171e416548d4744b258b0607ddf6a6dae9bcd45f2d
         | 
| 7 | 
            +
              data.tar.gz: 6e0f1ec2f8db9860147e475b0ec7e283902ce70a580a6633d5eff126d18b3dcbd6c039f72ddeed4b1a47e0b30edd7cb7c2caa1b22fe83548add6591e2f19f7dd
         | 
    
        data/etherlite.gemspec
    CHANGED
    
    | @@ -3,33 +3,33 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) | |
| 3 3 | 
             
            require 'etherlite/version'
         | 
| 4 4 |  | 
| 5 5 | 
             
            Gem::Specification.new do |spec|
         | 
| 6 | 
            -
              spec.name          =  | 
| 6 | 
            +
              spec.name          = 'etherlite'
         | 
| 7 7 | 
             
              spec.version       = Etherlite::VERSION
         | 
| 8 | 
            -
              spec.authors       = [ | 
| 9 | 
            -
              spec.email         = [ | 
| 8 | 
            +
              spec.authors       = ['Ignacio Baixas']
         | 
| 9 | 
            +
              spec.email         = ['ignacio@budacom.com']
         | 
| 10 10 |  | 
| 11 11 | 
             
              spec.summary       = 'Ethereum integration for ruby on rails'
         | 
| 12 12 | 
             
              spec.description   = ''
         | 
| 13 | 
            -
              spec.homepage      =  | 
| 14 | 
            -
              spec.license       =  | 
| 13 | 
            +
              spec.homepage      = 'https://github.com/budacom/etherlite'
         | 
| 14 | 
            +
              spec.license       = 'MIT'
         | 
| 15 15 |  | 
| 16 16 | 
             
              spec.files         = `git ls-files -z`.split("\x0").reject do |f|
         | 
| 17 17 | 
             
                f.match(%r{^(test|spec|features)/})
         | 
| 18 18 | 
             
              end
         | 
| 19 | 
            -
              spec.bindir        =  | 
| 19 | 
            +
              spec.bindir        = 'exe'
         | 
| 20 20 | 
             
              spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
         | 
| 21 | 
            -
              spec.require_paths = [ | 
| 21 | 
            +
              spec.require_paths = ['lib']
         | 
| 22 22 |  | 
| 23 | 
            -
              spec.add_dependency  | 
| 24 | 
            -
              spec.add_dependency  | 
| 23 | 
            +
              spec.add_dependency 'activesupport'
         | 
| 24 | 
            +
              spec.add_dependency 'eth', '~> 0.5.10'
         | 
| 25 25 | 
             
              spec.add_dependency 'keccak', '~> 1.3', '>= 1.3.1'
         | 
| 26 | 
            -
              spec.add_dependency  | 
| 26 | 
            +
              spec.add_dependency 'power-types', '~> 0.1'
         | 
| 27 27 |  | 
| 28 | 
            -
              spec.add_development_dependency  | 
| 29 | 
            -
              spec.add_development_dependency  | 
| 30 | 
            -
              spec.add_development_dependency  | 
| 31 | 
            -
              spec.add_development_dependency  | 
| 32 | 
            -
              spec.add_development_dependency  | 
| 33 | 
            -
              spec.add_development_dependency  | 
| 34 | 
            -
              spec.add_development_dependency  | 
| 28 | 
            +
              spec.add_development_dependency 'bundler', '~> 2.1'
         | 
| 29 | 
            +
              spec.add_development_dependency 'guard', '~> 2.14'
         | 
| 30 | 
            +
              spec.add_development_dependency 'guard-rspec', '~> 4.7'
         | 
| 31 | 
            +
              spec.add_development_dependency 'pry'
         | 
| 32 | 
            +
              spec.add_development_dependency 'rake', '~> 10.0'
         | 
| 33 | 
            +
              spec.add_development_dependency 'rspec', '~> 3.0'
         | 
| 34 | 
            +
              spec.add_development_dependency 'webmock', '~> 3.7.5'
         | 
| 35 35 | 
             
            end
         | 
| @@ -5,13 +5,14 @@ module Etherlite | |
| 5 5 | 
             
                class PrivateKey < Base
         | 
| 6 6 | 
             
                  def initialize(_connection, _pk)
         | 
| 7 7 | 
             
                    @key = Eth::Key.new priv: _pk
         | 
| 8 | 
            -
                    super _connection, Etherlite::Utils.normalize_address(@key.address)
         | 
| 8 | 
            +
                    super _connection, Etherlite::Utils.normalize_address(@key.address.to_s)
         | 
| 9 9 | 
             
                  end
         | 
| 10 10 |  | 
| 11 11 | 
             
                  def build_raw_transaction(_options = {})
         | 
| 12 12 | 
             
                    nonce = nonce_manager.next_nonce_for(normalized_address, _options.slice(:replace, :nonce))
         | 
| 13 13 |  | 
| 14 14 | 
             
                    tx = Eth::Tx.new(
         | 
| 15 | 
            +
                      chain_id: @connection.chain_id,
         | 
| 15 16 | 
             
                      value: _options.fetch(:value, 0),
         | 
| 16 17 | 
             
                      data: _options.fetch(:data, ''),
         | 
| 17 18 | 
             
                      gas_limit: _options.fetch(:gas, 90_000),
         | 
| @@ -20,23 +21,20 @@ module Etherlite | |
| 20 21 | 
             
                      nonce: nonce
         | 
| 21 22 | 
             
                    )
         | 
| 22 23 |  | 
| 23 | 
            -
                     | 
| 24 | 
            -
             | 
| 24 | 
            +
                    tx.sign @key
         | 
| 25 25 | 
             
                    tx
         | 
| 26 26 | 
             
                  end
         | 
| 27 27 |  | 
| 28 28 | 
             
                  def send_transaction(_options = {})
         | 
| 29 29 | 
             
                    tx = build_raw_transaction(_options)
         | 
| 30 30 |  | 
| 31 | 
            -
                    nonce_manager.with_next_nonce_for(normalized_address, nonce: tx. | 
| 32 | 
            -
                      Etherlite::Transaction.new @connection, @connection.eth_send_raw_transaction(tx.hex)
         | 
| 31 | 
            +
                    nonce_manager.with_next_nonce_for(normalized_address, nonce: tx.signer_nonce) do |_|
         | 
| 32 | 
            +
                      Etherlite::Transaction.new @connection, @connection.eth_send_raw_transaction("0x#{tx.hex}")
         | 
| 33 33 | 
             
                    end
         | 
| 34 34 | 
             
                  end
         | 
| 35 35 |  | 
| 36 36 | 
             
                  private
         | 
| 37 37 |  | 
| 38 | 
            -
                  @@eth_mutex = Mutex.new
         | 
| 39 | 
            -
             | 
| 40 38 | 
             
                  def gas_price
         | 
| 41 39 | 
             
                    # TODO: improve on this
         | 
| 42 40 | 
             
                    @gas_price ||= connection.eth_gas_price
         | 
| @@ -45,13 +43,6 @@ module Etherlite | |
| 45 43 | 
             
                  def nonce_manager
         | 
| 46 44 | 
             
                    Etherlite::NonceManager.new @connection
         | 
| 47 45 | 
             
                  end
         | 
| 48 | 
            -
             | 
| 49 | 
            -
                  def sign_with_connection_chain(_tx)
         | 
| 50 | 
            -
                    @@eth_mutex.synchronize do
         | 
| 51 | 
            -
                      Eth.configure { |c| c.chain_id = @connection.chain_id }
         | 
| 52 | 
            -
                      _tx.sign @key
         | 
| 53 | 
            -
                    end
         | 
| 54 | 
            -
                  end
         | 
| 55 46 | 
             
                end
         | 
| 56 47 | 
             
              end
         | 
| 57 48 | 
             
            end
         | 
    
        data/lib/etherlite/api/node.rb
    CHANGED
    
    | @@ -60,15 +60,6 @@ module Etherlite | |
| 60 60 | 
             
                    @anonymous_account ||= Etherlite::Account::Anonymous.new(connection)
         | 
| 61 61 | 
             
                  end
         | 
| 62 62 |  | 
| 63 | 
            -
                  def account_from_pk(_pk)
         | 
| 64 | 
            -
                    Etherlite.logger.warn(
         | 
| 65 | 
            -
                      "use of 'account_from_pk' is deprecated and will be removed in next version, \
         | 
| 66 | 
            -
            use 'load_account' instead"
         | 
| 67 | 
            -
                    )
         | 
| 68 | 
            -
             | 
| 69 | 
            -
                    load_account(from_pk: _pk)
         | 
| 70 | 
            -
                  end
         | 
| 71 | 
            -
             | 
| 72 63 | 
             
                  def_delegators :default_account, :unlock, :lock, :normalized_address, :transfer_to, :call
         | 
| 73 64 | 
             
                end
         | 
| 74 65 | 
             
              end
         | 
    
        data/lib/etherlite/connection.rb
    CHANGED
    
    
    
        data/lib/etherlite/version.rb
    CHANGED
    
    
    
        data/lib/etherlite.rb
    CHANGED
    
    | @@ -56,7 +56,7 @@ module Etherlite | |
| 56 56 | 
             
                _url = URI(_url) unless _url.is_a? URI
         | 
| 57 57 |  | 
| 58 58 | 
             
                options = config.default_connection_options
         | 
| 59 | 
            -
                options = options.merge _options.slice | 
| 59 | 
            +
                options = options.merge _options.slice(*options.keys)
         | 
| 60 60 |  | 
| 61 61 | 
             
                Client.new Connection.new(_url, options)
         | 
| 62 62 | 
             
              end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: etherlite
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.6.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Ignacio Baixas
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2023-04- | 
| 11 | 
            +
            date: 2023-04-21 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: activesupport
         | 
| @@ -30,14 +30,14 @@ dependencies: | |
| 30 30 | 
             
                requirements:
         | 
| 31 31 | 
             
                - - "~>"
         | 
| 32 32 | 
             
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            -
                    version: 0. | 
| 33 | 
            +
                    version: 0.5.10
         | 
| 34 34 | 
             
              type: :runtime
         | 
| 35 35 | 
             
              prerelease: false
         | 
| 36 36 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 37 | 
             
                requirements:
         | 
| 38 38 | 
             
                - - "~>"
         | 
| 39 39 | 
             
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            -
                    version: 0. | 
| 40 | 
            +
                    version: 0.5.10
         | 
| 41 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 42 42 | 
             
              name: keccak
         | 
| 43 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         |