Skip to content

Commit ea7fb75

Browse files
authored
Merge pull request #1091 from graphprotocol/mde/merge-horizon-staking-abis
2 parents ca2ef4f + 406c1fd commit ea7fb75

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

packages/hardhat-graph-protocol/src/sdk/deployments/horizon/address-book.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ import { logDebug, logError } from '../../../logger'
33
import { Provider, Signer } from 'ethers'
44
import { AddressBook } from '../../address-book'
55
import { assertObject } from '../../utils/assertion'
6+
import { Contract } from 'ethers'
7+
import { loadArtifact } from '../../lib/artifact'
8+
import { mergeABIs } from '../../utils/abi'
69

710
import type { GraphHorizonContractName, GraphHorizonContracts } from './contracts'
811

@@ -23,6 +26,20 @@ export class GraphHorizonAddressBook extends AddressBook<number, GraphHorizonCon
2326
GraphHorizonArtifactsMap,
2427
signerOrProvider,
2528
)
29+
30+
// Handle HorizonStaking specially to include extension functions
31+
if (contracts.HorizonStaking) {
32+
const stakingOverride = new Contract(
33+
this.getEntry('HorizonStaking').address,
34+
mergeABIs(
35+
loadArtifact('HorizonStaking', GraphHorizonArtifactsMap.HorizonStaking).abi,
36+
loadArtifact('HorizonStakingExtension', GraphHorizonArtifactsMap.HorizonStaking).abi,
37+
),
38+
signerOrProvider,
39+
)
40+
contracts.HorizonStaking = stakingOverride
41+
}
42+
2643
this._assertGraphHorizonContracts(contracts)
2744

2845
// Aliases
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
export function mergeABIs(abi1: any[], abi2: any[]) {
2+
for (const item of abi2) {
3+
if (abi1.find((v) => v.name === item.name) === undefined) {
4+
abi1.push(item)
5+
}
6+
}
7+
return abi1
8+
}

0 commit comments

Comments
 (0)