dethcrypto / dethcrypto/eth-sdk

Reexport generated struct types

Open
#96 5 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
428
Forks
45
PR merge metrics
No merged PRs in 30d

Description

Consider following config:

```ts
export default defineConfig({
contracts: {
mainnet: {
bancorCollection: '0xEC9596e0eB67228d61a12CfdB4b3608281F261b3',
},
},
})
```

Now If we call it it all compiles:

![img](https://i.imgur.com/4TQ9ncN.png)

However, if we try to specify struct name it won't work:

![img](https://i.imgur.com/YpEZlkq.png)

The problem is type is not reexported so it cannot be accessed outside. It may be useful in cases when I want to write a function like

```ts
function processPoolData(data: PoolStructOutput) { ... }
```

P.S. for some reason generation doesn't work for all types. For example following config:

```ts
export default defineConfig({
contracts: {
mainnet: {
uniswapV3: '0x8ad599c3A0ff1De082011EFDDc58f1908eb6e6D8'
},
},
})
```

Leads to

```ts
slot0(overrides?: CallOverrides): Promise<[
BigNumber,
number,
number,
number,
number,
number,
boolean
] & {
sqrtPriceX96: BigNumber;
tick: number;
observationIndex: number;
observationCardinality: number;
observationCardinalityNext: number;
feeProtocol: number;
unlocked: boolean;
}>;
snapshotCumulativesInside(tickLower: BigNumberish, tickUpper: BigNumberish, overrides?: CallOverrides): Promise<[
BigNumber,
BigNumber,
number
] & {
tickCumulativeInside: BigNumber;
secondsPerLiquidityInsideX128: BigNumber;
secondsInside: number;
}>;
```

Note that it didn't generate proper named struct for ABI.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.