diff --git a/packages/cli/src/sdk/abi.ts b/packages/cli/src/sdk/abi.ts index cfb092d3..54e534f4 100644 --- a/packages/cli/src/sdk/abi.ts +++ b/packages/cli/src/sdk/abi.ts @@ -158,6 +158,13 @@ export const erc8004Abi = [ // --------------------------------------------------------------------------- export const mcv2BondAbi = [ + { + type: "function", + name: "creationFee", + stateMutability: "view", + inputs: [], + outputs: [{ name: "", type: "uint256" }], + }, { type: "function", name: "getRoyaltyInfo", diff --git a/packages/cli/src/sdk/client.ts b/packages/cli/src/sdk/client.ts index 3ba0550d..64b59b0c 100644 --- a/packages/cli/src/sdk/client.ts +++ b/packages/cli/src/sdk/client.ts @@ -230,12 +230,20 @@ export class PlotLink { const contentCid = await uploadWithRetry(metadata, key, this.filebase!); const contentHash = hashContent(content); + // MCV2_Bond requires a creation fee as msg.value when minting a new token + const creationFee = await this.publicClient.readContract({ + address: this.mcv2Bond, + abi: mcv2BondAbi, + functionName: "creationFee", + }) as bigint; + const { request } = await this.publicClient.simulateContract({ account: this.walletClient.account!, address: this.storyFactory, abi: storyFactoryAbi, functionName: "createStoryline", args: [title, contentCid, contentHash, hasDeadline], + value: creationFee, }); const txHash = await this.walletClient.writeContract(request);