From fe8f1010982903711c3bdf03d1a24f8c48cadfa0 Mon Sep 17 00:00:00 2001 From: Romain TREFAULT Date: Wed, 27 Jul 2022 16:03:28 +0200 Subject: [PATCH 01/12] feat: add goerli in storage --- .../ethereum-storage/src/ethereum-utils.ts | 1 + .../test/ethereum-utils.test.ts | 6 ++ .../erc20/thegraph-info-retriever.test.ts | 84 +++++++++++++++++++ 3 files changed, 91 insertions(+) diff --git a/packages/ethereum-storage/src/ethereum-utils.ts b/packages/ethereum-storage/src/ethereum-utils.ts index 9b879685d..75351078f 100644 --- a/packages/ethereum-storage/src/ethereum-utils.ts +++ b/packages/ethereum-storage/src/ethereum-utils.ts @@ -8,6 +8,7 @@ const networks = { [StorageTypes.EthereumNetwork.MAINNET]: 'mainnet', [StorageTypes.EthereumNetwork.KOVAN]: 'kovan', [StorageTypes.EthereumNetwork.RINKEBY]: 'rinkeby', + [StorageTypes.EthereumNetwork.GOERLI]: 'goerli', [StorageTypes.EthereumNetwork.SOKOL]: 'sokol', [StorageTypes.EthereumNetwork.XDAI]: 'xdai', }; diff --git a/packages/ethereum-storage/test/ethereum-utils.test.ts b/packages/ethereum-storage/test/ethereum-utils.test.ts index 17fc6d353..a423b9dda 100644 --- a/packages/ethereum-storage/test/ethereum-utils.test.ts +++ b/packages/ethereum-storage/test/ethereum-utils.test.ts @@ -21,6 +21,9 @@ describe('Ethereum Utils', () => { expect(EthereumUtils.getEthereumNetworkNameFromId(StorageTypes.EthereumNetwork.RINKEBY)).toBe( 'rinkeby', ); + expect(EthereumUtils.getEthereumNetworkNameFromId(StorageTypes.EthereumNetwork.GOERLI)).toBe( + 'goerli', + ); expect(EthereumUtils.getEthereumNetworkNameFromId(StorageTypes.EthereumNetwork.SOKOL)).toBe( 'sokol', ); @@ -48,6 +51,9 @@ describe('Ethereum Utils', () => { expect(EthereumUtils.getEthereumIdFromNetworkName('rinkeby')).toBe( StorageTypes.EthereumNetwork.RINKEBY, ); + expect(EthereumUtils.getEthereumIdFromNetworkName('goerli')).toBe( + StorageTypes.EthereumNetwork.GOERLI, + ); expect(EthereumUtils.getEthereumIdFromNetworkName('sokol')).toBe( StorageTypes.EthereumNetwork.SOKOL, ); diff --git a/packages/payment-detection/test/erc20/thegraph-info-retriever.test.ts b/packages/payment-detection/test/erc20/thegraph-info-retriever.test.ts index 7c13df6b7..0511e770d 100644 --- a/packages/payment-detection/test/erc20/thegraph-info-retriever.test.ts +++ b/packages/payment-detection/test/erc20/thegraph-info-retriever.test.ts @@ -89,4 +89,88 @@ describe('api/erc20/thegraph-info-retriever', () => { expect(transferEvents[0].parameters?.block).toEqual(paymentData.block); }); }); + describe('on goerli', () => { + const GOERLI_ETH_FEE_PROXY_CONTRACT = '0xe11BF2fDA23bF0A98365e1A4c04A87C9339e8687'; + const GOERLI_ETH_CONVERSION_PROXY_CONTRACT = '0xED250D9219EB93098Bb67aEbc992963172B9c8DA'; + + it('should get payment event from ethFeeProxy via subgraph', async () => { + const paymentData = { + reference: '0x6c93723bc5f82e6fbb2ea994bf0fb572fa19f7a2a3146065e21752b95668efe5', + txHash: '0x3e2d6cc2534b1d340ba2954f34e6cc819d6da64ff76863ea89c6d34b15d13c97', + from: '0x186e7fe6c34ea0eca7f9c2fd29651fc0443e3f29', + to: '0x5000ee9fb9c96a2a09d8efb695ac21d6c429ff11', + network: 'goerli', + salt: '0ee84db293a752c6', + amount: '30000000000000', + requestId: '0188791633ff0ec72a7dbdefb886d2db6cccfa98287320839c2f173c7a4e3ce7e1', + block: 9606098, + feeAddress: '0x5000EE9FB9c96A2A09D8efB695aC21D6C429fF11', + feeAmount: '0', + }; + const paymentReference = PaymentReferenceCalculator.calculate( + paymentData.requestId, + paymentData.salt, + paymentData.to, + ); + const onChainReference = utils.keccak256(`0x${paymentReference}`); + expect(onChainReference).toEqual(paymentData.reference); + + const graphRetriever = new TheGraphInfoRetriever( + paymentReference, + GOERLI_ETH_FEE_PROXY_CONTRACT, + null, + paymentData.to, + PaymentTypes.EVENTS_NAMES.PAYMENT, + paymentData.network, + ); + const allNetworkEvents = await graphRetriever.getTransferEvents(); + const transferEvents = allNetworkEvents.paymentEvents; + expect(transferEvents).toHaveLength(1); + expect(transferEvents[0].amount).toEqual('30000000000000'); + expect(transferEvents[0].name).toEqual('payment'); + expect(transferEvents[0].parameters?.to).toEqual(paymentData.to); + expect(transferEvents[0].parameters?.txHash).toEqual(paymentData.txHash); + expect(transferEvents[0].parameters?.block).toEqual(paymentData.block); + expect(transferEvents[0].parameters?.feeAddress).toEqual(paymentData.feeAddress); + expect(transferEvents[0].parameters?.feeAmount).toEqual(paymentData.feeAmount); + }); + + it('should get payment event from ethFeeConversionProxy via subgraph', async () => { + const paymentData = { + reference: '0x6c93723bc5f82e6fbb2ea994bf0fb572fa19f7a2a3146065e21752b95668efe5', + txHash: '0x2f7b4752aa259166c038cd9073056c5979760cf0eea55d093fca2095c229313b', + from: '0x186e7fe6c34ea0eca7f9c2fd29651fc0443e3f29', + to: '0x5000ee9fb9c96a2a09d8efb695ac21d6c429ff11', + network: 'goerli', + salt: '0ee84db293a752c6', + amount: '7000', + block: 9610470, + requestId: '0188791633ff0ec72a7dbdefb886d2db6cccfa98287320839c2f173c7a4e3ce7e1', + }; + + const shortReference = PaymentReferenceCalculator.calculate( + paymentData.requestId, + paymentData.salt, + paymentData.to, + ); + const onChainReference = utils.keccak256(`0x${shortReference}`); + expect(onChainReference).toEqual(paymentData.reference); + + const graphRetriever = new TheGraphInfoRetriever( + shortReference, + GOERLI_ETH_CONVERSION_PROXY_CONTRACT, + null, + paymentData.to, + PaymentTypes.EVENTS_NAMES.PAYMENT, + paymentData.network, + ); + const allNetworkEvents = await graphRetriever.getTransferEvents(); + const transferEvents = allNetworkEvents.paymentEvents; + expect(transferEvents).toHaveLength(1); + expect(transferEvents[0].amount).toEqual(paymentData.amount); + expect(transferEvents[0].parameters?.to).toEqual(paymentData.to); + expect(transferEvents[0].parameters?.txHash).toEqual(paymentData.txHash); + expect(transferEvents[0].parameters?.block).toEqual(paymentData.block); + }); + }); }); From 7d4cb82476ef008b906e8b03fe1ee6499bbc685f Mon Sep 17 00:00:00 2001 From: Romain TREFAULT Date: Wed, 27 Jul 2022 16:05:21 +0200 Subject: [PATCH 02/12] feat: add goerli ID in storage types --- packages/types/src/storage-types.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/types/src/storage-types.ts b/packages/types/src/storage-types.ts index c6e51c33b..4ab5c6702 100644 --- a/packages/types/src/storage-types.ts +++ b/packages/types/src/storage-types.ts @@ -136,6 +136,7 @@ export enum EthereumNetwork { PRIVATE = 0, MAINNET = 1, RINKEBY = 4, + GOERLI = 5, KOVAN = 42, SOKOL = 77, XDAI = 100, From cd53e5d19a19d1aa1b00dae3686182d20f0fdaf1 Mon Sep 17 00:00:00 2001 From: Romain TREFAULT Date: Wed, 27 Jul 2022 16:06:43 +0200 Subject: [PATCH 03/12] feat: add goerli smart-contract support --- .../src/lib/artifacts/RequestHashStorage/index.ts | 4 ++++ .../src/lib/artifacts/RequestHashSubmitter/index.ts | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/packages/smart-contracts/src/lib/artifacts/RequestHashStorage/index.ts b/packages/smart-contracts/src/lib/artifacts/RequestHashStorage/index.ts index e3e0981d6..d9b4ae963 100644 --- a/packages/smart-contracts/src/lib/artifacts/RequestHashStorage/index.ts +++ b/packages/smart-contracts/src/lib/artifacts/RequestHashStorage/index.ts @@ -21,6 +21,10 @@ export const requestHashStorageArtifact = new ContractArtifact Date: Wed, 27 Jul 2022 16:14:09 +0200 Subject: [PATCH 04/12] feat: add goerli in storage --- .../ethereum-storage/src/ethereum-utils.ts | 1 + .../test/ethereum-utils.test.ts | 6 ++ .../erc20/thegraph-info-retriever.test.ts | 84 +++++++++++++++++++ 3 files changed, 91 insertions(+) diff --git a/packages/ethereum-storage/src/ethereum-utils.ts b/packages/ethereum-storage/src/ethereum-utils.ts index 9b879685d..75351078f 100644 --- a/packages/ethereum-storage/src/ethereum-utils.ts +++ b/packages/ethereum-storage/src/ethereum-utils.ts @@ -8,6 +8,7 @@ const networks = { [StorageTypes.EthereumNetwork.MAINNET]: 'mainnet', [StorageTypes.EthereumNetwork.KOVAN]: 'kovan', [StorageTypes.EthereumNetwork.RINKEBY]: 'rinkeby', + [StorageTypes.EthereumNetwork.GOERLI]: 'goerli', [StorageTypes.EthereumNetwork.SOKOL]: 'sokol', [StorageTypes.EthereumNetwork.XDAI]: 'xdai', }; diff --git a/packages/ethereum-storage/test/ethereum-utils.test.ts b/packages/ethereum-storage/test/ethereum-utils.test.ts index 17fc6d353..a423b9dda 100644 --- a/packages/ethereum-storage/test/ethereum-utils.test.ts +++ b/packages/ethereum-storage/test/ethereum-utils.test.ts @@ -21,6 +21,9 @@ describe('Ethereum Utils', () => { expect(EthereumUtils.getEthereumNetworkNameFromId(StorageTypes.EthereumNetwork.RINKEBY)).toBe( 'rinkeby', ); + expect(EthereumUtils.getEthereumNetworkNameFromId(StorageTypes.EthereumNetwork.GOERLI)).toBe( + 'goerli', + ); expect(EthereumUtils.getEthereumNetworkNameFromId(StorageTypes.EthereumNetwork.SOKOL)).toBe( 'sokol', ); @@ -48,6 +51,9 @@ describe('Ethereum Utils', () => { expect(EthereumUtils.getEthereumIdFromNetworkName('rinkeby')).toBe( StorageTypes.EthereumNetwork.RINKEBY, ); + expect(EthereumUtils.getEthereumIdFromNetworkName('goerli')).toBe( + StorageTypes.EthereumNetwork.GOERLI, + ); expect(EthereumUtils.getEthereumIdFromNetworkName('sokol')).toBe( StorageTypes.EthereumNetwork.SOKOL, ); diff --git a/packages/payment-detection/test/erc20/thegraph-info-retriever.test.ts b/packages/payment-detection/test/erc20/thegraph-info-retriever.test.ts index 7c13df6b7..0511e770d 100644 --- a/packages/payment-detection/test/erc20/thegraph-info-retriever.test.ts +++ b/packages/payment-detection/test/erc20/thegraph-info-retriever.test.ts @@ -89,4 +89,88 @@ describe('api/erc20/thegraph-info-retriever', () => { expect(transferEvents[0].parameters?.block).toEqual(paymentData.block); }); }); + describe('on goerli', () => { + const GOERLI_ETH_FEE_PROXY_CONTRACT = '0xe11BF2fDA23bF0A98365e1A4c04A87C9339e8687'; + const GOERLI_ETH_CONVERSION_PROXY_CONTRACT = '0xED250D9219EB93098Bb67aEbc992963172B9c8DA'; + + it('should get payment event from ethFeeProxy via subgraph', async () => { + const paymentData = { + reference: '0x6c93723bc5f82e6fbb2ea994bf0fb572fa19f7a2a3146065e21752b95668efe5', + txHash: '0x3e2d6cc2534b1d340ba2954f34e6cc819d6da64ff76863ea89c6d34b15d13c97', + from: '0x186e7fe6c34ea0eca7f9c2fd29651fc0443e3f29', + to: '0x5000ee9fb9c96a2a09d8efb695ac21d6c429ff11', + network: 'goerli', + salt: '0ee84db293a752c6', + amount: '30000000000000', + requestId: '0188791633ff0ec72a7dbdefb886d2db6cccfa98287320839c2f173c7a4e3ce7e1', + block: 9606098, + feeAddress: '0x5000EE9FB9c96A2A09D8efB695aC21D6C429fF11', + feeAmount: '0', + }; + const paymentReference = PaymentReferenceCalculator.calculate( + paymentData.requestId, + paymentData.salt, + paymentData.to, + ); + const onChainReference = utils.keccak256(`0x${paymentReference}`); + expect(onChainReference).toEqual(paymentData.reference); + + const graphRetriever = new TheGraphInfoRetriever( + paymentReference, + GOERLI_ETH_FEE_PROXY_CONTRACT, + null, + paymentData.to, + PaymentTypes.EVENTS_NAMES.PAYMENT, + paymentData.network, + ); + const allNetworkEvents = await graphRetriever.getTransferEvents(); + const transferEvents = allNetworkEvents.paymentEvents; + expect(transferEvents).toHaveLength(1); + expect(transferEvents[0].amount).toEqual('30000000000000'); + expect(transferEvents[0].name).toEqual('payment'); + expect(transferEvents[0].parameters?.to).toEqual(paymentData.to); + expect(transferEvents[0].parameters?.txHash).toEqual(paymentData.txHash); + expect(transferEvents[0].parameters?.block).toEqual(paymentData.block); + expect(transferEvents[0].parameters?.feeAddress).toEqual(paymentData.feeAddress); + expect(transferEvents[0].parameters?.feeAmount).toEqual(paymentData.feeAmount); + }); + + it('should get payment event from ethFeeConversionProxy via subgraph', async () => { + const paymentData = { + reference: '0x6c93723bc5f82e6fbb2ea994bf0fb572fa19f7a2a3146065e21752b95668efe5', + txHash: '0x2f7b4752aa259166c038cd9073056c5979760cf0eea55d093fca2095c229313b', + from: '0x186e7fe6c34ea0eca7f9c2fd29651fc0443e3f29', + to: '0x5000ee9fb9c96a2a09d8efb695ac21d6c429ff11', + network: 'goerli', + salt: '0ee84db293a752c6', + amount: '7000', + block: 9610470, + requestId: '0188791633ff0ec72a7dbdefb886d2db6cccfa98287320839c2f173c7a4e3ce7e1', + }; + + const shortReference = PaymentReferenceCalculator.calculate( + paymentData.requestId, + paymentData.salt, + paymentData.to, + ); + const onChainReference = utils.keccak256(`0x${shortReference}`); + expect(onChainReference).toEqual(paymentData.reference); + + const graphRetriever = new TheGraphInfoRetriever( + shortReference, + GOERLI_ETH_CONVERSION_PROXY_CONTRACT, + null, + paymentData.to, + PaymentTypes.EVENTS_NAMES.PAYMENT, + paymentData.network, + ); + const allNetworkEvents = await graphRetriever.getTransferEvents(); + const transferEvents = allNetworkEvents.paymentEvents; + expect(transferEvents).toHaveLength(1); + expect(transferEvents[0].amount).toEqual(paymentData.amount); + expect(transferEvents[0].parameters?.to).toEqual(paymentData.to); + expect(transferEvents[0].parameters?.txHash).toEqual(paymentData.txHash); + expect(transferEvents[0].parameters?.block).toEqual(paymentData.block); + }); + }); }); From d6b17fc00472d350c6ce264900a7c70fcce652af Mon Sep 17 00:00:00 2001 From: Romain TREFAULT Date: Wed, 27 Jul 2022 16:14:50 +0200 Subject: [PATCH 05/12] feat: add goerli ID in storage types --- packages/types/src/storage-types.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/types/src/storage-types.ts b/packages/types/src/storage-types.ts index c6e51c33b..4ab5c6702 100644 --- a/packages/types/src/storage-types.ts +++ b/packages/types/src/storage-types.ts @@ -136,6 +136,7 @@ export enum EthereumNetwork { PRIVATE = 0, MAINNET = 1, RINKEBY = 4, + GOERLI = 5, KOVAN = 42, SOKOL = 77, XDAI = 100, From 2812ec24d3f3a34eb2c320be02b3f73722929950 Mon Sep 17 00:00:00 2001 From: Romain TREFAULT Date: Wed, 27 Jul 2022 16:15:15 +0200 Subject: [PATCH 06/12] feat: add goerli smart-contract support --- .../src/lib/artifacts/RequestHashStorage/index.ts | 4 ++++ .../src/lib/artifacts/RequestHashSubmitter/index.ts | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/packages/smart-contracts/src/lib/artifacts/RequestHashStorage/index.ts b/packages/smart-contracts/src/lib/artifacts/RequestHashStorage/index.ts index e3e0981d6..d9b4ae963 100644 --- a/packages/smart-contracts/src/lib/artifacts/RequestHashStorage/index.ts +++ b/packages/smart-contracts/src/lib/artifacts/RequestHashStorage/index.ts @@ -21,6 +21,10 @@ export const requestHashStorageArtifact = new ContractArtifact Date: Wed, 27 Jul 2022 16:20:37 +0200 Subject: [PATCH 07/12] fix: remove a test --- .../erc20/thegraph-info-retriever.test.ts | 84 ------------------- 1 file changed, 84 deletions(-) diff --git a/packages/payment-detection/test/erc20/thegraph-info-retriever.test.ts b/packages/payment-detection/test/erc20/thegraph-info-retriever.test.ts index 0511e770d..7c13df6b7 100644 --- a/packages/payment-detection/test/erc20/thegraph-info-retriever.test.ts +++ b/packages/payment-detection/test/erc20/thegraph-info-retriever.test.ts @@ -89,88 +89,4 @@ describe('api/erc20/thegraph-info-retriever', () => { expect(transferEvents[0].parameters?.block).toEqual(paymentData.block); }); }); - describe('on goerli', () => { - const GOERLI_ETH_FEE_PROXY_CONTRACT = '0xe11BF2fDA23bF0A98365e1A4c04A87C9339e8687'; - const GOERLI_ETH_CONVERSION_PROXY_CONTRACT = '0xED250D9219EB93098Bb67aEbc992963172B9c8DA'; - - it('should get payment event from ethFeeProxy via subgraph', async () => { - const paymentData = { - reference: '0x6c93723bc5f82e6fbb2ea994bf0fb572fa19f7a2a3146065e21752b95668efe5', - txHash: '0x3e2d6cc2534b1d340ba2954f34e6cc819d6da64ff76863ea89c6d34b15d13c97', - from: '0x186e7fe6c34ea0eca7f9c2fd29651fc0443e3f29', - to: '0x5000ee9fb9c96a2a09d8efb695ac21d6c429ff11', - network: 'goerli', - salt: '0ee84db293a752c6', - amount: '30000000000000', - requestId: '0188791633ff0ec72a7dbdefb886d2db6cccfa98287320839c2f173c7a4e3ce7e1', - block: 9606098, - feeAddress: '0x5000EE9FB9c96A2A09D8efB695aC21D6C429fF11', - feeAmount: '0', - }; - const paymentReference = PaymentReferenceCalculator.calculate( - paymentData.requestId, - paymentData.salt, - paymentData.to, - ); - const onChainReference = utils.keccak256(`0x${paymentReference}`); - expect(onChainReference).toEqual(paymentData.reference); - - const graphRetriever = new TheGraphInfoRetriever( - paymentReference, - GOERLI_ETH_FEE_PROXY_CONTRACT, - null, - paymentData.to, - PaymentTypes.EVENTS_NAMES.PAYMENT, - paymentData.network, - ); - const allNetworkEvents = await graphRetriever.getTransferEvents(); - const transferEvents = allNetworkEvents.paymentEvents; - expect(transferEvents).toHaveLength(1); - expect(transferEvents[0].amount).toEqual('30000000000000'); - expect(transferEvents[0].name).toEqual('payment'); - expect(transferEvents[0].parameters?.to).toEqual(paymentData.to); - expect(transferEvents[0].parameters?.txHash).toEqual(paymentData.txHash); - expect(transferEvents[0].parameters?.block).toEqual(paymentData.block); - expect(transferEvents[0].parameters?.feeAddress).toEqual(paymentData.feeAddress); - expect(transferEvents[0].parameters?.feeAmount).toEqual(paymentData.feeAmount); - }); - - it('should get payment event from ethFeeConversionProxy via subgraph', async () => { - const paymentData = { - reference: '0x6c93723bc5f82e6fbb2ea994bf0fb572fa19f7a2a3146065e21752b95668efe5', - txHash: '0x2f7b4752aa259166c038cd9073056c5979760cf0eea55d093fca2095c229313b', - from: '0x186e7fe6c34ea0eca7f9c2fd29651fc0443e3f29', - to: '0x5000ee9fb9c96a2a09d8efb695ac21d6c429ff11', - network: 'goerli', - salt: '0ee84db293a752c6', - amount: '7000', - block: 9610470, - requestId: '0188791633ff0ec72a7dbdefb886d2db6cccfa98287320839c2f173c7a4e3ce7e1', - }; - - const shortReference = PaymentReferenceCalculator.calculate( - paymentData.requestId, - paymentData.salt, - paymentData.to, - ); - const onChainReference = utils.keccak256(`0x${shortReference}`); - expect(onChainReference).toEqual(paymentData.reference); - - const graphRetriever = new TheGraphInfoRetriever( - shortReference, - GOERLI_ETH_CONVERSION_PROXY_CONTRACT, - null, - paymentData.to, - PaymentTypes.EVENTS_NAMES.PAYMENT, - paymentData.network, - ); - const allNetworkEvents = await graphRetriever.getTransferEvents(); - const transferEvents = allNetworkEvents.paymentEvents; - expect(transferEvents).toHaveLength(1); - expect(transferEvents[0].amount).toEqual(paymentData.amount); - expect(transferEvents[0].parameters?.to).toEqual(paymentData.to); - expect(transferEvents[0].parameters?.txHash).toEqual(paymentData.txHash); - expect(transferEvents[0].parameters?.block).toEqual(paymentData.block); - }); - }); }); From 7331590ceeca007b26caa1ea4a1c71fc9c8b16d6 Mon Sep 17 00:00:00 2001 From: Romain TREFAULT Date: Wed, 27 Jul 2022 16:28:56 +0200 Subject: [PATCH 08/12] fix: remove a test --- .../erc20/thegraph-info-retriever.test.ts | 84 ------------------- 1 file changed, 84 deletions(-) diff --git a/packages/payment-detection/test/erc20/thegraph-info-retriever.test.ts b/packages/payment-detection/test/erc20/thegraph-info-retriever.test.ts index 0511e770d..7c13df6b7 100644 --- a/packages/payment-detection/test/erc20/thegraph-info-retriever.test.ts +++ b/packages/payment-detection/test/erc20/thegraph-info-retriever.test.ts @@ -89,88 +89,4 @@ describe('api/erc20/thegraph-info-retriever', () => { expect(transferEvents[0].parameters?.block).toEqual(paymentData.block); }); }); - describe('on goerli', () => { - const GOERLI_ETH_FEE_PROXY_CONTRACT = '0xe11BF2fDA23bF0A98365e1A4c04A87C9339e8687'; - const GOERLI_ETH_CONVERSION_PROXY_CONTRACT = '0xED250D9219EB93098Bb67aEbc992963172B9c8DA'; - - it('should get payment event from ethFeeProxy via subgraph', async () => { - const paymentData = { - reference: '0x6c93723bc5f82e6fbb2ea994bf0fb572fa19f7a2a3146065e21752b95668efe5', - txHash: '0x3e2d6cc2534b1d340ba2954f34e6cc819d6da64ff76863ea89c6d34b15d13c97', - from: '0x186e7fe6c34ea0eca7f9c2fd29651fc0443e3f29', - to: '0x5000ee9fb9c96a2a09d8efb695ac21d6c429ff11', - network: 'goerli', - salt: '0ee84db293a752c6', - amount: '30000000000000', - requestId: '0188791633ff0ec72a7dbdefb886d2db6cccfa98287320839c2f173c7a4e3ce7e1', - block: 9606098, - feeAddress: '0x5000EE9FB9c96A2A09D8efB695aC21D6C429fF11', - feeAmount: '0', - }; - const paymentReference = PaymentReferenceCalculator.calculate( - paymentData.requestId, - paymentData.salt, - paymentData.to, - ); - const onChainReference = utils.keccak256(`0x${paymentReference}`); - expect(onChainReference).toEqual(paymentData.reference); - - const graphRetriever = new TheGraphInfoRetriever( - paymentReference, - GOERLI_ETH_FEE_PROXY_CONTRACT, - null, - paymentData.to, - PaymentTypes.EVENTS_NAMES.PAYMENT, - paymentData.network, - ); - const allNetworkEvents = await graphRetriever.getTransferEvents(); - const transferEvents = allNetworkEvents.paymentEvents; - expect(transferEvents).toHaveLength(1); - expect(transferEvents[0].amount).toEqual('30000000000000'); - expect(transferEvents[0].name).toEqual('payment'); - expect(transferEvents[0].parameters?.to).toEqual(paymentData.to); - expect(transferEvents[0].parameters?.txHash).toEqual(paymentData.txHash); - expect(transferEvents[0].parameters?.block).toEqual(paymentData.block); - expect(transferEvents[0].parameters?.feeAddress).toEqual(paymentData.feeAddress); - expect(transferEvents[0].parameters?.feeAmount).toEqual(paymentData.feeAmount); - }); - - it('should get payment event from ethFeeConversionProxy via subgraph', async () => { - const paymentData = { - reference: '0x6c93723bc5f82e6fbb2ea994bf0fb572fa19f7a2a3146065e21752b95668efe5', - txHash: '0x2f7b4752aa259166c038cd9073056c5979760cf0eea55d093fca2095c229313b', - from: '0x186e7fe6c34ea0eca7f9c2fd29651fc0443e3f29', - to: '0x5000ee9fb9c96a2a09d8efb695ac21d6c429ff11', - network: 'goerli', - salt: '0ee84db293a752c6', - amount: '7000', - block: 9610470, - requestId: '0188791633ff0ec72a7dbdefb886d2db6cccfa98287320839c2f173c7a4e3ce7e1', - }; - - const shortReference = PaymentReferenceCalculator.calculate( - paymentData.requestId, - paymentData.salt, - paymentData.to, - ); - const onChainReference = utils.keccak256(`0x${shortReference}`); - expect(onChainReference).toEqual(paymentData.reference); - - const graphRetriever = new TheGraphInfoRetriever( - shortReference, - GOERLI_ETH_CONVERSION_PROXY_CONTRACT, - null, - paymentData.to, - PaymentTypes.EVENTS_NAMES.PAYMENT, - paymentData.network, - ); - const allNetworkEvents = await graphRetriever.getTransferEvents(); - const transferEvents = allNetworkEvents.paymentEvents; - expect(transferEvents).toHaveLength(1); - expect(transferEvents[0].amount).toEqual(paymentData.amount); - expect(transferEvents[0].parameters?.to).toEqual(paymentData.to); - expect(transferEvents[0].parameters?.txHash).toEqual(paymentData.txHash); - expect(transferEvents[0].parameters?.block).toEqual(paymentData.block); - }); - }); }); From fc22bed9ff5f4355c8fb5c7e74a8b5cad0e22a6f Mon Sep 17 00:00:00 2001 From: Romain TREFAULT Date: Wed, 27 Jul 2022 17:08:23 +0200 Subject: [PATCH 09/12] feat: add goerli for storage --- packages/ethereum-storage/src/ethereum-utils.ts | 1 + packages/ethereum-storage/test/ethereum-utils.test.ts | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/packages/ethereum-storage/src/ethereum-utils.ts b/packages/ethereum-storage/src/ethereum-utils.ts index 9b879685d..75351078f 100644 --- a/packages/ethereum-storage/src/ethereum-utils.ts +++ b/packages/ethereum-storage/src/ethereum-utils.ts @@ -8,6 +8,7 @@ const networks = { [StorageTypes.EthereumNetwork.MAINNET]: 'mainnet', [StorageTypes.EthereumNetwork.KOVAN]: 'kovan', [StorageTypes.EthereumNetwork.RINKEBY]: 'rinkeby', + [StorageTypes.EthereumNetwork.GOERLI]: 'goerli', [StorageTypes.EthereumNetwork.SOKOL]: 'sokol', [StorageTypes.EthereumNetwork.XDAI]: 'xdai', }; diff --git a/packages/ethereum-storage/test/ethereum-utils.test.ts b/packages/ethereum-storage/test/ethereum-utils.test.ts index 17fc6d353..a423b9dda 100644 --- a/packages/ethereum-storage/test/ethereum-utils.test.ts +++ b/packages/ethereum-storage/test/ethereum-utils.test.ts @@ -21,6 +21,9 @@ describe('Ethereum Utils', () => { expect(EthereumUtils.getEthereumNetworkNameFromId(StorageTypes.EthereumNetwork.RINKEBY)).toBe( 'rinkeby', ); + expect(EthereumUtils.getEthereumNetworkNameFromId(StorageTypes.EthereumNetwork.GOERLI)).toBe( + 'goerli', + ); expect(EthereumUtils.getEthereumNetworkNameFromId(StorageTypes.EthereumNetwork.SOKOL)).toBe( 'sokol', ); @@ -48,6 +51,9 @@ describe('Ethereum Utils', () => { expect(EthereumUtils.getEthereumIdFromNetworkName('rinkeby')).toBe( StorageTypes.EthereumNetwork.RINKEBY, ); + expect(EthereumUtils.getEthereumIdFromNetworkName('goerli')).toBe( + StorageTypes.EthereumNetwork.GOERLI, + ); expect(EthereumUtils.getEthereumIdFromNetworkName('sokol')).toBe( StorageTypes.EthereumNetwork.SOKOL, ); From b5cd87989d574253e8224046acb840f788b14a22 Mon Sep 17 00:00:00 2001 From: Romain TREFAULT Date: Wed, 27 Jul 2022 17:09:16 +0200 Subject: [PATCH 10/12] feat: add goerli ID in storage-types --- .../src/lib/artifacts/RequestHashStorage/index.ts | 4 ++++ .../src/lib/artifacts/RequestHashSubmitter/index.ts | 4 ++++ packages/types/src/storage-types.ts | 1 + 3 files changed, 9 insertions(+) diff --git a/packages/smart-contracts/src/lib/artifacts/RequestHashStorage/index.ts b/packages/smart-contracts/src/lib/artifacts/RequestHashStorage/index.ts index e3e0981d6..d9b4ae963 100644 --- a/packages/smart-contracts/src/lib/artifacts/RequestHashStorage/index.ts +++ b/packages/smart-contracts/src/lib/artifacts/RequestHashStorage/index.ts @@ -21,6 +21,10 @@ export const requestHashStorageArtifact = new ContractArtifact Date: Wed, 27 Jul 2022 17:22:06 +0200 Subject: [PATCH 11/12] test unsigned commit --- packages/payment-detection/test/eth/test.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 packages/payment-detection/test/eth/test.txt diff --git a/packages/payment-detection/test/eth/test.txt b/packages/payment-detection/test/eth/test.txt new file mode 100644 index 000000000..e69de29bb From 70dca1c0fab1e9557a14145c1034959702284139 Mon Sep 17 00:00:00 2001 From: Romain TREFAULT Date: Wed, 27 Jul 2022 17:23:19 +0200 Subject: [PATCH 12/12] test unsigned commit --- packages/payment-detection/test/eth/test.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 packages/payment-detection/test/eth/test.txt diff --git a/packages/payment-detection/test/eth/test.txt b/packages/payment-detection/test/eth/test.txt deleted file mode 100644 index e69de29bb..000000000