View Source Web3.Middleware behaviour (web3ex v0.1.0)
Middleware provides an extension point to add functions that you want to be called for every method JSON RPC API.
Implement the Web3.Middleware
behaviour in your module and define the
before_dispatch/1
, after_dispatch/1
, and after_failure/1
callback
functions.
Middleware inspired by
example-middleware
Example middleware
defmodule NoOpMiddleware do
@behaviour Web3.Middleware
alias Web3.Middleware.Pipeline
import Pipeline
def before_dispatch(%Pipeline{method: method} = pipeline) do
pipeline
end
def after_dispatch(%Pipeline{method: method} = pipeline) do
pipeline
end
def after_failure(%Pipeline{method: method} = pipeline) do
pipeline
end
end
Import the Web3.Middleware.Pipeline
module to access convenience
functions.
assign/3
- puts a key and value into theassigns
maphalt/1
- stops execution of further middleware downstream and prevents dispatch of the method when used in abefore_dispatch
callback