- tests: integration test for l2 fetch task added
- refactor: calculate class hashes in devnet
- feat: add config file and preset configure chain
- refactor: change default chain id and add custom flag to override
- fix: generate a fixed set of public and private keys for devnet
- fix: defaulted l1 gas price in devnet mode
- fix: fixed anvil port value in tests
- fix: flaky tests in gas price worker fixed
- ci: add coveralls report
- test: added tests for declare and deploy transactions
- fix: pending block must always be returned in rpc even if none is in db
- fix: fixed the starting block arg with an ignore_block_order argument
- docs: fixed Docker Compose instructions
- fix: removed unused dependencies with udeps and machete
- feat: add devnet via
--devnet
cli argument - refactor: class import from FGW
- code docs: documented how get_storage_at is implemented
- fix: L1 rpc <=> network mismatch
- feat: rpc versioning
- feat: bumping Starknet version from v0.13.2 to Starknet v0.13.2.1
- fix: replaced old namings with adapted namings
- refactor: block import is now centrally done in a single crate
- tests: add e2e tests for rpc read methods
- tests: add e2e tests for the node
- fix: fixed some readme stuff
- feat: gas price provider added for block production
- feat: l1 sync service
- feat: gas price worker for l1
- test: tests added for eth client and event subscription
- feat: Added l1->l2 messaging
- test: add unitests primitives
- tests: add e2e tests for the node
- tests: add tests for the rpcs endpoints
- fix: pending contract storage not stored properly
- test: add tests crate
db
- fix: --sync-l1-disabled cli option (#225)
- feat: experimental block production and mempool
- refactor: L1BlockMetric is intialized inside the EthereumClient new function
- refactor: BlockMetrics divided in L1BlockMetrics and BlockMetrics
- test: tests added for eth client and event subscription
- feat: add support for Starknet version 0.13.2
- fix(l1): removed free l1 endpoint list
- removed l1.rs from the sync crate and refactored it with alloy inside eth crate
- refactor: removed l1.rs from the sync crate and refactored it with alloy inside eth crate
- refactor: eth client (l1 crate) refactored with alloy
- feat: added l1 crate (eth crate)
- fix(metrics): removed influx and added l2_state_size data
- fix: command to start the Madara client
- refactor: database error unification
- feat: raise file-descriptor limit
- fix: docker
- fix: pending storage & sequencer_provider
- refactor: support pending blocks & db crate
- refactor: new crate exec
- fix(issue): Removed unrelated link from issue template
- feat: adding new readme and github issue templates for codebase reorg
- fix: trace, execution state_diff
- refactor: store compiled contract class
- fix: rate limit on classes
- refactor: use Felt in DB
- fix: fix sepolia by updating bonsai-trie
- feat(class): change class definition storage
- fix: pending block sync
- fix: transaction traces
- feat: store tx receipts
- refactor: new type StarknetVersion
- refactor: update starknet-rs with Felt
- fix(rpc): fixed block not found error on get_class method
- fix (rpc): get_transaction_status
- fix(cleanup): clean up around the Cargo.toml files, error handling and cli arguments
- fix(db): fault tolerance (database is not corrupted when the node is unexpectedly shut down / killed)
- fix(rpc): fixed state update deserialization
- fix(hashes): fixed tx by hash retrieval
- fix(logs): fixed logs and get_state_update
- refactor: remove primitives/felt
- refactor: move convert.rs to felt_wrapper.rs
- fix(decode): fix mapping db decoding
- feat: store reverted txs hashes
- feat(l1): added l1 free rpc url if none is provided
- cleanup: clean DB statics
- refactor: improve compatibility without forks
- fix(metrics): fixed some metrics endpoints
- fix(metrics): fix prometheus endpoint port
- fix(hashes): Fix invoke tx hashes for version v3
- fix: re-add prometheus, doc cli args, log format
- fix(program): Changed visibility of program serializer + archived
- fix(classes): remove the classes ordenation to allow fork rebasements
- fix(felt): enforce Felt type as much as possible into compute_hash.rs
- fix(logs): fixed some logs and others
- fix(rpc): fixed block storage column
- chore: update dependencies
- fix(hashers): cleaned hashers using types core hashers and Felt
- refactor: remove substrate block storage
- feat(infra): Added boilerplate to deploy a grafana/prometheus dashboard
- refacor: use db hash
- refactor: l2-sync
- refactor: remove crate mp-mapping-sync
- fix(rpc): get_nonce
- fix(rpc): get_class
- refactor: mapping db
- perf(db): contract key history now using rocksdb iterators for history
- fix(root): Cleaned state root commitments crate
- fix(hash): declare tx v0 hash computation
- perf(db): db contract history parallel fetching and batching
- remove RuntimeApi on RPC
- feat(metrics): Added sync time metrics
- refactor: using const and OnceCell instead of lazy_static
- refactor: remove crate mp-storage
- feat(infra): corrected dockerfile + docker-compose
- fix(rpc): error handling
- fix(lib): updated core libs to match oss
- fix: state root - replaced_classes commit
- feat: fetch block and state update in only one request
- feat: added madara launcher script
- fix: creation of the block context
- fix: is_missing_class
- fix: state root - replaced_classes
- feat(db): backups
- fix: state root for nonce
- fix: store the first history in storage ket
- perf: improved perfs with parallelized iteration over tx hashes cache
- fix: graceful shutdown of rocksdb on ctrl+c
- fix: better error handling around l1 and l2 sync
- perf: compile with target_cpu=skylake by default
- perf: storage key with encode
- fix: bloc context blockifier
- feat: up blockifier to v0.6.0-rc.2
- fix: change bonsai-trie fork location
- refactor: remove L1HandlerTxFee
- feat: up blockifier to v0.6.0-rc.2
- refactor: remove L1HandlerTxFee
- refactor: remove blockifier dependencie
- perf: convert blocks in parallel
- feat(commitments): Joined hash computation in event and tx commitments
- feat(l2 sync): polling to get new blocks once sync has caught up with the chain
- perf: store key
- fix: sync, remove
unwrap
in storage - fix(classes): Fixed classes on the RPC level by adding ordering and complete deserialisation
- fix: class update
- feat: store key/value in
--disble-root
mode - fix: storage nonce and key/value
- fix: class and store updates and block desync after ctrl+c
- fix: compile without libm
- fix: genesis state_update
- refactor: optimize get_class_at
- fix: crash build genesis on restart
- fix(classes): Fixed sierra exception on block 31625 and added --starting-block arg
- fix(db): with new implementation ContractStorage
- fix: fee_type for
simulate_transactions
rpc call - feat(rocksdb): replaced most async database operations iwth multigets and batched inserts
- fix: get_state_update with new storage
- up: starknet-rs
- fix: exec on receipt
- feat(RPC): refacto
trace_transaction
andtrace_block_transaction
- fix(proposer_factory): Removed and clean a lot of stuff on Client side, mostly node crate
- feat(storage): removed the use of
BonsaiStorage
logs - feat(storage): removed dependance on
StateUpdateWrapper
- feat(storage): state diff are now stored for each block
- CI: fix toolchain
- CI: add
cargo test
on PR - refactor: remove dead code on
Struct Starknet<..>
- fix: verify_l2
- feat(rpc): remove duplicated code, add mod 'utils'
- feat(storage): started migrating storage to the bonsai-lib
- fix: fix crashing cases on
get_block_with_receipts
- fix: fix get_events minor issues
- fix: l1HandlerTx computed for commit
- refactor: optimise get_events RPC
- fix(root): fixed state commitments broken due to genesis loader
- feat(docker): add dockerfile and docker-compose
- fix: fix implementation
get_storage_at()
forBlockifierStateAdapter
- fix(sync): Fix end condition of the l2 sync
- fix(rpc): fix chain id method for mainnet
- fix(class): Fix Sierra classes conversion (missing abis)
- fix(compute): Fixed prepare_data_availability_modes computation
- feat(rpc): add pending block to
get_block_with_receipts
rpc call - chore: update bonsai-trie (benefit from perf boost)
- feat(rpc): add
get_block_with_receipts
rpc call - refactor: remove crate mp-state, mp-fee, mp-messages
- fix(class): Fix class conversions to support legacy Sierra versions
- feat: rebase blockifier
- feat(check): Added a state root check to ensure synced compatibility
- feat(metrics): Add prometheus metrics for mapping worker
- feat(storage): finished migrating contract storage to our backend bonsai trie dbs
- feat(storage): set up type-safe bonsai storage abstractions for usage in RPC
- fix(root): fix state root computation
- refactor: refactor mc-db crate
- feat(api_key): api key passed to FetchConfig correctly
- feat(api_key): Added support for --gateway-api to avoid rate limit from the gateway
- fix(latest): Retrieve latest synced block via internal client
- perf(l2 sync): parallelize commitment computation and refactor part of l2 io sync
- refactor: rpc methods and removed rpc-core
- feat: add an optional TUI dashboard
- feat(bonsai): Bumped bonsai lib to latest opti
- refactor(generic): reduced runtime dependence on generics
- fix(sync): Cleaned mc-sync isolating fetch process + added shared SyncStatus
- feat(self-hosted): host our own runner
- fix(deps): Removed unused dependencies
- feat(multi-trie): Added support for persistent storage tries
- feat(pending): added support for pending blocks in RPC requests
- perf(l2 sync): parallel fetching of blocks, classes, state updates
- fix l1 thread to reflect correct state_root, block_number, block_hash
- fix: remove gas_price and update starknet-rs from fork (temporary fix)
- fix(root): got state root to work (does not support class root yet)
- refactor(substrate_hash): Substrate hash is now retrieved via rpc client in
l2.rs
- fix(worflows): fix toolchain and cache issue
- feat: Removal of the hardcoded mainnet configuration
- refactor: pass new CI
- fix(workflows): Fix madara CI
- feat(rpc): add_invoke_tx, add_deploy_account_tx, add_declare_tx
- feat(rpc): tx_receipt, re-execute tx
- feat(script): added CI scripts for starting madara and comparing JSON RPC calls
- perf(verify_l2): parallelized l2 state root update
- perf(state_commitment): parallelized state commitment hash computations
- fix(L1): fix l1 thread with battle tested implementation + removed l1-l2
- fix: update and store ConfigFetch in l2 sync(), chainId rpc call
- fix: get_events paging with continuation_token
- fix(class): #125
- fix(getStorageAt): #28
- fix(genesis): #107
- fix(class): #32 #33 #34
- fix(class): #116
- feat(class): download classes from sequencer
- feat: update and store highest block hash and number from sequencer
- feat: store events in block, return events in call get_transaction_receipt
- fix: updating outdated links to external resources in documentation
- feat(client/data-availability): implement custom error handling
- fix: get_block_by_block_hash then default rather than error
- feat(rpc): added
get_state_update
real values from DA db - feat: add transparent representation to
Felt252Wrapper
- feat(rpc/trace_api): add
trace_block_transaction
- chore(db): changed the way hashes are encoded
- feat(rpc/trace_api): add
trace_transaction
- chore: release v0.7.0
- refacto: remove abusive
TryInto
impl - dev: optimize tx trace creation
- dev: make Madara std compatible
- CI: fix taplo version
- chore: add cache usage for
getEvents
andgetTransactionReceipt
- fix: cairo1 contracts should be identified by their sierra class hash
- fix(cli): repair broken cli for da conf
- feat(client): on
add_declare_transaction
store sierra contract classes in the madara backend - chore: use struct error in client/db
- fix: don't ignore Sierra to CASM mapping in genesis config
- refacto: early exit txs fee estimation when one fails
- dev: fix linter warning in README.md
- fix: remove waiting loop from
getTxReceipt
- feat: types in
mp-transactions
impl a method to get their version - feat: make L1 gas price a
const
of theRuntimeConfig
- fix: broken class hashes and contracts in genesis
- refactor: rename LAST_SYNCED_L1_BLOCK to be more clear
- chore: add headers to da calldata, fix eth da in sovereign mode
- refacto(simulate_tx): move logic to the client
- chore: added ca-certificate in DockerFile for SSL related issues
- chore(primitives/commitment): remove crate
- chore(primitives/block/header): remove starknet-trie dependent fields
- refacto(primitives/db): add a temporary way to get a fake global state root
- feat(rpc): add starknet_version and eth_l1_gas_fee on block header
- fix(spec_version): spec version now returning 0.5.1
- chore: feature flags for avail and celestia DA
- feat(rpc): added support for v0.5.1 JSON-RPC specs
- feat(rpc): added ordered messages/events in trace fields
- feat(rpc): support for starknet.rs v0.5.1 version
- feat(rpc): added execution resources in trace fields
- feat(rpc): added state diff field in trace fields
- refactor: removed benchmarking folder and traces of CI pipeline
- fix: decouple is_query into is_query and offset_version
- feat: add sierra to casm class hash mapping to genesis assets
- chore: remove ArgentMulticall from genesis assets
- feat: remove
seq_addr_updated
fromGenesisData
- chore: added prometheus metrics for da layer
- chore: bump celestia rpc crate version
- fix(DA): run the proof first then the state update
- fix:
prove_current_block
is called afterupdate_state
- ci: add foundry ci task to push workflow
- fix: first tx for non deployed account is valid
- fix: incorrect base url for fetching config
- feat: add predeployed accounts to genesis state
- feat(rpc): Added starknet_simulateTransactions
- fix: Change serialization of bitvec to &[u8] in merkle tree to avoid memory uninitialized
- chore: change SCARB config version for foundry CI
- feat(da): update da calldata encoding to v0.11.0 spec, da conf examples, da conf flag, da-tests in CI
- refactor: use
map
inestimate_fee
to stop computation on error - fix(node/commands): md5 are also checked when running setup --from-local
- feat(data-availability): extend eth config with poll interval
- fix(snos-output): expose snos codec, remove unused
get_starknet_messages
runtime method, and unnecessary mp-snos-output dependencies - feat(program-hash): add new pallet constant for Starknet OS progam hash; expose runtime getter method; add dedicated crate to manage versions
- feat(runtime): expose fee token address getter method
- feat(settlement): run client thread responsible for pushing state updates and messaging on Ethereum
- feat(settlement): starknet core contract tests with anvil sandbox
- fix(rpc-test): incorrect node url
- feat(settlement): e2e test with Madara node settling on Ethereum contract
- refactor: use
map
inestimate_fee
to stop computation on error - fix:
tempdir
crate has been deprecated; usetempfile
instead - dev: add avail and celestia crates behind a feature flag
- dev: replace md5 with sha3_256 hash function
- feat: fixing getNonce Rpc Call and adding a new test
- refactor: use Zaun crate for Starknet core contract bindings
- refactor: use Anvil sandbox from Zaun crate
- feat(rpc): estimateMessageFee RPC call implementation
- chore: release v0.6.0
- refacto: substrate/starknet names in rpc library
- feat(rpc): Added starknet_getTransactionStatus and removed starknet_pendingTransactions
- feat(rpc): add starknet_specVersion rpc + added test for future support
- docs: Added v0.6.0-rc5 documentation above the rpc method functions
- dev(deps): bump starknet rs, use Eq for EmmitedEvents comparaison
- test(rust-rpc-test): use undeclared contracts for declare transactions testing
- build: update blockifier, fix divergent substrat block hash
- chore: remove tests that run in wasm and native, only wasm from now
- chore: split StarknetRpcApi trait in two, like in openRPC specs
- refacto: move starknet runtime api in it's own crate
- chore: update README.md and getting-started.md
- chore: remove crates that have been copy-pasted from plkdtSDK
- feat(rpc): return deployed contract address and actual fee in transaction receipt
- fix: Wait for 1 minute for transaction to be processed in get_transaction_receipt rpc
- ci: Fix starknet foundry sncast not found
- fix: Ensure transaction checks are compatible with starknet-rs
- ci: Run Starknet Foundry tests against Madara RPC
- fix: add name, symbol and decimals to fee token storage
- fix: dependencies for dockerfile and binaries
- docs: add translation of madara beast article to spanish
- chore: update starknet-js version in faucet-setup docs
- dev(compilation): add incremental compilation
- feat(rpc): add support for bulk estimate fee
- feat: add argent multicall contract to genesis
- chore(data-availability): update avail-subxt to version 0.4.0
- fix(ci): setup should fetch files from local config
- chore: deprecate
madara-app
andmadara-dev-explorer
modules - chore(data-availability-avail): implement fire and forget, and add ws reconnection logic
- chore: update
polkadot-sdk
torelease-polkadot-v1.3.0
- feat: fallback default file for DA and Settlement configuration files
- chore: release v0.5.0
- test: add transaction pool logic unit tests
- feat(client): spawn a task that listen to storage changes and build the resulting commiment state diff for each block
- dev(StarknetRPC): log error received from node before mapping to InternalServerError
- fix: change 'nonce too high' to log in debug instead of info
- chore: update deps, vm ressource fee cost are now FixedU128, and stored in an hashmap
- ci: change jobs order in the workflow
- ci: run integrations tests in the same runner as build
- ci: replace ci cache with rust-cache
- fix(transactions): remove
nonce
field from InvokeV0 tx - feat(transactions): don't enforce ordering in validate_unsigned for invokeV0
- test(pallet): add function to get braavos hash
- fix: event commitment documentation typo
- ci: added testing key generation in the ci
- fix(starknet-rpc-test): init one request client per runtime
- test: validate Nonce for unsigned user txs
- fix: fixed declare V0 placeholder with the hash of an empty list of felts
- feat(cli):
run
is the by default command when running themadara
bin - refacto(cli):
run
andsetup
commands are defined in their own files - refacto(cli):
run.testnet
argument removed in favor of the substrate nativechain
arg - feat(cli):
run.fetch_chain_spec
argument removed in favor of the substrate nativechain
arg - feat(cli):
setup
require a source file, either from an url or a path on the local filesystem - chore(cli): use
Url
,Path
andPathBuf
types rather thanString
- refacto(cli): moved the pallet/chain_spec/utils methods to the node crate
- feat(cli):
madara_path
arg has been remove, we use the substrate nativebase_path
arg instead - feat(cli): sharingan chain specs are loaded during the compilation, not downloaded from github
- refacto(pallet/starknet):
GenesisLoader
refactored asGenesisData
+ abase_path
field - feat(cli): for
run
param--dev
now imply--tmp
, as it is in substrate - test(starknet-rpc-test): run all tests against a single madara node
- fix(service): confusing message when node starts (output the actual sealing method being used)
- refactor(sealing): how the sealing mode is passed into runtime
- feat(sealing): finalization for instant sealing
- test(starknet-js-test): run basic starknetjs compatibility tests again the madara node
- feat(cache-option): add an option to enable aggressive caching in command-line parameters
- chore: release v0.4.0
- feat: better management of custom configurations for genesis assets
- feat: use actual vm resource costs
- fix: add setup and run for rpc tests
- fix: fix clap for run command
- fix: add
madara_path
flag for setup command - fix: add official references to configs files
- fix: cargo update and
main
branch prettier fix - fix: fix sharingan chain spec
- fix: update madara infra to main branch
- fix: update
Cargo.lock
- fix: rpc test failing
- refactor: exported chain id constant in mp-chain-id crate and added one for SN_MAIN
- ci: disable pr close workflow
- ci: add ci verification for detecting genesis changes and config hashes
- test: add e2e test for
estimate_fee
- chore: release v0.3.0
- chore: big transaction type refactoring
- chore: split
primitives
crates into multiple smaller crates - chore: improve logging about transaction when nonce is too high
- chore: add real class hash values for genesis config
- fix: use specific commit for avail and celestia
- fix: change dep of rustdoc on push
- fix: initial_gas set to max_fee and fixed fee not being charged when max_fee=0
- fix: correct value of compiled_class_hash in RPCTransaction
- fix: std feature import in transactions crate
- fix: replace all calls to
transmute
by callsfrom_raw_parts
- fix: estimate_fee should make sure all transaction have a version being 2^128 + 1 or 2^128+2 depending on the tx type
- feat: modify the hash_bytes functions in
poseidon
andpedersen
for dynamic data length - feat: print development accounts at node startup
- feat: unification of the DA interface
- feat: bump starknet-core to 0.6.0 and remove InvokeV0
- feat: use resolver 2 for cargo in the workspace
- feat: impl tx execution and verification as traits
- perf: reduce the amount of data stored in the runtime and use the Substrate block to as source of data in the client
- perf: use perfect hash function in calculate_l1_gas_by_vm_usage
- build: restructure code for rust latest version
- build: bump rustc nightly version to 1.74 date
- buid: add rust-analyzer to toolchain components
- ci: scope cache by branch and add cache cleanup
- ci: increase threshold for codecov to 1%
- test: add
starknet-rpc-test
crate to the workspace - test: add test to check tx signed by OZ account can be signed with Argent pk
- buid: add rust-analyzer to toolchain components
- ci: increase threshold for codecov to 1%
- replace all calls to
transmute
by callsfrom_raw_parts
- big transaction type refactoring
- impl tx execution and verification as traits
- reduce the amount of data stored in the runtime and use the Substrate block to as source of data in the client
- perf: use perfect hash function in calculate_l1_gas_by_vm_usage
- chore: add tests for tx hashing
- split
primitives
crates into multiple smaller crates - fix: std feature import in transactions crate
- chore: improve logging about transaction when nonce is too high
- fix: rpc tests and background node run
- test: add tests for simulate tx offset
- test: add tests for tx hashing
- fix: bring back messages in transaction receipts
- feat: starknet os program output primitive
- add-contributors:
0xAsten
,m-kus
,joaopereira12
,kasteph
- ci: add verification if build-spec is working
- ci: added wasm to test
- ci: disable benchmark for pushes and pr's
- ci: fix docker and binaries build
- ci: don't enforce changelog on PR's with label
dependencies
- doc: added translation of madara beast article.md to portuguese and russian
- doc: app chain template added in README
- fix: RPC getClassAt cairo legacy program code encoding
- fix: build-spec not working by setting the madara-path always and fetching relevant files
- fix: events are emitted in correct sequential order
- fix: expected event idx in continuation tokens in test responses
- fix: update RPC URL to use localhost instead of 0.0.0.0 in hurl.config file
- fix: update the default port for running Madara locally in getting-started.md file from 9933 to 9944.
- fix: replace the 0 initial gas value with u128::MAX because view call entrypoints were failing
- chore: remove global state root
- chore: cairo-contracts compilation scripts & docs are updated, cairo_0 contracts recompiled
- chore: rebase of core deps and 0.12.1
- ci: rm codespell task and rm .codespellignore
- feat: refactor flags on tests
- feat: fetch config files from gh repo
- refactor: remove config files from the code
- ci: stop closing stale issues
- ci: reactivate changelog enforcement
- cli: change dev flag behaviour and created alias for base and madara path
- configs: fix genesis.json refs to link the config folder
- ci: downgraded windows runner to windows-latest
- ci: added windows binaries build and upload the binaries to the release page
- ci: add
CHANGELOG.md
and enforce it is edited for each PR onmain
- fix: removed
madara_runtime
as a dependency in the client crates and make errors more expressive - fix: state root bug fix where the tree was stored in runtime before being committed
- feat: add a
genesis_loader
for the node and mocking - feat: add
madara_tsukuyomi
as a submodule - branding: use new logo in the README
- dev: Get the block status from the actual block in get_block_with_tx_hashes
- fix: l1-l2 messaging
- dev : clean contracts and compiled files