Skip to content

Commit 4e87cf4

Browse files
committed
wrap address[] and tuple[] into changetype
1 parent f6079a6 commit 4e87cf4

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

packages/cli/src/scaffold/mapping.ts

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,30 @@
11
import * as util from '../codegen/util.js';
22

3-
export const generateFieldAssignment = (key: string[], value: string[]) =>
4-
`entity.${key.join('_')} = event.params.${value.join('.')}`;
3+
/**
4+
* Map of value types that need to be changeType'd to their corresponding AssemblyScript type
5+
*/
6+
export const VALUE_TYPECAST_MAP: Record<string, string> = {
7+
'address[]': 'Bytes[]',
8+
'tuple[]': 'Bytes[]',
9+
};
10+
11+
export const generateFieldAssignment = (keyPath: string[], value: string[], type?: string) => {
12+
let rightSide = `event.params.${value.join('.')}`;
13+
if (type && VALUE_TYPECAST_MAP[type]) {
14+
rightSide = `changeType<${VALUE_TYPECAST_MAP[type]}>(${rightSide})`;
15+
}
16+
return `entity.${keyPath.join('_')} = ${rightSide}`;
17+
};
518

619
export const generateFieldAssignments = ({ index, input }: { index: number; input: any }) =>
720
input.type === 'tuple'
821
? util
922
.unrollTuple({ value: input, index, path: [input.name || `param${index}`] })
10-
.map(({ path }: any) => generateFieldAssignment(path, path))
23+
.map(({ path, type }: any) => generateFieldAssignment(path, path, type))
1124
: generateFieldAssignment(
1225
[(input.mappedName ?? input.name) || `param${index}`],
1326
[input.name || `param${index}`],
27+
input.type,
1428
);
1529

1630
/**
@@ -39,6 +53,7 @@ export const generateEventIndexingHandlers = (events: any[], contractName: strin
3953
event => `${event._alias} as ${event._alias}Event`,
4054
)}} from '../generated/${contractName}/${contractName}'
4155
import { ${events.map(event => event._alias)} } from '../generated/schema'
56+
import { Bytes } from '@graphprotocol/graph-ts'
4257
4358
${events
4459
.map(

0 commit comments

Comments
 (0)