Skip to content

Commit 607a9c0

Browse files
committed
tries configuering crowdsale instances as sg templates
Signed-off-by: Stefan Adolf <[email protected]>
1 parent 8d83cfc commit 607a9c0

File tree

5 files changed

+79
-47
lines changed

5 files changed

+79
-47
lines changed

subgraph/networks.json

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,7 @@
1616
"address": "0x8cA737E2cdaE1Ceb332bEf7ba9eA711a3a2f8037",
1717
"startBlock": 5300777
1818
},
19-
"StakedLockingCrowdSale": {
20-
"address": "0xd1cE2EA7d3b0C9cAB025A4aD762FC00315141ad7",
21-
"startBlock": 5300777
22-
},
19+
2320
"TermsAcceptedPermissioner": {
2421
"address": "0xC05D649368d8A5e2E98CAa205d47795de5fCB599",
2522
"startBlock": 5300776
@@ -42,10 +39,7 @@
4239
"address": "0xf0a8d23f38e9cbbe01c4ed37f23bd519b65bc6c2",
4340
"startBlock": 18490640
4441
},
45-
"StakedLockingCrowdSale": {
46-
"address": "0x35Bce29F52f51f547998717CD598068Afa2B29B7",
47-
"startBlock": 17481804
48-
},
42+
4943
"TermsAcceptedPermissioner": {
5044
"address": "0xC837E02982992B701A1B5e4E21fA01cEB0a628fA",
5145
"startBlock": 17790450
@@ -68,10 +62,7 @@
6862
"address": "0x09635F643e140090A9A8Dcd712eD6285858ceBef",
6963
"startBlock": 0
7064
},
71-
"StakedLockingCrowdSale": {
72-
"address": "0x959922bE3CAee4b8Cd9a407cc3ac1C251C2007B1",
73-
"startBlock": 0
74-
},
65+
7566
"TermsAcceptedPermissioner": {
7667
"address": "0x8A791620dd6260079BF849Dc5567aDC3F2FdC318",
7768
"startBlock": 0

subgraph/schema.graphql

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ enum SaleState {
120120

121121
enum SaleType {
122122
CROWDSALE
123+
LOCKING_CROWDSALE
123124
STAKED_LOCKING_CROWDSALE
124125
}
125126

@@ -146,6 +147,7 @@ type CrowdSale @entity {
146147
contributions: [Contribution!] @derivedFrom(field: "crowdSale")
147148
feeBp: Int # the percentage fee that will be cut from the crowdsale upon its success
148149
type: SaleType!
150+
contractInstance: ID # the address of the crowdsale contract
149151
}
150152

151153
type Contribution @entity {

subgraph/src/crowdSaleMapping.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ export function handleStarted(event: StartedEvent): void {
2525
return
2626
}
2727

28+
if (event.receipt) {
29+
crowdSale.contractInstance = changetype<string>(event.receipt.contractAddress)
30+
}
31+
2832
crowdSale.ipt = ipt.id
2933
crowdSale.issuer = event.params.issuer
3034
crowdSale.feeBp = event.params.feeBp

subgraph/src/stakedLockingCrowdSaleMapping.ts

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import * as GenericCrowdSale from './genericCrowdSale'
2828

2929
import { Contribution, CrowdSale, ERC20Token, IPT } from '../generated/schema'
3030

31-
import { TimelockedToken as TimelockedTokenTemplate } from '../generated/templates'
31+
import { StakedLockingCrowdSale as StakedLockingCrowdSaleTemplate, TimelockedToken as TimelockedTokenTemplate } from '../generated/templates'
3232
import { makeERC20Token, makeTimelockedToken } from './common'
3333

3434
export function handleStartedLegacy(event: LegacyStartedEvent): void {
@@ -52,6 +52,10 @@ export function handleStartedLegacy(event: LegacyStartedEvent): void {
5252
}
5353

5454
export function handleStarted(event: StartedEvent): void {
55+
if (event.parameters.length < 8) {
56+
return handleStartedLegacy(event)
57+
}
58+
5559
const _plain = new PlainStartedEvent(
5660
event.address,
5761
event.logIndex,
@@ -257,3 +261,16 @@ export function handleClaimedFailedSale(
257261
event.block.timestamp
258262
)
259263
}
264+
265+
export function initializeCrowdsaleTemplatesOnce(block: ethereum.Block): void {
266+
267+
StakedLockingCrowdSaleTemplate.create(block.)
268+
269+
let context = new DataSourceContext()
270+
context.setBytes('ipt', Bytes.fromHexString('0x'))
271+
context.setBytes('lockingContract', Bytes.fromHexString('0x'))
272+
TimelockedTokenTemplate.createWithContext(
273+
Bytes.fromHexString('0x'),
274+
context
275+
)
276+
}

subgraph/subgraph.yaml

Lines changed: 52 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -119,52 +119,25 @@ dataSources:
119119
- event: ClaimedAuctionTokens(indexed uint256)
120120
handler: handleClaimedFailedSale
121121
file: ./src/crowdSaleMapping.ts
122+
122123
- kind: ethereum/contract
123-
name: StakedLockingCrowdSale
124+
name: InitializeCrowdsaleContracts
124125
network: foundry
125126
source:
126127
abi: StakedLockingCrowdSale
127-
address: "0x959922bE3CAee4b8Cd9a407cc3ac1C251C2007B1"
128128
startBlock: 0
129129
mapping:
130130
kind: ethereum/events
131131
apiVersion: 0.0.7
132132
language: wasm/assemblyscript
133-
entities:
134-
- CrowdSale
135-
- Contribution
136-
- ERC20Token
133+
file: ./src/stakedLockingCrowdSaleMapping.ts
137134
abis:
138135
- name: StakedLockingCrowdSale
139136
file: ./abis/StakedLockingCrowdSale.json
140-
- name: IERC20Metadata
141-
file: ./abis/IERC20Metadata.json
142-
eventHandlers:
143-
- event: Started(indexed uint256,indexed
144-
address,(address,address,address,uint256,uint256,uint64,address),(address,address,uint256),address,uint256,uint256)
145-
handler: handleStartedLegacy
146-
- event: Started(indexed uint256,indexed
147-
address,(address,address,address,uint256,uint256,uint64,address),(address,address,uint256),address,uint256,uint256,uint16)
148-
handler: handleStarted
149-
- event: Settled(indexed uint256,uint256,uint256)
150-
handler: handleSettled
151-
- event: Failed(indexed uint256)
152-
handler: handleFailed
153-
- event: Bid(indexed uint256,indexed address,uint256)
154-
handler: handleBid
155-
- event: Staked(indexed uint256,indexed address,uint256,uint256)
156-
handler: handleStaked
157-
- event: Claimed(indexed uint256,indexed address,uint256,uint256)
158-
handler: handleClaimed
159-
- event: ClaimedStakes(indexed uint256,indexed address,uint256,uint256)
160-
handler: handleClaimedStakes
161-
- event: LockingContractCreated(indexed address,indexed address)
162-
handler: handleLockingContractCreated
163-
- event: ClaimedFundingGoal(indexed uint256)
164-
handler: handleClaimedSuccessfulSale
165-
- event: ClaimedAuctionTokens(indexed uint256)
166-
handler: handleClaimedFailedSale
167-
file: ./src/stakedLockingCrowdSaleMapping.ts
137+
blockHandlers:
138+
- handler: initializeCrowdsaleTemplatesOnce
139+
filter:
140+
kind: once
168141
- kind: ethereum/contract
169142
name: TermsAcceptedPermissioner
170143
network: foundry
@@ -228,6 +201,51 @@ templates:
228201
handler: handleScheduled
229202
- event: ScheduleReleased(indexed bytes32,indexed address,uint256)
230203
handler: handleReleased
204+
- name: StakedLockingCrowdSale
205+
kind: ethereum/contract
206+
network: foundry
207+
source:
208+
abi: StakedLockingCrowdSale
209+
mapping:
210+
kind: ethereum/events
211+
apiVersion: 0.0.7
212+
language: wasm/assemblyscript
213+
file: ./src/stakedLockingCrowdSaleMapping.ts
214+
entities:
215+
- TimelockedToken
216+
- CrowdSale
217+
- Contribution
218+
- ERC20Token
219+
abis:
220+
- name: StakedLockingCrowdSale
221+
file: ./abis/StakedLockingCrowdSale.json
222+
- name: IERC20Metadata
223+
file: ./abis/IERC20Metadata.json
224+
eventHandlers:
225+
- event: Started(indexed uint256,indexed
226+
address,(address,address,address,uint256,uint256,uint64,address),(address,address,uint256),address,uint256,uint256)
227+
handler: handleStartedLegacy
228+
- event: Started(indexed uint256,indexed
229+
address,(address,address,address,uint256,uint256,uint64,address),(address,address,uint256),address,uint256,uint256,uint16)
230+
handler: handleStarted
231+
- event: Settled(indexed uint256,uint256,uint256)
232+
handler: handleSettled
233+
- event: Failed(indexed uint256)
234+
handler: handleFailed
235+
- event: Bid(indexed uint256,indexed address,uint256)
236+
handler: handleBid
237+
- event: Staked(indexed uint256,indexed address,uint256,uint256)
238+
handler: handleStaked
239+
- event: Claimed(indexed uint256,indexed address,uint256,uint256)
240+
handler: handleClaimed
241+
- event: ClaimedStakes(indexed uint256,indexed address,uint256,uint256)
242+
handler: handleClaimedStakes
243+
- event: LockingContractCreated(indexed address,indexed address)
244+
handler: handleLockingContractCreated
245+
- event: ClaimedFundingGoal(indexed uint256)
246+
handler: handleClaimedSuccessfulSale
247+
- event: ClaimedAuctionTokens(indexed uint256)
248+
handler: handleClaimedFailedSale
231249
- name: IpnftMetadata
232250
kind: file/ipfs
233251
mapping:

0 commit comments

Comments
 (0)