Skip to content

Commit 2ec46b4

Browse files
committed
chore(core,llm): use string instead MultiAddress
2 parents f4248dd + c96b3af commit 2ec46b4

File tree

6 files changed

+16
-42
lines changed

6 files changed

+16
-42
lines changed

packages/core/src/pallets/assets/transferNative.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import type { Api, KnownChainId } from "@polkadot-agent-kit/common"
2-
import type { MultiAddress } from "@polkadot-api/descriptors"
32

43
import type { Tx } from "../../types"
54

@@ -10,6 +9,6 @@ import type { Tx } from "../../types"
109
* @param amount - The amount to transfer
1110
* @returns The transfer call
1211
*/
13-
export const transferNativeCall = (api: Api<KnownChainId>, to: MultiAddress, amount: bigint): Tx => {
12+
export const transferNativeCall = (api: Api<KnownChainId>, to: string, amount: bigint): Tx => {
1413
return api.tx.Balances.transfer_keep_alive({ dest: to, value: amount })
1514
}

packages/core/src/utils/format.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import type { KnownChainId } from "@polkadot-agent-kit/common"
22
import { getAllSupportedChains, getChainById } from "@polkadot-agent-kit/common"
3-
import { MultiAddress } from "@polkadot-api/descriptors"
43
import * as ss58 from "@subsquid/ss58"
54
import { AccountId } from "polkadot-api"
65

@@ -50,6 +49,3 @@ export function convertAddress(address: string, targetChainId: KnownChainId | nu
5049
}
5150
}
5251

53-
export function toMultiAddress(address: string): MultiAddress {
54-
return MultiAddress.Id(address)
55-
}

packages/llm/src/langchain/transfer.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import type { z } from "zod"
88
import type { TransferToolResult, transferToolSchema } from "../types"
99
import { ToolNames } from "../types/common"
1010
import { toolConfigTransferNative } from "../types/transfer"
11-
import { executeTool, getApiForChain, validateAndFormatMultiAddress } from "../utils"
11+
import { executeTool, getApiForChain, validateAndFormatAddress } from "../utils"
1212
/**
1313
* Returns a tool that transfers native tokens to a specific address
1414
* @param api - The API instance to use for the transfer
@@ -23,7 +23,7 @@ export const transferNativeTool = (
2323
ToolNames.TRANSFER_NATIVE,
2424
async () => {
2525
const api = getApiForChain(apis, chain)
26-
const formattedAddress = validateAndFormatMultiAddress(to, chain as KnownChainId)
26+
const formattedAddress = validateAndFormatAddress(to, chain as KnownChainId)
2727
const parsedAmount = parseUnits(amount, getDecimalsByChainId(chain))
2828
const tx = await submitAndWatchTx(
2929
transferNativeCall(api, formattedAddress, parsedAmount),

packages/llm/src/utils/tools.test.ts

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
11
import { describe, it, expect, vi, beforeEach } from "vitest"
2-
import { validateAndFormatAddress, validateAndFormatMultiAddress } from "./tools"
2+
import { validateAndFormatAddress } from "./tools"
33
import { InvalidAddressError } from "../types"
44

55
vi.mock("@polkadot-agent-kit/core", () => ({
66
convertAddress: vi.fn(),
7-
toMultiAddress: vi.fn()
87
}))
98

10-
import { convertAddress, toMultiAddress } from "@polkadot-agent-kit/core"
9+
import { convertAddress } from "@polkadot-agent-kit/core"
1110

1211
const mockConvertAddress = vi.mocked(convertAddress)
13-
const mockToMultiAddress = vi.mocked(toMultiAddress)
1412

1513
describe("validateAndFormatAddress", () => {
1614
beforeEach(() => {
@@ -152,13 +150,11 @@ describe("validateAndFormatMultiAddress", () => {
152150
const chain = "polkadot" as any
153151

154152
mockConvertAddress.mockReturnValue(formattedAddress)
155-
mockToMultiAddress.mockReturnValue(multiAddress)
156153

157-
const result = validateAndFormatMultiAddress(inputAddress, chain)
154+
const result = validateAndFormatAddress(inputAddress, chain)
158155

159156
expect(mockConvertAddress).toHaveBeenCalledWith(inputAddress, chain)
160-
expect(mockToMultiAddress).toHaveBeenCalledWith(formattedAddress)
161-
expect(result).toBe(multiAddress)
157+
expect(result).toBe(formattedAddress)
162158
})
163159

164160
it("should handle different MultiAddress types", () => {
@@ -176,13 +172,10 @@ describe("validateAndFormatMultiAddress", () => {
176172

177173
multiAddressTypes.forEach(multiAddress => {
178174
mockConvertAddress.mockReturnValue(formattedAddress)
179-
mockToMultiAddress.mockReturnValue(multiAddress)
180175

181-
const result = validateAndFormatMultiAddress(inputAddress, chain)
176+
const result = validateAndFormatAddress(inputAddress, chain)
182177

183-
expect(result).toBe(multiAddress)
184-
expect(result.type).toBe(multiAddress.type)
185-
expect(result.value).toBe(multiAddress.value)
178+
expect(result).toBe(formattedAddress)
186179
})
187180
})
188181
})
@@ -194,11 +187,11 @@ describe("validateAndFormatMultiAddress", () => {
194187

195188
mockConvertAddress.mockReturnValue(null as any)
196189

197-
expect(() => validateAndFormatMultiAddress(invalidAddress, chain)).toThrow(
190+
expect(() => validateAndFormatAddress(invalidAddress, chain)).toThrow(
198191
InvalidAddressError
199192
)
200193

201-
expect(mockToMultiAddress).not.toHaveBeenCalled()
194+
expect(mockConvertAddress).not.toHaveBeenCalled()
202195
})
203196

204197
it("should not call toMultiAddress when address validation fails", () => {
@@ -207,11 +200,11 @@ describe("validateAndFormatMultiAddress", () => {
207200

208201
mockConvertAddress.mockReturnValue("")
209202

210-
expect(() => validateAndFormatMultiAddress(invalidAddress, chain)).toThrow(
203+
expect(() => validateAndFormatAddress(invalidAddress, chain)).toThrow(
211204
InvalidAddressError
212205
)
213206

214-
expect(mockToMultiAddress).not.toHaveBeenCalled()
207+
expect(mockConvertAddress).not.toHaveBeenCalled()
215208
})
216209
})
217210

@@ -220,19 +213,14 @@ describe("validateAndFormatMultiAddress", () => {
220213
const inputAddress = "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY"
221214
const formattedAddress = "15oF4uVJwmo4TdGW7VfQxNLavjCXviqxT9S1MgbjMNHr6Sp5"
222215
const chain = "polkadot" as any
223-
const conversionError = new Error("Failed to convert to MultiAddress")
224216

225217
mockConvertAddress.mockReturnValue(formattedAddress)
226-
mockToMultiAddress.mockImplementation(() => {
227-
throw conversionError
228-
})
229218

230-
expect(() => validateAndFormatMultiAddress(inputAddress, chain)).toThrow(
219+
expect(() => validateAndFormatAddress(inputAddress, chain)).toThrow(
231220
"Failed to convert to MultiAddress"
232221
)
233222

234223
expect(mockConvertAddress).toHaveBeenCalledWith(inputAddress, chain)
235-
expect(mockToMultiAddress).toHaveBeenCalledWith(formattedAddress)
236224
})
237225
})
238226
})

packages/llm/src/utils/tools.ts

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import type { Api, KnownChainId } from "@polkadot-agent-kit/common"
2-
import { convertAddress, toMultiAddress } from "@polkadot-agent-kit/core"
3-
import type { MultiAddress } from "@polkadot-api/descriptors"
2+
import { convertAddress } from "@polkadot-agent-kit/core"
43

54
import type { ToolError, ToolResponse } from "../types"
65
import { ChainNotAvailableError, ErrorCodes, InvalidAddressError, isAnyToolError } from "../types"
@@ -32,14 +31,6 @@ export const validateAndFormatAddress = (address: string, chain: KnownChainId):
3231
return formattedAddress
3332
}
3433

35-
export const validateAndFormatMultiAddress = (
36-
address: string,
37-
chain: KnownChainId
38-
): MultiAddress => {
39-
const formattedAddress = validateAndFormatAddress(address, chain)
40-
return toMultiAddress(formattedAddress)
41-
}
42-
4334
/**
4435
* Creates a standardized error response for tool operations.
4536
* Supports both ToolError objects and plain error messages.

packages/sdk/src/api.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ export class PolkadotAgentKit implements IPolkadotApi, IPolkadotAgentApi {
6969
* Get Native Transfer Tool
7070
* Creates a tool for transferring native tokens to an address
7171
*
72-
* @param to - The recipient address as MultiAddress
72+
* @param to - The recipient address as string
7373
* @param amount - The amount to transfer as bigint
7474
* @returns DynamicStructuredTool for transferring native tokens
7575
*

0 commit comments

Comments
 (0)