From 793b0e64e726b7d3ba06210436755e750f3a9fcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1n=20Jakub=20Nani=C5=A1ta?= Date: Wed, 3 Jan 2024 13:40:08 -0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=A7=B9=20Reintroduce=20strict=20mode=20fo?= =?UTF-8?q?r=20typescript=20in=20ua-devtools=20(#146)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .changeset/few-foxes-rush.md | 5 ++++ .../src/tasks/oapp/getDefaultConfig.ts | 13 +++++---- .../src/tasks/oapp/getOAppConfig.ts | 18 +++++------- .../src/utils/taskHelpers.ts | 28 +++++++++---------- .../ua-devtools-evm-hardhat/tsconfig.json | 3 -- 5 files changed, 33 insertions(+), 34 deletions(-) create mode 100644 .changeset/few-foxes-rush.md diff --git a/.changeset/few-foxes-rush.md b/.changeset/few-foxes-rush.md new file mode 100644 index 000000000..43b8353d7 --- /dev/null +++ b/.changeset/few-foxes-rush.md @@ -0,0 +1,5 @@ +--- +"@layerzerolabs/ua-devtools-evm-hardhat": patch +--- + +Reintroduce strict mode and relax some of the return types as a consequence diff --git a/packages/ua-devtools-evm-hardhat/src/tasks/oapp/getDefaultConfig.ts b/packages/ua-devtools-evm-hardhat/src/tasks/oapp/getDefaultConfig.ts index b16a3e6c1..6471e2e30 100644 --- a/packages/ua-devtools-evm-hardhat/src/tasks/oapp/getDefaultConfig.ts +++ b/packages/ua-devtools-evm-hardhat/src/tasks/oapp/getDefaultConfig.ts @@ -15,13 +15,14 @@ export const getDefaultConfig: ActionType = async (taskArgs) => { configs[localNetworkName] = {} for (const remoteNetworkName of networks) { if (remoteNetworkName === localNetworkName) continue - const [sendLibrary, sendUlnConfig, sendExecutorConfig] = await getSendConfig( - localNetworkName, - remoteNetworkName - ) - const [receiveLibrary, receiveUlnConfig] = await getReceiveConfig(localNetworkName, remoteNetworkName) - configs[localNetworkName][remoteNetworkName] = { + const receiveConfig = await getReceiveConfig(localNetworkName, remoteNetworkName) + const sendConfig = await getSendConfig(localNetworkName, remoteNetworkName) + + const [sendLibrary, sendUlnConfig, sendExecutorConfig] = sendConfig ?? [] + const [receiveLibrary, receiveUlnConfig] = receiveConfig ?? [] + + configs[localNetworkName]![remoteNetworkName] = { defaultSendLibrary: sendLibrary, defaultReceiveLibrary: receiveLibrary, sendUlnConfig, diff --git a/packages/ua-devtools-evm-hardhat/src/tasks/oapp/getOAppConfig.ts b/packages/ua-devtools-evm-hardhat/src/tasks/oapp/getOAppConfig.ts index 7e57578f7..a046f9836 100644 --- a/packages/ua-devtools-evm-hardhat/src/tasks/oapp/getOAppConfig.ts +++ b/packages/ua-devtools-evm-hardhat/src/tasks/oapp/getOAppConfig.ts @@ -20,18 +20,14 @@ export const getOAppConfig: ActionType = async (taskArgs) => { configs[localNetworkName] = {} for (const remoteNetworkName of networks) { if (remoteNetworkName === localNetworkName) continue - const [sendLibrary, sendUlnConfig, sendExecutorConfig] = await getSendConfig( - localNetworkName, - remoteNetworkName, - addresses[index] - ) - const [receiveLibrary, receiveUlnConfig] = await getReceiveConfig( - localNetworkName, - remoteNetworkName, - addresses[index] - ) - configs[localNetworkName][remoteNetworkName] = { + const receiveConfig = await getReceiveConfig(localNetworkName, remoteNetworkName, addresses[index]) + const sendConfig = await getSendConfig(localNetworkName, remoteNetworkName, addresses[index]) + + const [sendLibrary, sendUlnConfig, sendExecutorConfig] = sendConfig ?? [] + const [receiveLibrary, receiveUlnConfig] = receiveConfig ?? [] + + configs[localNetworkName]![remoteNetworkName] = { defaultSendLibrary: sendLibrary, defaultReceiveLibrary: receiveLibrary, sendUlnConfig, diff --git a/packages/ua-devtools-evm-hardhat/src/utils/taskHelpers.ts b/packages/ua-devtools-evm-hardhat/src/utils/taskHelpers.ts index fe3e05aef..cb1f9ae9b 100644 --- a/packages/ua-devtools-evm-hardhat/src/utils/taskHelpers.ts +++ b/packages/ua-devtools-evm-hardhat/src/utils/taskHelpers.ts @@ -7,7 +7,7 @@ export async function getSendConfig( localNetworkName: string, remoteNetworkName: string, address?: Address -): Promise<[Address, Uln302UlnConfig, Uln302ExecutorConfig]> { +): Promise<[Address, Uln302UlnConfig, Uln302ExecutorConfig] | undefined> { const localEid = getEidForNetworkName(localNetworkName) const remoteEid = getEidForNetworkName(remoteNetworkName) const contractFactory = createConnectedContractFactory() @@ -16,12 +16,12 @@ export async function getSendConfig( const localEndpointSDK = await endpointFactory({ eid: localEid, contractName: 'EndpointV2' }) // First we get the SDK for the local send library - let sendLibrary: Address - if (address) { - sendLibrary = await localEndpointSDK.getSendLibrary(address, remoteEid) - } else { - sendLibrary = await localEndpointSDK.getDefaultSendLibrary(remoteEid) - } + const sendLibrary = + address == null + ? await localEndpointSDK.getDefaultSendLibrary(remoteEid) + : await localEndpointSDK.getSendLibrary(address, remoteEid) + + if (sendLibrary == null) return undefined const localSendUlnSDK = await localEndpointSDK.getUln302SDK(sendLibrary) const sendUlnConfig = await localSendUlnSDK.getUlnConfig(remoteEid) @@ -34,7 +34,7 @@ export async function getReceiveConfig( localNetworkName: string, remoteNetworkName: string, address?: Address -): Promise<[Address, Uln302UlnConfig, Timeout]> { +): Promise<[Address, Uln302UlnConfig, Timeout] | undefined> { const localEid = getEidForNetworkName(localNetworkName) const remoteEid = getEidForNetworkName(remoteNetworkName) const contractFactory = createConnectedContractFactory() @@ -43,12 +43,12 @@ export async function getReceiveConfig( const localEndpointSDK = await endpointFactory({ eid: localEid, contractName: 'EndpointV2' }) // First we get the SDK for the local send library - let receiveLibrary: Address - if (address) { - receiveLibrary = (await localEndpointSDK.getReceiveLibrary(address, remoteEid))[0] - } else { - receiveLibrary = await localEndpointSDK.getDefaultReceiveLibrary(remoteEid) - } + const receiveLibrary = + address == null + ? await localEndpointSDK.getDefaultReceiveLibrary(remoteEid) + : await localEndpointSDK.getReceiveLibrary(address, remoteEid).then(([address]) => address) + + if (receiveLibrary == null) return undefined let receiveLibraryTimeout: Timeout if (address) { diff --git a/packages/ua-devtools-evm-hardhat/tsconfig.json b/packages/ua-devtools-evm-hardhat/tsconfig.json index d2d3e930c..149a91f20 100644 --- a/packages/ua-devtools-evm-hardhat/tsconfig.json +++ b/packages/ua-devtools-evm-hardhat/tsconfig.json @@ -2,9 +2,6 @@ "extends": "../../tsconfig.json", "exclude": ["dist", "node_modules"], "compilerOptions": { - "noImplicitReturns": false, - "strictNullChecks": false, - "strictPropertyInitialization": false, "types": ["node", "jest"], "paths": { "@/*": ["./src/*"]