Skip to content

Commit 5f3b932

Browse files
Fixing configuration for tokenVerifier
1 parent f43b8c7 commit 5f3b932

File tree

4 files changed

+56
-23
lines changed

4 files changed

+56
-23
lines changed

build/devenv/services/indexer.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,16 @@ func defaults(in *IndexerInput) {
142142
BatchSize: 100,
143143
MaxBatchWaitTime: 50,
144144
},
145+
{
146+
Type: config.ReaderTypeRest,
147+
RestReaderConfig: config.RestReaderConfig{
148+
BaseURL: "token-verifier-1:8700/v1/verification/results",
149+
RequestTimeout: 10,
150+
},
151+
Name: "Token Verifier (Primary)",
152+
BatchSize: 10,
153+
MaxBatchWaitTime: 100,
154+
},
145155
},
146156
Storage: config.StorageConfig{
147157
Strategy: config.StorageStrategySink,

build/devenv/services/tokenVerifier.go

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ import (
99
"strconv"
1010
"time"
1111

12+
"github.com/smartcontractkit/chainlink-ccip/ccv/chains/evm/deployment/v1_7_0/operations/cctp_verifier"
13+
"github.com/smartcontractkit/chainlink-ccv/verifier/token/cctp"
14+
1215
"github.com/BurntSushi/toml"
1316
"github.com/Masterminds/semver/v3"
1417

@@ -50,6 +53,8 @@ type TokenVerifierInput struct {
5053
DefaultExecutorOnRampAddresses map[string]string `toml:"default_executor_on_ramp_addresses"`
5154
// Maps to rmn_remote_addresses in the verifier config toml.
5255
RMNRemoteAddresses map[string]string `toml:"rmn_remote_addresses"`
56+
57+
CCTPVerifierAddresses map[string]string `toml:"cctp_verifier_addresses"`
5358
}
5459

5560
type TokenVerifierOutput struct {
@@ -202,6 +207,26 @@ func (v *TokenVerifierInput) buildVerifierConfiguration(config *token.Config) er
202207
config.VerifierID = v.ContainerName
203208
config.OnRampAddresses = v.OnRampAddresses
204209
config.RMNRemoteAddresses = v.RMNRemoteAddresses
210+
if len(config.TokenVerifiers) == 0 {
211+
config.TokenVerifiers = make([]token.VerifierConfig, 0)
212+
}
213+
214+
if len(v.CCTPVerifierAddresses) > 0 {
215+
verifiers := make(map[string]any)
216+
for k, addr := range v.CCTPVerifierAddresses {
217+
verifiers[k] = addr
218+
}
219+
config.TokenVerifiers = append(config.TokenVerifiers, token.VerifierConfig{
220+
Type: "cctp",
221+
Version: "2.0",
222+
CCTPConfig: &cctp.CCTPConfig{
223+
AttestationAPI: "localhost:8080",
224+
AttestationAPIInterval: 60 * time.Second,
225+
AttestationAPITimeout: 10 * time.Second,
226+
Verifiers: verifiers,
227+
},
228+
})
229+
}
205230

206231
return nil
207232
}
@@ -210,6 +235,7 @@ func ResolveContractsForTokenVerifier(ds datastore.DataStore, blockchains []*blo
210235
ver.OnRampAddresses = make(map[string]string)
211236
ver.DefaultExecutorOnRampAddresses = make(map[string]string)
212237
ver.RMNRemoteAddresses = make(map[string]string)
238+
ver.CCTPVerifierAddresses = make(map[string]string)
213239

214240
for _, chain := range blockchains {
215241
networkInfo, err := chainsel.GetChainDetailsByChainIDAndFamily(chain.ChainID, chainsel.FamilyEVM)
@@ -218,6 +244,20 @@ func ResolveContractsForTokenVerifier(ds datastore.DataStore, blockchains []*blo
218244
}
219245
selectorStr := strconv.FormatUint(networkInfo.ChainSelector, 10)
220246

247+
cctpTokenVerifierAddressRef, err := ds.Addresses().Get(datastore.NewAddressRefKey(
248+
networkInfo.ChainSelector,
249+
datastore.ContractType(cctp_verifier.ResolverType),
250+
semver.MustParse(cctp_verifier.Deploy.Version()),
251+
"CCTP",
252+
))
253+
if err != nil {
254+
framework.L.Info().
255+
Str("chainID", chain.ChainID).
256+
Msg("Failed to get CCTP Verifier address from datastore")
257+
} else {
258+
ver.CCTPVerifierAddresses[selectorStr] = cctpTokenVerifierAddressRef.Address
259+
}
260+
221261
onRampAddressRef, err := ds.Addresses().Get(datastore.NewAddressRefKey(
222262
networkInfo.ChainSelector,
223263
datastore.ContractType(onrampoperations.ContractType),

build/devenv/services/tokenVerifier.template.toml

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -13,28 +13,6 @@ MetricReaderInterval = 5
1313
TraceSampleRatio = 1.0
1414
TraceBatchTimeout = 10
1515

16-
[[token_verifiers]]
17-
type = "lbtc"
18-
version = "1.0"
19-
attestation_api = "https://lbtc-api.example.com"
20-
attestation_api_timeout = "10s"
21-
attestation_api_interval = "100ms"
22-
23-
[token_verifiers.addresses]
24-
3379446385462418246 = "0x9ac06ca36bb3dfd6a70eeb508ea5a33dadecca55"
25-
12922642891491394802 = "0xabb9d2d6f21b2be4d7250de972bd9f778accb3c5"
26-
27-
[[token_verifiers]]
28-
type = "cctp"
29-
version = "2.0"
30-
attestation_api = "https://cctp-api.example.com"
31-
attestation_api_timeout = "10s"
32-
attestation_api_interval = "100ms"
33-
34-
[token_verifiers.addresses]
35-
3379446385462418246 = "0x9ac06ca36bb3dfd6a70eeb508ea5a33dadecca55"
36-
12922642891491394802 = "0xabb9d2d6f21b2be4d7250de972bd9f778accb3c5"
37-
3816

3917
#[blockchain_infos]
4018
# [blockchain_infos.3379446385462418246]

common/toml.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,12 @@ func ParseAddressesMap(val any) (map[protocol.ChainSelector]protocol.UnknownAddr
5555
return nil, nil, fmt.Errorf("invalid verifier address for chain selector %s: expected string, got %T", key, value)
5656
}
5757

58-
result[protocol.ChainSelector(chainSelector)] = protocol.UnknownAddress(address)
58+
addr, err := protocol.NewUnknownAddressFromHex(address)
59+
if err != nil {
60+
return nil, nil, fmt.Errorf("invalid verifier address for chain selector %s: %w", key, err)
61+
}
62+
63+
result[protocol.ChainSelector(chainSelector)] = addr
5964
}
6065
return result, v, nil
6166
}

0 commit comments

Comments
 (0)