Skip to content

agent err: DerKeyLengthMismatch { expected: 133, actual: 222 } #541

@q2333gh

Description

@q2333gh

dfx start is running:
and dfx deploy backend ok
code in canister:

#[query(guard = "user_owner_guard")]
pub fn greet_test()->String{
  ic_cdk::println!("got greet_test() call");
  return "hello agent!".to_string();
}
async fn greet_test(agent: Agent, canister_id: Principal) -> String {
  let response = agent
    .query(&canister_id, "greet_test")
    .with_arg(candid::encode_one(()).unwrap())
    .call()
    .await;
  match response {
    Ok(data) => {
      let ret = String::from_utf8(data).unwrap();
      println!("{}", ret);
      return ret;
    }
    Err(e) => {
      let ret = format!("####An error occurred: {:?}", e);
      println!("{}", ret);
      return ret;
    }
  }
}

running in ic mode perfect ok. but local agent fails:

async fn init_agent() -> (Principal, Agent, String) {
  let controller = String::from("btwlz");
  let args: Vec<String> = env::args().collect();
  let online_mode = &args[1];

  let url_local = String::from("http://127.0.0.1:40010");
  let url_ic = String::from("https://ic0.app/");

  let canister_id_local =
    Principal::from_text("bkyz2-fmaaa-aaaaa-qaaaq-cai").unwrap();
  let canister_id_ic =
    Principal::from_text("v7g7o-oiaaa-aaaag-qcj3q-cai").unwrap();
  let url;
  let canister_id;

  if online_mode == "0" {
    println!("local network mode");
    url = url_local;
    canister_id = canister_id_local;
  } else if online_mode == "1" {
    println!("ic network mode");
    url = url_ic;
    canister_id = canister_id_ic;
  } else {
    panic!("args input err!!");
  }

  // !INFO this need use input passwd in terminal if have passwd. takes about 3s
  // to run
  let identity = get_dfx_identity(&controller);
  let agent = build_ic_agent(url, identity).await;
  (canister_id, agent, online_mode.to_string())
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions