@@ -2,11 +2,13 @@ import { SubscriptionTransport } from '@chainlink/external-adapter-framework/tra
2
2
import { EndpointContext } from '@chainlink/external-adapter-framework/adapter'
3
3
import { TransportDependencies } from '@chainlink/external-adapter-framework/transports'
4
4
import { AdapterResponse , sleep } from '@chainlink/external-adapter-framework/util'
5
- import ABI from '../config/PoRAddressListMulti.json'
6
- import PolygonABI from '../config/MultiEVMPoRAddressList.json'
5
+ import PoRAddressListMultiABI from '../config/PoRAddressListMulti.json'
6
+ import SolvMultiAddressListABI from '../config/SolvMultiAddressList.json'
7
+ import MultiEVMPoRAddressListABI from '../config/MultiEVMPoRAddressList.json'
7
8
import { BaseEndpointTypes , inputParameters } from '../endpoint/multichainAddress'
8
9
import { ethers } from 'ethers'
9
10
import { fetchAddressList , addProvider , getProvider } from './utils'
11
+ import { AdapterInputError } from '@chainlink/external-adapter-framework/validation/error'
10
12
11
13
export type AddressTransportTypes = BaseEndpointTypes
12
14
@@ -64,16 +66,13 @@ export class AddressTransport extends SubscriptionTransport<AddressTransportType
64
66
async _handleRequest (
65
67
param : RequestParams ,
66
68
) : Promise < AdapterResponse < AddressTransportTypes [ 'Response' ] > > {
67
- const { confirmations, contractAddress, contractAddressNetwork, batchSize } = param
69
+ const { confirmations, contractAddress, contractAddressNetwork, abiName , batchSize } = param
68
70
69
71
this . providersMap = addProvider ( contractAddressNetwork , this . providersMap )
70
72
const provider = getProvider ( contractAddressNetwork , this . providersMap )
73
+ const abi = this . getAbi ( abiName )
71
74
72
- const addressManager = new ethers . Contract (
73
- contractAddress ,
74
- contractAddressNetwork . toUpperCase ( ) == 'POLYGON' ? PolygonABI : ABI ,
75
- provider ,
76
- )
75
+ const addressManager = new ethers . Contract ( contractAddress , abi , provider )
77
76
const latestBlockNum = await provider . getBlockNumber ( )
78
77
79
78
const providerDataRequestedUnixMs = Date . now ( )
@@ -108,6 +107,22 @@ export class AddressTransport extends SubscriptionTransport<AddressTransportType
108
107
}
109
108
}
110
109
110
+ private getAbi ( abiName : string ) {
111
+ switch ( abiName ) {
112
+ case 'MultiEVMPoRAddressList' :
113
+ return MultiEVMPoRAddressListABI
114
+ case 'PoRAddressListMulti' :
115
+ return PoRAddressListMultiABI
116
+ case 'SolvMultiAddressList' :
117
+ return SolvMultiAddressListABI
118
+ default :
119
+ throw new AdapterInputError ( {
120
+ errorResponse : 'abiName not found' ,
121
+ statusCode : 400 ,
122
+ } )
123
+ }
124
+ }
125
+
111
126
getSubscriptionTtlFromConfig ( adapterSettings : BaseEndpointTypes [ 'Settings' ] ) : number {
112
127
return adapterSettings . WARMUP_SUBSCRIPTION_TTL
113
128
}
0 commit comments