Module: BlockGiven

Defined in:
lib/block_given.rb,
lib/block_given/chain.rb,
lib/block_given/event.rb,
lib/block_given/utils.rb,
lib/block_given/client.rb,
lib/block_given/errors.rb,
lib/block_given/poller.rb,
lib/block_given/wallet.rb,
lib/block_given/railtie.rb,
lib/block_given/receipt.rb,
lib/block_given/version.rb,
lib/block_given/contract.rb,
lib/block_given/abi/coder.rb,
lib/block_given/abi/event.rb,
lib/block_given/normalizer.rb,
lib/block_given/transaction.rb,
lib/block_given/abi/function.rb,
lib/block_given/abi/interface.rb,
lib/block_given/abi/parameter.rb,
lib/block_given/configuration.rb,
lib/block_given/connectors/base.rb,
lib/block_given/connectors/http.rb,
lib/block_given/connectors/stub.rb,
lib/block_given/abi/custom_error.rb,
lib/block_given/connectors/alchemy.rb,
lib/block_given/signed_transaction.rb

Overview

viem-inspired toolkit to read from and write to EVM smart contracts.

BlockGiven.configure do |c|
c.connector = BlockGiven::Connectors::Alchemy.new(api_key: ENV["ALCHEMY_API_KEY"])
c.chain = :base
end

Defined Under Namespace

Modules: Abi, Chains, Connectors, Normalizer, Poller, Utils Classes: AbiError, AmbiguousFunctionError, Chain, Client, Configuration, ConfigurationError, Contract, ContractRevertError, Error, Event, EventNotFoundError, FunctionNotFoundError, HttpError, InvalidAddressError, InvalidArgumentError, Railtie, Receipt, RpcError, SignedTransaction, TimeoutError, Transaction, TransactionRevertedError, Wallet, WalletRequiredError, Watcher

Constant Summary collapse

VERSION =
"0.1.0"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.clientObject

Default client built from the global configuration.



50
51
52
# File 'lib/block_given.rb', line 50

def client
  @client ||= Client.new
end

Class Method Details

.configObject



39
40
41
# File 'lib/block_given.rb', line 39

def config
  @config ||= Configuration.new
end

.configure {|config| ... } ⇒ Object

Yields:



43
44
45
46
47
# File 'lib/block_given.rb', line 43

def configure
  yield config
  @client = nil
  config
end

.loggerObject



66
# File 'lib/block_given.rb', line 66

def logger = config.logger

.reset!Object

Forget configuration and default client, stop every watcher (useful in tests).



60
61
62
63
64
# File 'lib/block_given.rb', line 60

def reset!
  Watcher.stop_all(join: 1)
  @config = nil
  @client = nil
end

.watchersObject

Running background watchers (see BlockGiven::Watcher.find / stop / stop_all).



57
# File 'lib/block_given.rb', line 57

def watchers = Watcher.all