From 8a77f91e8d9ede9d33070eaf9f43812d15d0dd06 Mon Sep 17 00:00:00 2001 From: AIFlow_ML Date: Fri, 31 Jan 2025 18:30:17 +0700 Subject: [PATCH] Fixed the initial error in wallet and multiple other typings. I left 2 because not possibler to restore them fast. (#3010) Co-authored-by: tcm390 <60634884+tcm390@users.noreply.github.com> --- .../plugin-icp/src/actions/createToken.ts | 18 ++++++++------- packages/plugin-icp/src/providers/wallet.ts | 22 +++++++++++++++---- .../src/utils/common/types/variant.ts | 2 +- 3 files changed, 29 insertions(+), 13 deletions(-) diff --git a/packages/plugin-icp/src/actions/createToken.ts b/packages/plugin-icp/src/actions/createToken.ts index bc927ec129..17b6619668 100644 --- a/packages/plugin-icp/src/actions/createToken.ts +++ b/packages/plugin-icp/src/actions/createToken.ts @@ -72,7 +72,7 @@ async function generateTokenLogo( height: 512, count: 1, }, - runtime as any + runtime ); if (result.success && result.data && result.data.length > 0) { @@ -96,7 +96,7 @@ export const executeCreateToken: Action = { ], description: "Create a new meme token on PickPump platform (Internet Computer). This action helps users create and launch tokens specifically on the PickPump platform.", - validate: async (runtime: IAgentRuntime, message: Memory) => { + validate: async (_runtime: IAgentRuntime, message: Memory) => { const keywords = [ "pickpump", "pp", @@ -137,14 +137,16 @@ export const executeCreateToken: Action = { type: "processing", }); - if (!state) { - state = (await runtime.composeState(message)) as State; + // Initialize or update state + let currentState = state; + if (!currentState) { + currentState = (await runtime.composeState(message)) as State; } else { - state = await runtime.updateRecentMessageState(state); + currentState = await runtime.updateRecentMessageState(currentState); } const createTokenContext = composeContext({ - state, + state: currentState, template: createTokenTemplate, }); @@ -200,9 +202,9 @@ export const executeCreateToken: Action = { type: "success", }; callback?.(responseMsg); - } catch (error: any) { + } catch (error: unknown) { const responseMsg = { - text: `Failed to create token: ${error.message}`, + text: `Failed to create token: ${error instanceof Error ? error.message : "Unknown error"}`, action: "CREATE_TOKEN", type: "error", }; diff --git a/packages/plugin-icp/src/providers/wallet.ts b/packages/plugin-icp/src/providers/wallet.ts index a3933561b5..030221378b 100644 --- a/packages/plugin-icp/src/providers/wallet.ts +++ b/packages/plugin-icp/src/providers/wallet.ts @@ -25,7 +25,11 @@ export class WalletProvider { if (privateKeyBytes.length !== 32) { throw new Error("Invalid private key length"); } - return Ed25519KeyIdentity.fromSecretKey(privateKeyBytes); + const arrayBuffer = privateKeyBytes.buffer.slice( + privateKeyBytes.byteOffset, + privateKeyBytes.byteOffset + privateKeyBytes.length + ); + return Ed25519KeyIdentity.fromSecretKey(arrayBuffer); } catch { throw new Error("Failed to create ICP identity"); } @@ -62,13 +66,23 @@ export class WalletProvider { }; } +// Add interface for the wallet provider return type +interface ICPWalletResponse { + wallet: WalletProvider | null; + identity: Ed25519KeyIdentity | null; + principal: string | null; + isAuthenticated: boolean; + createActor?: typeof WalletProvider.prototype.createActor; + error?: string; +} + // Add the new provider instance export const icpWalletProvider: Provider = { async get( runtime: IAgentRuntime, _message: Memory, _state?: State - ): Promise { + ): Promise { try { const privateKey = runtime.getSetting( "INTERNET_COMPUTER_PRIVATE_KEY" @@ -86,13 +100,13 @@ export const icpWalletProvider: Provider = { isAuthenticated: true, createActor: wallet.createActor, }; - } catch (error: any) { + } catch (error: unknown) { return { wallet: null, identity: null, principal: null, isAuthenticated: false, - error: error.message, + error: error instanceof Error ? error.message : "Unknown error", }; } }, diff --git a/packages/plugin-icp/src/utils/common/types/variant.ts b/packages/plugin-icp/src/utils/common/types/variant.ts index cb63399409..eb8fb2c5b5 100644 --- a/packages/plugin-icp/src/utils/common/types/variant.ts +++ b/packages/plugin-icp/src/utils/common/types/variant.ts @@ -18,7 +18,7 @@ type Variant6 = Record< // Unwrap and extract only the key export const unwrapVariantKey = ( - v: Record + v: Record ): T => { const keys = Object.keys(v); if (keys.length === 0) throw new Error("variant must has a key");