diff --git a/packages/ic-management/src/utils/transform.utils.ts b/packages/ic-management/src/utils/transform.utils.ts index be32f23e..54bc71f1 100644 --- a/packages/ic-management/src/utils/transform.utils.ts +++ b/packages/ic-management/src/utils/transform.utils.ts @@ -1,6 +1,6 @@ import type { ActorConfig, CallConfig } from "@dfinity/agent"; import { Principal } from "@dfinity/principal"; -import { nonNullish } from "@dfinity/utils"; +import { fromNullable, nonNullish } from "@dfinity/utils"; type CallTransform = Required["callTransform"]; @@ -22,6 +22,7 @@ export const transform: CallTransform | QueryTransform = ( args: (Record & { canister_id?: unknown; target_canister?: unknown; + specified_id?: [] | [unknown]; })[], _callConfig: CallConfig, ): { effectiveCanisterId: Principal } => { @@ -33,6 +34,14 @@ export const transform: CallTransform | QueryTransform = ( nonNullish(first.target_canister) ) { return { effectiveCanisterId: Principal.from(first.target_canister) }; + } else if ( + methodName === "provisional_create_canister_with_cycles" && + nonNullish(first.specified_id) && + nonNullish(fromNullable(first.specified_id)) + ) { + return { + effectiveCanisterId: Principal.from(fromNullable(first.specified_id)), + }; } else if (nonNullish(first.canister_id)) { return { effectiveCanisterId: Principal.from(first.canister_id) }; }