From 7b95abb979e744a96495acecd9e85c4c7def6de3 Mon Sep 17 00:00:00 2001 From: Trinketer22 <109865562+Trinketer22@users.noreply.github.com> Date: Fri, 12 Apr 2024 10:36:22 +0300 Subject: [PATCH] feat: use source registry instead of hardcoded verifier registry --- src/cli/verify.ts | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/cli/verify.ts b/src/cli/verify.ts index 62434b8..bfcf4e6 100644 --- a/src/cli/verify.ts +++ b/src/cli/verify.ts @@ -43,13 +43,13 @@ type SourcesObject = { const backends: Record< 'mainnet' | 'testnet', { - verifierRegistry: Address; + sourceRegistry: Address; backends: string[]; id: string; } > = { mainnet: { - verifierRegistry: Address.parse('EQDS0AW7NV1w3nFwx-mmryfpH4OGQ3PXnoFGOJA_8PTHuLrw'), + sourceRegistry: Address.parse('EQD-BJSVUJviud_Qv7Ymfd3qzXdrmV525e3YDzWQoHIAiInL'), backends: [ 'https://ton-source-prod-1.herokuapp.com', 'https://ton-source-prod-2.herokuapp.com', @@ -58,7 +58,7 @@ const backends: Record< id: 'orbs.com', }, testnet: { - verifierRegistry: Address.parse('EQB--CRXUbqYbqJKScEWeOrnk0TKJxB071M-WwvMpMEvq6Ed'), + sourceRegistry: Address.parse('EQCsdKYwUaXkgJkz2l0ol6qT_WxeRbE_wBCwnEybmR0u5TO8'), backends: ['https://ton-source-prod-testnet-1.herokuapp.com'], id: 'orbs-testnet', }, @@ -97,6 +97,13 @@ class VerifierRegistry implements Contract { }); } } +class SourceRegistry implements Contract { + constructor(readonly address: Address) {} + async getVerifierRegistry(provider: ContractProvider) { + const { stack } = await provider.get('get_verifier_registry_address', []); + return stack.readAddress(); + } +} async function lookupCodeHash(hash: Buffer, ui: UIProvider, retryCount: number = 5): Promise { type QueryResponse = { @@ -276,7 +283,8 @@ export const verify: Runner = async (args: Args, ui: UIProvider, context: Runner const backend = backends[network]; - const verifierRegistry = networkProvider.open(new VerifierRegistry(backend.verifierRegistry)); + const sourceRegistry = networkProvider.open(new SourceRegistry(backend.sourceRegistry)); + const verifierRegistry = networkProvider.open(new VerifierRegistry(await sourceRegistry.getVerifierRegistry())); const verifier = (await verifierRegistry.getVerifiers()).find((v) => v.name === backend.id); if (verifier === undefined) { @@ -327,7 +335,7 @@ export const verify: Runner = async (args: Args, ui: UIProvider, context: Runner const c = Cell.fromBoc(Buffer.from(msgCell.data))[0]; await networkProvider.sender().send({ - to: backend.verifierRegistry, + to: verifierRegistry.address, value: toNano('0.5'), body: c, });