Open2
Dapp開発on ICPのメモ
dfx deploy
を実行したら↓のエラーを吐いて失敗した時の解決策
error: the lock file /home/t4d4/practice/rust/task-management/icp_task_manager/Cargo.lock needs to be updated but --locked was passed to prevent this
If you want to try to generate the lock file without accessing the network, remove the --locked flag and use --offline instead.
エラーメッセージには、--lockedを外し、--offlineを付けて実行と書いてありますが、それだと解決しなかったので、事前にCargo update
を実行してCargo.lockを予め更新してからdfx deploy
を実行したら解決しました。
dfx canister call <Project_Name_backend> <function_name> <args>
でターミナルからバックエンドのキャニスターの関数を呼ぶことが出来る。
dfx deploy
でデプロイした後に出てくるURLからキャニスターのテストが出来るが、それをターミナルからも呼び出せる。
URLを開いたら次のようなエラーが出ていた時や、シェルスクリプト等と組み合わせてテストをする時に使える。
error
An error happened in Candid canister:
D: Server returned an error:
Code: 400 (Bad Request)
Body: Specified ingress_expiry not within expected range: Minimum allowed expiry: 2024-03-05 06:48:14.810369959 UTC, Maximum allowed expiry: 2024-03-05 06:53:44.810369959 UTC, Provided expiry: 2024-03-05 07:14:00 UTC
at gA._requestAndRetry (http://127.0.0.1:4943/index.js:2:26813)
at async gA._requestAndRetry (http://127.0.0.1:4943/index.js:2:26772)
at async gA._requestAndRetry (http://127.0.0.1:4943/index.js:2:26772)
at async gA._requestAndRetry (http://127.0.0.1:4943/index.js:2:26772)
at async http://127.0.0.1:4943/index.js:2:27628
at async Promise.all (index 0)
at async gA.query (http://127.0.0.1:4943/index.js:2:26923)
at async http://127.0.0.1:4943/index.js:2:40509
at async getDidJsFromTmpHack (http://127.0.0.1:4943/index.js:2:317831)
at async fetchActor (http://127.0.0.1:4943/index.js:2:314439)