- 
                Notifications
    You must be signed in to change notification settings 
- Fork 230
Description
Which packages are impacted by your issue?
@graphprotocol/graph-cli
Describe the issue
codegen from solidity func like :
function getPositionsByTokenIds(uint256[] memory) public view returns (Position.PositionInfo[][] memory)
The Solidity function return type:Position.PositionInfo[][] is a two-dimensional array. PositionInfo[][] is a two-dimensional array. Each element itself is also a Position.PositionInfo[] array.
TypeScript mapping type: Reader__getPositionsByTokenIdsResultValue0Struct[] is a one-dimensional array. This means that the return type expected by TypeScript is an array of Reader__getPositionsByTokenIdsResultValue0Struct objects, not an array of arrays (a two-dimensional array).
Reproduction
graph codegen
Steps to Reproduce the Bug or Issue
gen code:
getPositionsByTokenIds( tokenIds: Array<BigInt> ): Array<Array<Reader__getPositionsByTokenIdsResultValue0Struct>> { let result = super.call( "getPositionsByTokenIds", "getPositionsByTokenIds(uint256[]):((((uint256,address,address,bool,uint256),uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,uint256,bool,(uint256,(uint256,uint256,uint256,uint256),(uint256,uint256,uint256,uint256)),(uint256,(uint256,uint256,uint256,uint256),(uint256,uint256,uint256,uint256))),address)[][])", [ethereum.Value.fromUnsignedBigIntArray(tokenIds)] ); return result[0].toTupleMatrix<>(); }
try_getPositionsByTokenIds(tokenIds: Array<BigInt>): ethereum.CallResult<Array<Reader__getPositionsByTokenIdsResultValue0Struct>> { let result = super.tryCall( "getPositionsByTokenIds", "getPositionsByTokenIds(uint256[]):((((uint256,address,address,bool,uint256),uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,uint256,bool,(uint256,(uint256,uint256,uint256,uint256),(uint256,uint256,uint256,uint256)),(uint256,(uint256,uint256,uint256,uint256),(uint256,uint256,uint256,uint256))),address)[][])", [ethereum.Value.fromUnsignedBigIntArray(tokenIds)] ); if (result.reverted) { return new ethereum.CallResult(); } let value = result.value; return ethereum.CallResult.fromValue(value[0].toTupleMatrix<>()); }
Expected behavior
Screenshots or Videos
No response
Platform
- OS: [e.g. macOS, Windows, Linux]
- NodeJS: [e.g. 18.5.0]
- @graphprotocol/*version(s): [e.g. 2.6.2]
Subgraph Manifest
No response
Subgraph GraphQL Schema
No response
Additional context
No response
Metadata
Metadata
Assignees
Labels
Type
Projects
Status