Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support calling method multiple times in milticall #400

Merged
merged 3 commits into from
Jul 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 9 additions & 5 deletions artifacts/ts/Add.ts
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,10 @@ export namespace AddTypes {
? CallMethodTable[MaybeName]["result"]
: undefined;
};
export type MulticallReturnType<Callss extends MultiCallParams[]> =
Callss["length"] extends 1
? MultiCallResults<Callss[0]>
: { [index in keyof Callss]: MultiCallResults<Callss[index]> };

export interface SignExecuteMethodTable {
add: {
Expand Down Expand Up @@ -381,14 +385,14 @@ export class AddInstance extends ContractInstance {
},
};

async multicall<Calls extends AddTypes.MultiCallParams>(
calls: Calls
): Promise<AddTypes.MultiCallResults<Calls>> {
async multicall<Callss extends AddTypes.MultiCallParams[]>(
...callss: Callss
): Promise<AddTypes.MulticallReturnType<Callss>> {
return (await multicallMethods(
Add,
this,
calls,
callss,
getContractByCodeHash
)) as AddTypes.MultiCallResults<Calls>;
)) as AddTypes.MulticallReturnType<Callss>;
}
}
4 changes: 4 additions & 0 deletions artifacts/ts/Assert.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,10 @@ export namespace AssertTypes {
? CallMethodTable[MaybeName]["result"]
: undefined;
};
export type MulticallReturnType<Callss extends MultiCallParams[]> =
Callss["length"] extends 1
? MultiCallResults<Callss[0]>
: { [index in keyof Callss]: MultiCallResults<Callss[index]> };

export interface SignExecuteMethodTable {
test: {
Expand Down
4 changes: 4 additions & 0 deletions artifacts/ts/Debug.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,10 @@ export namespace DebugTypes {
? CallMethodTable[MaybeName]["result"]
: undefined;
};
export type MulticallReturnType<Callss extends MultiCallParams[]> =
Callss["length"] extends 1
? MultiCallResults<Callss[0]>
: { [index in keyof Callss]: MultiCallResults<Callss[index]> };

export interface SignExecuteMethodTable {
debug: {
Expand Down
14 changes: 9 additions & 5 deletions artifacts/ts/DeprecatedNFTTest1.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,10 @@ export namespace DeprecatedNFTTest1Types {
? CallMethodTable[MaybeName]["result"]
: undefined;
};
export type MulticallReturnType<Callss extends MultiCallParams[]> =
Callss["length"] extends 1
? MultiCallResults<Callss[0]>
: { [index in keyof Callss]: MultiCallResults<Callss[index]> };

export interface SignExecuteMethodTable {
getTokenUri: {
Expand Down Expand Up @@ -158,14 +162,14 @@ export class DeprecatedNFTTest1Instance extends ContractInstance {
},
};

async multicall<Calls extends DeprecatedNFTTest1Types.MultiCallParams>(
calls: Calls
): Promise<DeprecatedNFTTest1Types.MultiCallResults<Calls>> {
async multicall<Callss extends DeprecatedNFTTest1Types.MultiCallParams[]>(
...callss: Callss
): Promise<DeprecatedNFTTest1Types.MulticallReturnType<Callss>> {
return (await multicallMethods(
DeprecatedNFTTest1,
this,
calls,
callss,
getContractByCodeHash
)) as DeprecatedNFTTest1Types.MultiCallResults<Calls>;
)) as DeprecatedNFTTest1Types.MulticallReturnType<Callss>;
}
}
14 changes: 9 additions & 5 deletions artifacts/ts/DeprecatedNFTTest2.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,10 @@ export namespace DeprecatedNFTTest2Types {
? CallMethodTable[MaybeName]["result"]
: undefined;
};
export type MulticallReturnType<Callss extends MultiCallParams[]> =
Callss["length"] extends 1
? MultiCallResults<Callss[0]>
: { [index in keyof Callss]: MultiCallResults<Callss[index]> };

export interface SignExecuteMethodTable {
getTokenUri: {
Expand Down Expand Up @@ -197,14 +201,14 @@ export class DeprecatedNFTTest2Instance extends ContractInstance {
},
};

async multicall<Calls extends DeprecatedNFTTest2Types.MultiCallParams>(
calls: Calls
): Promise<DeprecatedNFTTest2Types.MultiCallResults<Calls>> {
async multicall<Callss extends DeprecatedNFTTest2Types.MultiCallParams[]>(
...callss: Callss
): Promise<DeprecatedNFTTest2Types.MulticallReturnType<Callss>> {
return (await multicallMethods(
DeprecatedNFTTest2,
this,
calls,
callss,
getContractByCodeHash
)) as DeprecatedNFTTest2Types.MultiCallResults<Calls>;
)) as DeprecatedNFTTest2Types.MulticallReturnType<Callss>;
}
}
14 changes: 9 additions & 5 deletions artifacts/ts/DeprecatedNFTTest3.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,10 @@ export namespace DeprecatedNFTTest3Types {
? CallMethodTable[MaybeName]["result"]
: undefined;
};
export type MulticallReturnType<Callss extends MultiCallParams[]> =
Callss["length"] extends 1
? MultiCallResults<Callss[0]>
: { [index in keyof Callss]: MultiCallResults<Callss[index]> };

export interface SignExecuteMethodTable {
getTokenUri: {
Expand Down Expand Up @@ -197,14 +201,14 @@ export class DeprecatedNFTTest3Instance extends ContractInstance {
},
};

async multicall<Calls extends DeprecatedNFTTest3Types.MultiCallParams>(
calls: Calls
): Promise<DeprecatedNFTTest3Types.MultiCallResults<Calls>> {
async multicall<Callss extends DeprecatedNFTTest3Types.MultiCallParams[]>(
...callss: Callss
): Promise<DeprecatedNFTTest3Types.MulticallReturnType<Callss>> {
return (await multicallMethods(
DeprecatedNFTTest3,
this,
calls,
callss,
getContractByCodeHash
)) as DeprecatedNFTTest3Types.MultiCallResults<Calls>;
)) as DeprecatedNFTTest3Types.MulticallReturnType<Callss>;
}
}
14 changes: 9 additions & 5 deletions artifacts/ts/DeprecatedNFTTest4.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,10 @@ export namespace DeprecatedNFTTest4Types {
? CallMethodTable[MaybeName]["result"]
: undefined;
};
export type MulticallReturnType<Callss extends MultiCallParams[]> =
Callss["length"] extends 1
? MultiCallResults<Callss[0]>
: { [index in keyof Callss]: MultiCallResults<Callss[index]> };

export interface SignExecuteMethodTable {
getTokenUri: {
Expand Down Expand Up @@ -190,14 +194,14 @@ export class DeprecatedNFTTest4Instance extends ContractInstance {
},
};

async multicall<Calls extends DeprecatedNFTTest4Types.MultiCallParams>(
calls: Calls
): Promise<DeprecatedNFTTest4Types.MultiCallResults<Calls>> {
async multicall<Callss extends DeprecatedNFTTest4Types.MultiCallParams[]>(
...callss: Callss
): Promise<DeprecatedNFTTest4Types.MulticallReturnType<Callss>> {
return (await multicallMethods(
DeprecatedNFTTest4,
this,
calls,
callss,
getContractByCodeHash
)) as DeprecatedNFTTest4Types.MultiCallResults<Calls>;
)) as DeprecatedNFTTest4Types.MulticallReturnType<Callss>;
}
}
14 changes: 9 additions & 5 deletions artifacts/ts/DeprecatedNFTTest5.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,10 @@ export namespace DeprecatedNFTTest5Types {
? CallMethodTable[MaybeName]["result"]
: undefined;
};
export type MulticallReturnType<Callss extends MultiCallParams[]> =
Callss["length"] extends 1
? MultiCallResults<Callss[0]>
: { [index in keyof Callss]: MultiCallResults<Callss[index]> };

export interface SignExecuteMethodTable {
getTokenUri: {
Expand Down Expand Up @@ -204,14 +208,14 @@ export class DeprecatedNFTTest5Instance extends ContractInstance {
},
};

async multicall<Calls extends DeprecatedNFTTest5Types.MultiCallParams>(
calls: Calls
): Promise<DeprecatedNFTTest5Types.MultiCallResults<Calls>> {
async multicall<Callss extends DeprecatedNFTTest5Types.MultiCallParams[]>(
...callss: Callss
): Promise<DeprecatedNFTTest5Types.MulticallReturnType<Callss>> {
return (await multicallMethods(
DeprecatedNFTTest5,
this,
calls,
callss,
getContractByCodeHash
)) as DeprecatedNFTTest5Types.MultiCallResults<Calls>;
)) as DeprecatedNFTTest5Types.MulticallReturnType<Callss>;
}
}
14 changes: 9 additions & 5 deletions artifacts/ts/DeprecatedNFTTest6.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,10 @@ export namespace DeprecatedNFTTest6Types {
? CallMethodTable[MaybeName]["result"]
: undefined;
};
export type MulticallReturnType<Callss extends MultiCallParams[]> =
Callss["length"] extends 1
? MultiCallResults<Callss[0]>
: { [index in keyof Callss]: MultiCallResults<Callss[index]> };

export interface SignExecuteMethodTable {
getTokenUri: {
Expand Down Expand Up @@ -190,14 +194,14 @@ export class DeprecatedNFTTest6Instance extends ContractInstance {
},
};

async multicall<Calls extends DeprecatedNFTTest6Types.MultiCallParams>(
calls: Calls
): Promise<DeprecatedNFTTest6Types.MultiCallResults<Calls>> {
async multicall<Callss extends DeprecatedNFTTest6Types.MultiCallParams[]>(
...callss: Callss
): Promise<DeprecatedNFTTest6Types.MulticallReturnType<Callss>> {
return (await multicallMethods(
DeprecatedNFTTest6,
this,
calls,
callss,
getContractByCodeHash
)) as DeprecatedNFTTest6Types.MultiCallResults<Calls>;
)) as DeprecatedNFTTest6Types.MulticallReturnType<Callss>;
}
}
14 changes: 9 additions & 5 deletions artifacts/ts/DeprecatedNFTTest7.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,10 @@ export namespace DeprecatedNFTTest7Types {
? CallMethodTable[MaybeName]["result"]
: undefined;
};
export type MulticallReturnType<Callss extends MultiCallParams[]> =
Callss["length"] extends 1
? MultiCallResults<Callss[0]>
: { [index in keyof Callss]: MultiCallResults<Callss[index]> };

export interface SignExecuteMethodTable {
getTokenUri: {
Expand Down Expand Up @@ -204,14 +208,14 @@ export class DeprecatedNFTTest7Instance extends ContractInstance {
},
};

async multicall<Calls extends DeprecatedNFTTest7Types.MultiCallParams>(
calls: Calls
): Promise<DeprecatedNFTTest7Types.MultiCallResults<Calls>> {
async multicall<Callss extends DeprecatedNFTTest7Types.MultiCallParams[]>(
...callss: Callss
): Promise<DeprecatedNFTTest7Types.MulticallReturnType<Callss>> {
return (await multicallMethods(
DeprecatedNFTTest7,
this,
calls,
callss,
getContractByCodeHash
)) as DeprecatedNFTTest7Types.MultiCallResults<Calls>;
)) as DeprecatedNFTTest7Types.MulticallReturnType<Callss>;
}
}
14 changes: 9 additions & 5 deletions artifacts/ts/FakeTokenTest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,10 @@ export namespace FakeTokenTestTypes {
? CallMethodTable[MaybeName]["result"]
: undefined;
};
export type MulticallReturnType<Callss extends MultiCallParams[]> =
Callss["length"] extends 1
? MultiCallResults<Callss[0]>
: { [index in keyof Callss]: MultiCallResults<Callss[index]> };

export interface SignExecuteMethodTable {
getSymbol: {
Expand Down Expand Up @@ -285,14 +289,14 @@ export class FakeTokenTestInstance extends ContractInstance {
},
};

async multicall<Calls extends FakeTokenTestTypes.MultiCallParams>(
calls: Calls
): Promise<FakeTokenTestTypes.MultiCallResults<Calls>> {
async multicall<Callss extends FakeTokenTestTypes.MultiCallParams[]>(
...callss: Callss
): Promise<FakeTokenTestTypes.MulticallReturnType<Callss>> {
return (await multicallMethods(
FakeTokenTest,
this,
calls,
callss,
getContractByCodeHash
)) as FakeTokenTestTypes.MultiCallResults<Calls>;
)) as FakeTokenTestTypes.MulticallReturnType<Callss>;
}
}
14 changes: 9 additions & 5 deletions artifacts/ts/Greeter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,10 @@ export namespace GreeterTypes {
? CallMethodTable[MaybeName]["result"]
: undefined;
};
export type MulticallReturnType<Callss extends MultiCallParams[]> =
Callss["length"] extends 1
? MultiCallResults<Callss[0]>
: { [index in keyof Callss]: MultiCallResults<Callss[index]> };

export interface SignExecuteMethodTable {
greet: {
Expand Down Expand Up @@ -160,14 +164,14 @@ export class GreeterInstance extends ContractInstance {
},
};

async multicall<Calls extends GreeterTypes.MultiCallParams>(
calls: Calls
): Promise<GreeterTypes.MultiCallResults<Calls>> {
async multicall<Callss extends GreeterTypes.MultiCallParams[]>(
...callss: Callss
): Promise<GreeterTypes.MulticallReturnType<Callss>> {
return (await multicallMethods(
Greeter,
this,
calls,
callss,
getContractByCodeHash
)) as GreeterTypes.MultiCallResults<Calls>;
)) as GreeterTypes.MulticallReturnType<Callss>;
}
}
14 changes: 9 additions & 5 deletions artifacts/ts/MapTest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,10 @@ export namespace MapTestTypes {
? CallMethodTable[MaybeName]["result"]
: undefined;
};
export type MulticallReturnType<Callss extends MultiCallParams[]> =
Callss["length"] extends 1
? MultiCallResults<Callss[0]>
: { [index in keyof Callss]: MultiCallResults<Callss[index]> };

export interface SignExecuteMethodTable {
insert: {
Expand Down Expand Up @@ -308,14 +312,14 @@ export class MapTestInstance extends ContractInstance {
},
};

async multicall<Calls extends MapTestTypes.MultiCallParams>(
calls: Calls
): Promise<MapTestTypes.MultiCallResults<Calls>> {
async multicall<Callss extends MapTestTypes.MultiCallParams[]>(
...callss: Callss
): Promise<MapTestTypes.MulticallReturnType<Callss>> {
return (await multicallMethods(
MapTest,
this,
calls,
callss,
getContractByCodeHash
)) as MapTestTypes.MultiCallResults<Calls>;
)) as MapTestTypes.MulticallReturnType<Callss>;
}
}
4 changes: 4 additions & 0 deletions artifacts/ts/MetaData.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,10 @@ export namespace MetaDataTypes {
? CallMethodTable[MaybeName]["result"]
: undefined;
};
export type MulticallReturnType<Callss extends MultiCallParams[]> =
Callss["length"] extends 1
? MultiCallResults<Callss[0]>
: { [index in keyof Callss]: MultiCallResults<Callss[index]> };

export interface SignExecuteMethodTable {
foo: {
Expand Down
Loading
Loading