Visit forta.org to learn more about Forta. See the developer documentation at docs.forta.network
We have a bug bounty program on Immunefi. Please report any security issues you find through the Immunefi dashboard, or reach out to tech@forta.org
- Expose
filterLogas standalone utility function - Check for empty addresses when populating
TransactionEvent.addressesfield - Add support for label embeddings
- Updated JS and TS starter project dependencies
- Updated axios and jest dependencies
- Added support for
uniqueKeyfield in labels
- Added Network chain ID enum for Base
- Added support for
healthCheckmethod to report bot health - Updated grpc proto definition
- Added support for external bots with the
sendAlertsSDK method
- Add retry logic when querying alerts for bots that use
handleAlert
- Reduce the page size of queries made when fetching alerts for bots using
handleAlert
- Reduce the size of queries made when fetching alerts for bots using
handleAlert
- Fix Python
Finding.unique_keyparsing
- Increase grpc response size limits
- Fix Python pagination issue when querying
get_labels - Improve error messages from alerts API
- Updated type definition for FindingSource
- Updated starter project templates
- Added new optional fields
uniqueKeyandsourceto findings - Added support for new bot manifest fields:
longDescription,licenseUrl,promoUrl
- Updated Python child process behaviour to exit on exceptions
- Added
getLabelsmethod to query the Forta API for labels
- Fixed issue when publishing bot manifest without speciyfing chain settings
- Expanded alert query lookback window when running handleAlert locally
- Improved sharding configuration validation
- Added new
stakeCLI command to stake on a detection bot - Fixed Python error handling to also reject NodeJS promise
- Added retry logic for CLI
runcommand to improve reliability of running bots locally - Improved error handling for Python bots by showing stack traces
- Fixed issue for parsing findings returned from Python bots
- Added new FindingType value of Scam
- Added bot license
- Increased max findings response size to 250kB
- Updated label metadata field to be a map
- Added metadata field to Labels
- Updated
runcommand to wait 60 seconds between alert queries for bots usinghandleAlertlocally
- Added support for address bloom filters on AlertEvent
- Updated CLI errors to return a non-zero exit code
- Changed Alert interface into a class
- Increased maximum number of findings returned in a response to 50
- Fixed labels parsing when querying for alerts
- Added support for running shards i.e. multiple bot instances
- Added labels to alerts
- Updated handleAlert subscriptions to allow specifying filter by chainId
- Updated grpc controller to ensure initialize handler only invoked once
- Updated grpc proto definition
- Updated grpc proto definition to add
alert.chainIdfield
- Added support for
removefield for Labels - Fixed
filter_functionbug in Python SDK - Fixed
fetchJwtSDK method to return mock value during development - Fixed
fetchJwtJS SDK method to return string instead of object - Added
repositoryURL to starter project package.json
- Updated grpc proto definitions for Labels
- Updated
run --filecommand to also accept hashes - Add
alertandsequencenpm commands to starter projects - Updated
BotSubscriptionto makealertIdoptional and also allow passingalertIds
- Fixed grpc proto definitions
- Added support for
handleAlerthandler - Added support for specifying labels on findings
- Return findings from
runHandlersOnBlockandrunHandlersOnTransactionmethods
- Remove
sha3dependency from Python SDK
- Bug fix to the
fetch_jwtmethod in the Python sdk
- Added new methods
fetchJwt,decodeJwtandverifyJwtto Typescript sdk for generating and verifying a jwt token from a scan node - Added new method
fetch_jwt,decode_jwt, andverify_jwtto Python sdk for generating and verifying a jwt token from a scan node - Limit size of findings returned from handleBlock and handleTransaction callbacks
- Use forta ipfs node for
infocommand - Added new method
getAlertsto Typescript sdk to that fetches alerts using forta's alert graphql api - Added new method
get_alertsto Python sdk to that fetches alerts using forta's alert graphql api - Fixing docker build issue
- Updated chainId validation of
runcommand to print out warning instead of throwing error - Added
infoandlogscommands as npm scripts of starter projects - Updated
uploadImagefunction to accept image tag suffix
- Added two new cli commands:
infoandlogs - Validate chainId of jsonRpcUrl when running bot
- Generate unique bot id when initializing bot
- Adjust block polling time based on chainId when running bot locally
- Fix sort order for
chainIdsarray
- Fix issue for CLI
publishcommand when querying account balance
- Update gRPC agent.proto to add
Finding.addresses - Add support for
addressesfield toFinding - Add verification for account balance and ownership when running
publishCLI command - Provide default gas estimates when interacting with registry smart contract functions
- Include
logIndexin result ofTransactionEvent.filterLog - Include
addressin result ofTransactionEvent.filterFunction - Add
Finding.fromalias method forFinding.fromObject
- Set
contextPathwhen building image
- Update starter project README
- Update AgentRegistry contract ABI
- Add default
chainIdsto starter project package.json - Fix Python starter project dependencies
- Update gRPC agent.proto to deprecate
TransactionEvent.Receipt - Update SDK to remove
receipt,statusandgasUsedproperties fromTransactionEvent - Add
getTransactionReceiptconvenience method to SDK - Update CLI
runcommand to not fetch transaction receipts - Update starter projects to detect for large Tether transfers
- Update terms of use URL
- Set default
jsonRpcUrlto https://cloudflare-eth.com - Expose CLI functionality using
configureContainermethod - Update CLI
initcommand to also runnpm install
- Fix Python SDK support for new chains
- Add terms of use prompt to CLI
initcommand - Update starter project Dockerfile to include line to enable logging
- Add
keyfilePasswordconfig field for CI/CD pipelines - Set default
ipfsGatewayUrlto https://ipfs.forta.network - Update
getJsonRpcUrlto not throw error when running unit tests - Update agent image build process to always target amd64 architecture
- Add
descriptionfield to agent manifest from package.json
- Add support for specifying multiple addresses in
filterLogandfilterFunctioncommands - Add
--nocacheoption toforta-agent runcommand to disable writing to cache - Fix
forta-agent runcommand to process blocks sequentially when listening for realtime data
- Add support for specifying
chainIdsin package.json
- Add support for private agents with the
setPrivateFindingsmethod - Deprecate
everestIdattribute of Finding - Deprecate
filterEventmethod of TransactionEvent
- Add disk caching for the
forta-agent runcommand
- Add support for specifying multiple transactions/blocks for the
forta-agent runcommand - Include CLI version in published manifest
- Add
getEthersBatchProviderutility function to Javascript SDK - Export the
keccak256utility function from Javascript and Python SDK
- Actually fix published npm artifact
- Fix published npm artifact
- Fix agent publishing on Apple M1 chips
- Add
addressfield to result offilterLogmethod - Fix
fromproperty in agent manifest - Increase gas price for transactions from CLI commands
- Add check to ensure agent documentation is not empty
- Fix handling of
networkvalue in Python SDK
- Change base Docker image for starter projects to
node12-alpine - Export
ethersobject from Javascript SDK - Add
getEthersProviderconvenience method to SDK - Add
filterLogandfilterFunctionconvenience methods toTransactionEventin SDK - Export
web3object from Python SDK - Add
get_web3_providerconvenience method to Python SDK - Add
filter_logandfilter_functionconvenience methods toTransactionEventin Python SDK - Add
agentIdconfig property to support Forta Connect publishing - Include results of
pushcommand in publish.log - Improve CLI keyfile lookup
- Fix CLI exit when running Python agents
- Don't export
getFortaConfigandget_forta_configfrom SDK
- Use more raw JSON-RPC calls in CLI
- Add new CLI command:
push - Replace web3.js with ethers.js
- Use raw JSON-RPC calls to fetch blocks and receipts in CLI
- Add limit of 5 alerts to starter projects
- Add new CLI command:
keyfile - Add
keyfilenpm script to starter projects - Add
repositoryfield to agent manifest
- Transition to Polygon agent registry
- Provide default value for
agentRegistryJsonRpcUrl - Fix agent existence check
- Add new CLI commands:
enableanddisable - Increase gas for transactions from CLI commands
- Remove duplicated
BlockEventproperties - Add obfuscation step to Javascript and Typescript starter project Dockerfile
- Improve
initcommand to ensure that keystore folder exists
- Fix CLI keyfile resolution
- Make config file global by default (with option to override locally)
- Fix starter project npm scripts to support Windows
- Move
agentId(derived fromname) andversionto package.json - Remove
documentationconfig property and hardcode to README.md - Improve
runcommand to not scan over same block - Add project URLs to npm and PyPi pages
- Fix published npm artifact
- Add npm script to ensure we build before publishing
- Add
initialize()handler to SDK - Add
outputfield toTraceResult - Add
Infooption toFindingTypeenum - Add more error logging to grpc controller
- Add more unit tests for CLI and SDK
- Add MIT license
- Fix handler initialization to maintain Python agent state
- Ensure that
jsonRpcUrlis http(s) only - Fix
hex_to_intPython SDK method to accept integers - Add error logging to grpc controller
- Update Typescript starter project npm scripts to build before running
- Add unit tests to Python starter project
- Fix
hex_to_intPython SDK convenience method - Fix Typescript starter project Dockerfile
- Update Python starter project requirements.txt
- Improve Python error handling
- Add Python SDK
- Add Python starter project
- Fix Python agent to run in single long-running process
- Fix race condition when listening for blocks
- Improve Python error handling
- Fix receipt
statusnot being set correctly - Remove
handlersconfig property and hardcode agent filename
- Add
keyfileconfig property to specify a keyfile when publishing - Add publish.log file to log publishing result
- Add
createTransactionEventandcreateBlockEventutility methods for tests - Fix receipt addresses to be lowercase
- Add unit tests for CLI commands:
init,runandpublish - Fix websocket connection preventing clean exit of CLI
- Exclude unit tests from build
- Fix file logging to append newline character
- Update
jesttype definitions to v27.0.1
- Add agent documentation to manifest when publishing
- Add agent documentation to starter projects
- Update agent registry address
- Export more classes from SDK
- Improve error message when unable to parse config file
- Remove usage of web sockets when listening for blockchain data
- Remove unnecessary call to eth_getTransaction
- Add support for Python agents
- Add more block data to
BlockEvent - Add unit tests for starter project
- Format addresses to be lowercase
- Improve error message when config file not found
- Hardcode Disco auth credentials
- Add retry logic if fetching transaction or receipt fails
- Add SDK support for tracing via
traceRpcUrlconfig property - Add support for
--configCLI arg to specify a config file - Add check for empty directory before initializing starter project
- Add Disco authentication when publishing
- Update filepath resolution to be OS-agnostic
- Include forta.config.json in starter project .gitignore
- Use new agent registry contract
- Hardcode scanner poolId
- Rename
ipfsGatewayAuthHeaderconfig property toipfsGatewayAuth - Add
publishnpm script to starter project
- Remove .npmignore file after initializing starter project
- Add
getJsonRpcUrlandgetFortaConfigSDK convenience methods - Add more alias methods for
TransactionEventproperties in SDK - Add npm scripts to starter project package.json
- Export
FortaConfigtype from SDK - Fix starter project .gitignore renaming issue when publishing npm package
- Update
initto use existing keyfile if one exists (instead of always creating new one) - Update starter project package.json to use
forta-agentnpm package
- Initialize repository
- Initialize CLI commands:
init,runandpublish - Initialize Javascript and Typescript SDK
- Initialize Javascript and Typescript high gas starter project