forta-agent
v0.1.48
Published
Forta Agent SDK and CLI tool
Readme
Forta Detection Bot SDK and CLI
Visit forta.org to learn more about Forta. See the developer documentation at docs.forta.network
Bug Bounty
We have a bug bounty program on Immunefi. Please report any security issues you find through the Immunefi dashboard, or reach out to [email protected]
Changelog
0.1.48
- Expose
filterLogas standalone utility function - Check for empty addresses when populating
TransactionEvent.addressesfield - Add support for label embeddings
0.1.47
- Updated JS and TS starter project dependencies
0.1.46
- Updated axios and jest dependencies
0.1.45
- Added support for
uniqueKeyfield in labels
0.1.44
- Added Network chain ID enum for Base
0.1.43
- Added support for
healthCheckmethod to report bot health - Updated grpc proto definition
0.1.42
- Added support for external bots with the
sendAlertsSDK method
0.1.41
- Add retry logic when querying alerts for bots that use
handleAlert
0.1.40
- Reduce the page size of queries made when fetching alerts for bots using
handleAlert
0.1.39
- Reduce the size of queries made when fetching alerts for bots using
handleAlert
0.1.38
- Fix Python
Finding.unique_keyparsing
0.1.37
- Increase grpc response size limits
- Fix Python pagination issue when querying
get_labels - Improve error messages from alerts API
0.1.36
- Updated type definition for FindingSource
0.1.35
- Updated starter project templates
0.1.34
- Added new optional fields
uniqueKeyandsourceto findings - Added support for new bot manifest fields:
longDescription,licenseUrl,promoUrl
0.1.33
- Updated Python child process behaviour to exit on exceptions
0.1.32
- Added
getLabelsmethod to query the Forta API for labels
0.1.31
- Fixed issue when publishing bot manifest without speciyfing chain settings
0.1.30
- Expanded alert query lookback window when running handleAlert locally
- Improved sharding configuration validation
0.1.29
- Added new
stakeCLI command to stake on a detection bot - Fixed Python error handling to also reject NodeJS promise
0.1.28
- Added retry logic for CLI
runcommand to improve reliability of running bots locally - Improved error handling for Python bots by showing stack traces
0.1.27
- Fixed issue for parsing findings returned from Python bots
0.1.26
- Added new FindingType value of Scam
0.1.25
- Added bot license
0.1.24
- Increased max findings response size to 250kB
- Updated label metadata field to be a map
0.1.23
- Added metadata field to Labels
0.1.22
- Updated
runcommand to wait 60 seconds between alert queries for bots usinghandleAlertlocally
0.1.21
- 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
0.1.20
- Fixed labels parsing when querying for alerts
0.1.19
- 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
0.1.18
- Updated grpc proto definition to add
alert.chainIdfield
0.1.17
- 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
0.1.16
- 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
0.1.15
- Fixed grpc proto definitions
0.1.14
- Added support for
handleAlerthandler - Added support for specifying labels on findings
0.1.13
- Return findings from
runHandlersOnBlockandrunHandlersOnTransactionmethods
0.1.12
- Remove
sha3dependency from Python SDK
0.1.11
- Bug fix to the
fetch_jwtmethod in the Python sdk
0.1.10
- 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
0.1.9
- 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
0.1.8
- 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
0.1.7
- 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
0.1.6
- Fix sort order for
chainIdsarray
0.1.5
- Fix issue for CLI
publishcommand when querying account balance
0.1.4
- 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
0.1.3
- Set
contextPathwhen building image
0.1.2
- Update starter project README
0.1.1
- Update AgentRegistry contract ABI
- Add default
chainIdsto starter project package.json - Fix Python starter project dependencies
0.1
- 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
0.0.41
- Set default
jsonRpcUrlto https://cloudflare-eth.com - Expose CLI functionality using
configureContainermethod - Update CLI
initcommand to also runnpm install
0.0.40
- 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
0.0.39
- 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
0.0.38
- Add
descriptionfield to agent manifest from package.json
0.0.37
- 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
0.0.36
- Add support for specifying
chainIdsin package.json
0.0.35
- Add support for private agents with the
setPrivateFindingsmethod - Deprecate
everestIdattribute of Finding - Deprecate
filterEventmethod of TransactionEvent
0.0.34
- Add disk caching for the
forta-agent runcommand
0.0.33
- 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
0.0.32
- Actually fix published npm artifact
0.0.31
- Fix published npm artifact
0.0.30
- Fix agent publishing on Apple M1 chips
0.0.29
- 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
0.0.28
- Fix handling of
networkvalue in Python SDK
0.0.27
- 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
0.0.26
- Use more raw JSON-RPC calls in CLI
0.0.25
- 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
0.0.24
- Add new CLI command:
keyfile - Add
keyfilenpm script to starter projects - Add
repositoryfield to agent manifest
0.0.23
- Transition to Polygon agent registry
- Provide default value for
agentRegistryJsonRpcUrl - Fix agent existence check
0.0.22
- 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
0.0.21
- Improve
initcommand to ensure that keystore folder exists
0.0.20
- Fix CLI keyfile resolution
0.0.19
- 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
0.0.18
- Fix published npm artifact
- Add npm script to ensure we build before publishing
0.0.17
- 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
0.0.16
- 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
0.0.15
- Update Typescript starter project npm scripts to build before running
0.0.14
- Add unit tests to Python starter project
- Fix
hex_to_intPython SDK convenience method - Fix Typescript starter project Dockerfile
0.0.13
- Update Python starter project requirements.txt
- Improve Python error handling
0.0.12
- 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
0.0.11
- 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
0.0.10
- Update
jesttype definitions to v27.0.1
0.0.9
- 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
0.0.8
- 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
0.0.7
- 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
0.0.6
- Use new agent registry contract
0.0.5
- Hardcode scanner poolId
- Rename
ipfsGatewayAuthHeaderconfig property toipfsGatewayAuth - Add
publishnpm script to starter project
0.0.4
- Remove .npmignore file after initializing starter project
0.0.3
- 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
0.0.2
- Update
initto use existing keyfile if one exists (instead of always creating new one) - Update starter project package.json to use
forta-agentnpm package
0.0.1
- Initialize repository
- Initialize CLI commands:
init,runandpublish - Initialize Javascript and Typescript SDK
- Initialize Javascript and Typescript high gas starter project
