Skip to content

Commit

Permalink
refactor: fix transforming of node methods
Browse files Browse the repository at this point in the history
  • Loading branch information
davidyuk committed Jun 11, 2022
1 parent d3f7904 commit 7db7a95
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 18 deletions.
34 changes: 18 additions & 16 deletions src/node.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,22 +38,24 @@ type PreserveOptional<NewType, OrigType> =
export type TransformNodeType<Type> =
Type extends (...args: infer Args) => infer Ret
? (...args: TransformNodeType<Args>) => TransformNodeType<Ret>
: Type extends Array<infer Item>
? Array<TransformNodeType<Item>>
: Type extends Promise<infer T>
? Promise<TransformNodeType<T>>
: Type extends { [P in any]: any }
? {
[Property in keyof Type]:
Property extends BigIntPropertyNames
? PreserveOptional<bigint, Type[Property]>
: Property extends NumberPropertyNames
? PreserveOptional<number, Type[Property]>
: Property extends 'txHash'
? PreserveOptional<EncodedData<'th'>, Type[Property]>
: TransformNodeType<Type[Property]>
}
: Type
: Type extends [infer Item, ...infer Rest]
? [TransformNodeType<Item>, ...TransformNodeType<Rest>]
: Type extends Array<infer Item>
? Array<TransformNodeType<Item>>
: Type extends Promise<infer T>
? Promise<TransformNodeType<T>>
: Type extends { [P in any]: any }
? {
[Property in keyof Type]:
Property extends BigIntPropertyNames
? PreserveOptional<bigint, Type[Property]>
: Property extends NumberPropertyNames
? PreserveOptional<number, Type[Property]>
: Property extends 'txHash'
? PreserveOptional<EncodedData<'th'>, Type[Property]>
: TransformNodeType<Type[Property]>
}
: Type
type TransformedNode = new (...args: ConstructorParameters<typeof Node>) => {
[Name in keyof InstanceType<typeof Node>]: TransformNodeType<Node[Name]>
}
Expand Down
7 changes: 5 additions & 2 deletions src/tx/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,9 @@ export async function _buildTx (
if (txType === TX_TYPE.payingFor) {
params.tx = unpackTx(params.tx)
}
const extraParams = await prepareTxParams(txType, { ...params, senderId: params[senderKey] })
const senderId = params[senderKey]
if (senderId == null) throw new UnexpectedTsError()
const extraParams = await prepareTxParams(txType, { ...params, senderId })
return syncBuildTx({ ...params, ...extraParams }, txType).tx
}

Expand Down Expand Up @@ -183,7 +185,8 @@ export async function prepareTxParams (
strategy,
showWarning = false,
onNode
}: TxParamsCommon & {
}: Pick<TxParamsCommon, 'nonce' | 'ttl' | 'fee'> & {
senderId: EncodedData<'ak'>
vsn?: number
gasLimit?: number | string | BigNumber
absoluteTtl?: number
Expand Down

0 comments on commit 7db7a95

Please sign in to comment.