@@ -50,19 +50,19 @@ const generatePackageJson = ({ subgraphName }) =>
50
50
51
51
// Subgraph manifest
52
52
53
- const generateManifest = ( { abi, address, network } ) =>
53
+ const generateManifest = ( { abi, address, network, contractName } ) =>
54
54
prettier . format (
55
55
`
56
56
specVersion: 0.0.1
57
57
schema:
58
58
file: ./schema.graphql
59
59
dataSources:
60
60
- kind: ethereum/contract
61
- name: Contract
61
+ name: ${ contractName }
62
62
network: ${ network }
63
63
source:
64
64
address: '${ address } '
65
- abi: Contract
65
+ abi: ${ contractName }
66
66
mapping:
67
67
kind: ethereum/events
68
68
apiVersion: 0.0.2
@@ -72,8 +72,8 @@ dataSources:
72
72
. map ( event => `- ${ event . get ( '_alias' ) } ` )
73
73
. join ( '\n ' ) }
74
74
abis:
75
- - name: Contract
76
- file: ./abis/Contract .json
75
+ - name: ${ contractName }
76
+ file: ./abis/${ contractName } .json
77
77
eventHandlers:
78
78
${ abiEvents ( abi )
79
79
. map (
@@ -185,11 +185,11 @@ const generateEventFieldAssignments = event =>
185
185
[ ] ,
186
186
)
187
187
188
- const generateEventIndexingHandlers = events =>
188
+ const generateEventIndexingHandlers = ( events , contractName ) =>
189
189
`
190
190
import { ${ events . map (
191
191
event => `${ event . _alias } as ${ event . _alias } Event` ,
192
- ) } } from '../generated/Contract/Contract '
192
+ ) } } from '../generated/${ contractName } / ${ contractName } '
193
193
import { ${ events . map ( event => event . _alias ) } } from '../generated/schema'
194
194
195
195
${ events
@@ -208,11 +208,11 @@ const generateEventIndexingHandlers = events =>
208
208
. join ( '\n' ) }
209
209
`
210
210
211
- const generatePlaceholderHandlers = ( { abi, events } ) =>
211
+ const generatePlaceholderHandlers = ( { abi, events, contractName } ) =>
212
212
`
213
213
import { BigInt } from '@graphprotocol/graph-ts'
214
- import { Contract , ${ events . map ( event => event . _alias ) } }
215
- from '../generated/Contract/Contract '
214
+ import { ${ contractName } , ${ events . map ( event => event . _alias ) } }
215
+ from '../generated/${ contractName } / ${ contractName } '
216
216
import { ExampleEntity } from '../generated/schema'
217
217
218
218
${ events
@@ -279,33 +279,33 @@ export function handle${event._alias}(event: ${event._alias}): void {}
279
279
)
280
280
. join ( '\n' ) } `
281
281
282
- const generateMapping = ( { abi, indexEvents } ) => {
282
+ const generateMapping = ( { abi, indexEvents, contractName } ) => {
283
283
let events = abiEvents ( abi ) . toJS ( )
284
284
return prettier . format (
285
285
indexEvents
286
- ? generateEventIndexingHandlers ( events )
287
- : generatePlaceholderHandlers ( { abi, events : events } ) ,
286
+ ? generateEventIndexingHandlers ( events , contractName )
287
+ : generatePlaceholderHandlers ( { abi, events : events , contractName } ) ,
288
288
{ parser : 'typescript' , semi : false } ,
289
289
)
290
290
}
291
291
292
292
const generateScaffold = async (
293
- { abi, address, network, subgraphName, indexEvents } ,
293
+ { abi, address, network, subgraphName, indexEvents, contractName = 'Contract' } ,
294
294
spinner ,
295
295
) => {
296
296
step ( spinner , 'Generate subgraph from ABI' )
297
297
let packageJson = generatePackageJson ( { subgraphName } )
298
- let manifest = generateManifest ( { abi, address, network } )
299
- let schema = generateSchema ( { abi, indexEvents } )
300
- let mapping = generateMapping ( { abi, subgraphName, indexEvents } )
298
+ let manifest = generateManifest ( { abi, address, network, contractName } )
299
+ let schema = generateSchema ( { abi, indexEvents, contractName } )
300
+ let mapping = generateMapping ( { abi, subgraphName, indexEvents, contractName } )
301
301
302
302
return {
303
303
'package.json' : packageJson ,
304
304
'subgraph.yaml' : manifest ,
305
305
'schema.graphql' : schema ,
306
306
src : { 'mapping.ts' : mapping } ,
307
307
abis : {
308
- 'Contract .json' : prettier . format ( JSON . stringify ( abi . data ) , {
308
+ [ ` ${ contractName } .json` ] : prettier . format ( JSON . stringify ( abi . data ) , {
309
309
parser : 'json' ,
310
310
} ) ,
311
311
} ,
0 commit comments