( parameters: EncodeFunctionDataParameters<abi, functionName>, )
| 68 | | ErrorType |
| 69 | |
| 70 | export function encodeFunctionData< |
| 71 | const abi extends Abi | readonly unknown[], |
| 72 | functionName extends ContractFunctionName<abi> | undefined = undefined, |
| 73 | >( |
| 74 | parameters: EncodeFunctionDataParameters<abi, functionName>, |
| 75 | ): EncodeFunctionDataReturnType { |
| 76 | const { args } = parameters as EncodeFunctionDataParameters |
| 77 | |
| 78 | const { abi, functionName } = (() => { |
| 79 | if ( |
| 80 | parameters.abi.length === 1 && |
| 81 | parameters.functionName?.startsWith('0x') |
| 82 | ) |
| 83 | return parameters as { abi: Abi; functionName: Hex } |
| 84 | return prepareEncodeFunctionData(parameters) |
| 85 | })() |
| 86 | |
| 87 | const abiItem = abi[0] |
| 88 | const signature = functionName |
| 89 | |
| 90 | const data = |
| 91 | 'inputs' in abiItem && abiItem.inputs |
| 92 | ? encodeAbiParameters(abiItem.inputs, args ?? []) |
| 93 | : undefined |
| 94 | return concatHex([signature, data ?? '0x']) |
| 95 | } |
no test coverage detected