- feat: change
arkiver remove
command to use the arkive name specified in the manifest instead of passing an the deployed arkive id. - feat: added
arkiver list
command to list all your arkives - fix: fixed a bug where block handlers won't run when you start indexing live data
- feat: Pass in viem contract instance to event handlers. You no longer need to
call
getContract
in your event handlers. - feat: Loggers are now passed to event handlers instead of being global.
- feat: You can now configure custom loggers by calling
log.setup
before running the Arkiver instance. - feat: You can now configure the log level for the default console logger by
passing in the
--log-level
flag to thearkiver start
command. - feat: Enhanced the
arkiver init
command. You can now choose which template you want to initialize your arkive with. Templates are stored in theexamples
directory. - feat: Enhanced logging
- fix: several bugfixes related to wildcard event handlers
- fix: Fixed a bug where arkive would crash if you used event wildcards
- fix: Fixed a bug where entities from other arkvies would show up in other arkives graphql schema
- fix: Fixed a bug where reading source.options would return undefined
- feat: Updated init template to show clearer example
- feat: Added
--no-db
flag toarkiver start
command to disable connecting to MongoDB and serving data via GraphQL - feat: Check for new version of Arkiver CLI on every command
- Added more chains: Optimism, Polygon Mumbai, Polygon, Fantom, and Binance Smart Chain
- feat: The name passed to the
Manifest
constructor now typechecks - feat: Added
arkiver upgrade
command to automatically update to the latest version - feat: Various improvements to the Manifest Builder API. More typesafety and
clearer intention:
- Deprecating
addSource
andaddEventHandler
. UseaddSources
andaddEventHandlers
instead. This enables more checks at the type-level that weren't possible before. - Deprecating
addChain
andaddContract
, renamed tochain
andcontract
, respectively. This is to better communicate the fact that those two methods instantiate a new chain and contract builder, instead of building upon the manifest builder itself, reducing the possibility of confusion when trying to add more chains and contracts.
- Deprecating
- fix: Properly use passed in RPC URL in
addChain
method
- Signing up now requires a username
- Fixed a bug where the
arkiver start
command would not start the GraphQL server if no-c
flag was passed - Add options parameter to
Manifest
'saddChain
method. This allows you to specify the chain's querying blockrange and the chain's RPC URL. - Add rpcUrl field to
ChainOptions
. You can now omit passing in--rpc-url
to thearkiver start
command and instead pass in the RPC URL in theaddChain
method. If no RPC URL is passed in, the default public RPC URL for the chain will be used. - Small enhancements to CLI error messages
- Re-add automatic mongodb spin up on
arkiver start
command
- Fix a bug with passing undefined to the Manifest constructor
- Allow empty name to be passed to the Manifest constructor to allow for backwards compatibility.
- The Manifest class now requires a name to be passed in the constructor. This name will be used to identify the Arkive when deploying.
- The Arkive name is no longer passed as a command line argument to the
arkiver deploy
command. Instead, it is passed in the manifest constructor.
- Fixed a bug in the
buildSchemaFromEntities
function
- Fixing a bug where supported chains were not set correctly
- Exported
supportedChains
object - Adding abi in the manifest builder now typechecks the abi to make sure it's const
- Added
--no-gql
flag toarkiver start
command to disable GraphQL server - Update
--rpc-url
flag to be collect instead of variadic. i.e.--rpc-url ethereum=https://mainnet.infura.io/v3/<YOUR_INFURA_PROJECT_ID> --rpc-url arbitrum=https://arb1.arbitrum.io/rpc
instead of--rpc-url ethereum=https://mainnet.infura.io/v3/<YOUR_INFURA_PROJECT_ID> arbitrum=https://arb1.arbitrum.io/rpc
- The
--rpc-url
flag is now required - Omitting the
-c
flag inarkiver start
will not connect to any MongoDB instance. In this case, you are free to use any database you want in your handler functions and Arkiver will not serve your data via GraphQL. - Added required username while signing up