davek
February 8, 2022, 6:07am
21
Hello!
I have been having some difficulty with Devnet. I was hoping that I might get some direction. I will set out detail below. There may be a simple answer to my issue. I have just begun experimenting with Devnet to assist with developing for StarkNet. To start with, I have just used contract.cairo from the Hello, StarkNet tutorial as a starting point. It would appear that I can deploy the contract successfully. However, when I come to invoke the increase_balance function the invocation fails with the following error:
No contract at the provided address (0x076b1b7dc0ff2f07e02f670f21e949ba5a3db0f3e7070859ec454c9901e122a1)
I am using the Devnet docker image. This is running the image and the output from the transactions below:
docker run -it -p 127.0.0.1:5000:5000 shardlabs/starknet-devnet
Running on all addresses.
WARNING: This is a development server. Do not use it in a production deployment.
Running on http://172.17.0.2:5000/ (Press CTRL+C to quit)
172.17.0.1 - - [08/Feb/2022 04:32:52] âPOST /gateway/add_transaction HTTP/1.1â 200 -
172.17.0.1 - - [08/Feb/2022 04:34:00] âGET /feeder_gateway/get_transaction_status?transactionHash=0x0093bb167b667a00828fa2be1c08bf6b9f78e4d633fed2776ad16c73679f32c0 HTTP/1.1â 200 -
172.17.0.1 - - [08/Feb/2022 04:34:54] âGET /feeder_gateway/get_block?blockHash=0x038b3c5078754e95fe70390814b44c52ee3d04a13d88d3a1ae62fc143b7c7238 HTTP/1.1â 200 -
172.17.0.1 - - [08/Feb/2022 04:36:04] âPOST /feeder_gateway/call_contract?blockNumber=pending HTTP/1.1â 500 -
Deployment of the contract:
starknet deploy --feeder_gateway_url http://127.0.0.1:5000/feeder_gateway/ --gateway_url http://127.0.0.1:5000/gateway/ --contract ./build/contract_compiled.json
Deploy transaction was sent.
Contract address: 0x03f2ed603357926a00c1ccf0151a0a5c634335bb1a16d26d5760037d91143b94
Transaction hash: 0x0093bb167b667a00828fa2be1c08bf6b9f78e4d633fed2776ad16c73679f32c0
Transaction status:
starknet tx_status --feeder_gateway_url http://127.0.0.1:5000/feeder_gateway/ --gateway_url http://127.0.0.1:5000/gateway/ --hash 0x0093bb167b667a00828fa2be1c08bf6b9f78e4d633fed2776ad16c73679f32c0
{
âblock_hashâ: â0x038b3c5078754e95fe70390814b44c52ee3d04a13d88d3a1ae62fc143b7c7238â,
âtx_statusâ: âACCEPTED_ON_L2â
}
Contract invocation and error:
starknet invoke --feeder_gateway_url http://127.0.0.1:5000/feeder_gateway/ --gateway_url http://127.0.0.1:5000/gateway/ --address 0x03f2ed603357926a00c1ccf0151a0a5c634335bb1a16d26d5760037d91143b94 --abi ./build/contract_abi.json --function increase_balance --inputs 1234
Got BadRequest
Traceback (most recent call last):
File â/Users/david/cairo_venv/lib/python3.7/site-packages/services/external_api/base_client.pyâ, line 116, in _send_request
raise BadRequest(status_code=response.status, text=text)
services.external_api.base_client.BadRequest: HTTP error ocurred. Status: 500. Text: No contract at the provided address (0x076b1b7dc0ff2f07e02f670f21e949ba5a3db0f3e7070859ec454c9901e122a1).
Error: BadRequest: HTTP error ocurred. Status: 500. Text: No contract at the provided address (0x076b1b7dc0ff2f07e02f670f21e949ba5a3db0f3e7070859ec454c9901e122a1).
The above works correctly using alpha-goerli but not in devnet. Any ideas what I am doing wrong? Or, is there a known issue causing this error?
20 Likes
Hi, thanks for reaching out.
Whatâs your Starknet version and whatâs your Docker image tag?
18 Likes
Actually your problem is probably caused by interacting with your contract.cairo through a wallet. This is done implicitly when youâre using Starknet CLI with STARKNET_WALLET
variable set. The address thatâs reported as missing is actually the address of your account which is deployed only on alpha-goerli (as witnessed here: StarkNet - Alpha Block Explorer ), thatâs why it works only there.
You can either use the --no_wallet
flag when running starknet invoke
or you can unset STARKNET_WALLET
.
Also an important note, Devnet currently doesnât support interaction through Accounts; weâre waiting for the next cairo-lang
version, which will hopefully have what we need to support Accounts.
EDIT: corrected the flag after @davek âs note
18 Likes
davek
February 8, 2022, 10:17pm
24
Thanks @FabijanC I will try that and report back.
20 Likes
davek
February 8, 2022, 11:14pm
25
Thanks @FabijanC that was my problem. I thought that I should also note, in case others read this thread, that the correct flag is --no_wallet
not --no-wallet
.
22 Likes
New version of starknet-devnet
(v0.1.15) has been released:
Include postman L1 <> L2 interaction with local test networks
2 new HTTP POST
endpoints added: /postman/load_l1_messaging_contract
and /postman/flush
Details of usage specified in Readme
23 Likes
New version of starknet-devnet
(v0.1.16) has been released:
Support cairo-lang version 0.7.1.
Endpoints for new parts of the API (get_full_contract
and get_state_update
) not yet introduced.
22 Likes
New starknet-devnet
version (v0.1.17) has been released:
You can now save and load your Devnet instance to save setup time: docs .
Supported starknet get_full_contract
(get_state_update
still pending).
Improved L1-L2 communication (postman)
Dump:
$ starknet-devnet --dump-path <PATH> --dump-on <WHEN>
Load:
$ starknet-devnet --load-path <PATH>
21 Likes
New starknet-devnet
version (v0.1.18) has been released:
Support devnet dumping/loading on macOS.
Support starknet get_state_update
(command that was introduced with cairo-lang 0.7.1).
19 Likes
New starknet-devnet
version (v0.1.19) has been released:
Reduce Docker image size (635 MB â 232 MB)
Support cairo-lang 0.8.0:
Add estimate_fee endpoint (currently not able to charge accounts with actual fees).
Add get_transaction_trace endpoint.
We plan to change the default port soon and apply some optimization techniques as these are two things users have complained about.
21 Likes
701
March 30, 2022, 3:23pm
31
WOW!!!
so good!!!
amazing!
18 Likes
New starknet-devnet
version (v0.1.20) has been released:
Support cairo-lang 0.8.1.
Performance related optimizations:
Use a faster server container.
Introduce --lite-mode
(skips block and tx hash calculation).
20 Likes
New version of starknet-devnet
(v0.1.21) has been released:
19 Likes
New version of starknet-devnet
(v0.1.22) has been released:
Fixed interaction of Starknet CLI and hardhat plugin when they are using the --wallet
functionality.
Fixed syscall get_block_timestamp
(will not return 0 anymore; more timestamp-related functionality to come)
20 Likes
New version of starknet-devnet
(v0.1.23) has been released:
Enable normal fee estimation through plugin
Add actual_fee
to get_transaction_receipt
response.
18 Likes
New version of starknet-devnet
(v0.2.0) has been released:
Changed default host and port to 127.0.0.1:5050:
This is a BREAKING change
Rationale: issues with docker and mac integration
Reduced deployment time
Introduced ARM Docker images:
Append -arm
to image tag to use the ARM counterpart (e.g. shardlabs/starknet-devnet:0.2.0-arm
)
20 Likes
New version of starknet-devnet
(v0.2.1) has been released:
Adapted to cairo-lang 0.8.2:
Pending block support will be added in future versions.
Introduced speed-up troubleshooting
19 Likes
New version of starknet-devnet
(v0.2.2) has been released:
Introduce timestamp management endpoints (for setting time and increasing time offset: read more )
Fix timestamp support in lite-mode
Include max_fee
in get_transaction
response
Include failure reason in tx_status
and get_transaction
response.
20 Likes
New version of starknet-devnet
(v0.2.3) has been released:
Supported starknet/cairo-lang v0.9.0 features:
declare
- Contract class declaration
get_class_hash_at
get_class_by_hash
Now predeploying a set of prefunded accounts:
Transactions with max_fee set to 0 are still allowed .
Using C++ implementation of pedersen hash for better performance.
Fixed events property of transaction receipts (was missing when used through accounts).
21 Likes
New version of starknet-devnet
(v0.2.4) has been released:
Fixed deployment done with the deploy
syscall.
Added an endpoint for loading dumped Devnet instances: /load
.
Updated the OpenZeppelin implementation used by predeployed accounts.
Added support for JSON-RPC calls: docs .
Redeploying the same contract with the same salt is reintroduced (it was removed, but shouldnât have been as this is a feature of alpha-goerli).
The crypto-cpp-py
dependency was updated to have wheels for more macos versions.
18 Likes