From a64e5a88391d360cee951948dd6fc124903ee2c2 Mon Sep 17 00:00:00 2001 From: Adm Date: Tue, 5 Nov 2024 07:51:15 +0000 Subject: [PATCH 1/7] feat: support .tg extension for NEAR --- packages/currency/src/currency-utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/currency/src/currency-utils.ts b/packages/currency/src/currency-utils.ts index 0464b9d4b..82c0a252f 100644 --- a/packages/currency/src/currency-utils.ts +++ b/packages/currency/src/currency-utils.ts @@ -27,7 +27,7 @@ export const isValidNearAddress = (address: string, network?: string): boolean = switch (network) { case 'aurora': case 'near': - return !!address.match(/\.near$/); + return !!address.match(/\.(near|tg)$/); case 'aurora-testnet': case 'near-testnet': return !!address.match(/\.testnet$/); From 952f10724a46623bb6d3fa72bad2b267b5ce5d45 Mon Sep 17 00:00:00 2001 From: Adm Date: Tue, 5 Nov 2024 08:48:01 +0000 Subject: [PATCH 2/7] Update any-to-near.test.ts --- .../test/extensions/payment-network/any-to-near.test.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/advanced-logic/test/extensions/payment-network/any-to-near.test.ts b/packages/advanced-logic/test/extensions/payment-network/any-to-near.test.ts index ce3f3daa2..7e90867e5 100644 --- a/packages/advanced-logic/test/extensions/payment-network/any-to-near.test.ts +++ b/packages/advanced-logic/test/extensions/payment-network/any-to-near.test.ts @@ -100,6 +100,15 @@ describe('extensions/payment-network/any-to-native-token', () => { }), ).toBeTruthy(); }); + it('works with .tg extension', () => { + expect( + testCase.paymentNetwork.createCreationAction({ + salt, + network: testCase.network, + paymentAddress: 'valid.tg', + }), + ).toBeTruthy(); + }); it('throws when payment address is invalid', () => { expect(() => { testCase.paymentNetwork.createCreationAction({ From 4b154dacf26b0af1e1ee671c8990f42dfb566dcb Mon Sep 17 00:00:00 2001 From: Adm Date: Tue, 5 Nov 2024 09:03:21 +0000 Subject: [PATCH 3/7] Update any-to-near.test.ts --- .../payment-network/any-to-near.test.ts | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/packages/advanced-logic/test/extensions/payment-network/any-to-near.test.ts b/packages/advanced-logic/test/extensions/payment-network/any-to-near.test.ts index 7e90867e5..79a00d229 100644 --- a/packages/advanced-logic/test/extensions/payment-network/any-to-near.test.ts +++ b/packages/advanced-logic/test/extensions/payment-network/any-to-near.test.ts @@ -100,15 +100,6 @@ describe('extensions/payment-network/any-to-native-token', () => { }), ).toBeTruthy(); }); - it('works with .tg extension', () => { - expect( - testCase.paymentNetwork.createCreationAction({ - salt, - network: testCase.network, - paymentAddress: 'valid.tg', - }), - ).toBeTruthy(); - }); it('throws when payment address is invalid', () => { expect(() => { testCase.paymentNetwork.createCreationAction({ @@ -317,6 +308,20 @@ describe('extensions/payment-network/any-to-native-token', () => { expect(newExtensionState).toEqual(extensionStateWithAnyToNativeTokenPaymentAndRefund); }); + it('throws when payment address extension is .tg', () => { + const tgAddress = 'pay.tg'; + creationAction.parameters.paymentAddress = tgAddress; + + const newExtensionState = advancedLogic.applyActionToExtensions( + validRequestState.extensions, + creationAction, + validRequestState, + payeeRaw.identity, + arbitraryTimestamp, + ); + + expect(newExtensionState).toEqual(extensionStateWithAnyToNativeTokenPaymentAndRefund); + }); it('throws when currency is not supported', () => { const invalidRequestState: typeof requestStateNoExtensions = { ...requestStateNoExtensions, From 4e3f2186f0a101e98729bd8675de5b5ec4665d2b Mon Sep 17 00:00:00 2001 From: Adm Date: Tue, 5 Nov 2024 09:06:45 +0000 Subject: [PATCH 4/7] Update near-validation.test.ts --- .../currency/test/address-validation/near-validation.test.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/currency/test/address-validation/near-validation.test.ts b/packages/currency/test/address-validation/near-validation.test.ts index dd03e39e1..3ec3aadaa 100644 --- a/packages/currency/test/address-validation/near-validation.test.ts +++ b/packages/currency/test/address-validation/near-validation.test.ts @@ -1,6 +1,7 @@ import { isValidNearAddress } from '../../src/currency-utils'; const validNearAccount = 'testaccount.near'; +const validNearTgAccount = 'testaccount.tg'; const validNearHexAccount = 'f336b7833496cdcae230463c3daff7b2fe187a93be8df5b1326ce7a595033163'; const badNearHexAccount = 'f336b7833496cdcae230463c3daff7b2fe187a93be8df5b1326ce7a595033163'; const badNearAccount = 'testaccount.badnear'; @@ -13,6 +14,7 @@ describe('Near address validation', () => { it('Should accepts specfic near format', () => { expect(isValidNearAddress(validNearAccount)).toBeTruthy; + expect(isValidNearAddress(validNearTgAccount)).toBeTruthy; }); it('Should not accept accepts other format', () => { From 8968d9dba709cb6b46d2a3f1c810588c33651e0b Mon Sep 17 00:00:00 2001 From: Adm Date: Tue, 5 Nov 2024 09:14:11 +0000 Subject: [PATCH 5/7] update test --- .../payment-network/any-to-near.test.ts | 3 +- .../any/generator-data-create.ts | 40 +++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/packages/advanced-logic/test/extensions/payment-network/any-to-near.test.ts b/packages/advanced-logic/test/extensions/payment-network/any-to-near.test.ts index 79a00d229..cf780d971 100644 --- a/packages/advanced-logic/test/extensions/payment-network/any-to-near.test.ts +++ b/packages/advanced-logic/test/extensions/payment-network/any-to-near.test.ts @@ -5,6 +5,7 @@ import { extensionStateWithAnyToNativeTokenPaymentAndRefund, extensionStateAnyToNativeWithPaymentAddressAdded, extensionStateAnyToNativeWithFeeAdded, + extensionStateWithAnyToNativeTokenPaymentAndRefundTGExtension, } from '../../utils/payment-network/any/generator-data-create'; import { AdvancedLogic } from '../../../src'; import { arbitraryTimestamp, payeeRaw, payerRaw } from '../../utils/test-data-generator'; @@ -306,7 +307,7 @@ describe('extensions/payment-network/any-to-native-token', () => { arbitraryTimestamp, ); - expect(newExtensionState).toEqual(extensionStateWithAnyToNativeTokenPaymentAndRefund); + expect(newExtensionState).toEqual(extensionStateWithAnyToNativeTokenPaymentAndRefundTGExtension); }); it('throws when payment address extension is .tg', () => { const tgAddress = 'pay.tg'; diff --git a/packages/advanced-logic/test/utils/payment-network/any/generator-data-create.ts b/packages/advanced-logic/test/utils/payment-network/any/generator-data-create.ts index a2185101e..e80d410e6 100644 --- a/packages/advanced-logic/test/utils/payment-network/any/generator-data-create.ts +++ b/packages/advanced-logic/test/utils/payment-network/any/generator-data-create.ts @@ -282,6 +282,46 @@ export const extensionStateWithAnyToNativeTokenPaymentAndRefund: RequestLogicTyp version: '0.1.0', }, }; + export const extensionStateWithAnyToNativeTokenPaymentAndRefundTGExtension: RequestLogicTypes.IExtensionStates = + { + [ExtensionTypes.PAYMENT_NETWORK_ID.ANY_TO_NATIVE_TOKEN as string]: { + events: [ + { + name: 'create', + parameters: { + paymentAddress: 'pay.tg', + refundAddress: 'refund.near', + salt: arbitrarySalt, + feeAddress: 'fee.near', + feeAmount: '100', + maxRateTimespan: 1000000, + network: 'aurora', + }, + timestamp: arbitraryTimestamp, + }, + ], + id: ExtensionTypes.PAYMENT_NETWORK_ID.ANY_TO_NATIVE_TOKEN, + type: ExtensionTypes.TYPE.PAYMENT_NETWORK, + values: { + paymentAddress: 'pay.tg', + refundAddress: 'refund.near', + feeAddress: 'fee.near', + salt: arbitrarySalt, + payeeDelegate: undefined, + payerDelegate: undefined, + paymentInfo: undefined, + receivedPaymentAmount: '0', + receivedRefundAmount: '0', + refundInfo: undefined, + sentPaymentAmount: '0', + sentRefundAmount: '0', + network: 'aurora', + maxRateTimespan: 1000000, + feeAmount: '100', + }, + version: '0.1.0', + }, + }; export const extensionStateAnyToNativeWithPaymentAddressAdded: RequestLogicTypes.IExtensionStates = { [ExtensionTypes.PAYMENT_NETWORK_ID.ANY_TO_NATIVE_TOKEN as string]: { From bdb9643e4570d6fe6a62426636f960df5189f3ad Mon Sep 17 00:00:00 2001 From: Adm Date: Tue, 5 Nov 2024 09:25:46 +0000 Subject: [PATCH 6/7] prettier --- .../test/extensions/payment-network/any-to-near.test.ts | 4 +++- .../test/utils/payment-network/any/generator-data-create.ts | 2 +- packages/currency/src/currency-utils.ts | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/advanced-logic/test/extensions/payment-network/any-to-near.test.ts b/packages/advanced-logic/test/extensions/payment-network/any-to-near.test.ts index cf780d971..777d16ded 100644 --- a/packages/advanced-logic/test/extensions/payment-network/any-to-near.test.ts +++ b/packages/advanced-logic/test/extensions/payment-network/any-to-near.test.ts @@ -307,7 +307,9 @@ describe('extensions/payment-network/any-to-native-token', () => { arbitraryTimestamp, ); - expect(newExtensionState).toEqual(extensionStateWithAnyToNativeTokenPaymentAndRefundTGExtension); + expect(newExtensionState).toEqual( + extensionStateWithAnyToNativeTokenPaymentAndRefundTGExtension, + ); }); it('throws when payment address extension is .tg', () => { const tgAddress = 'pay.tg'; diff --git a/packages/advanced-logic/test/utils/payment-network/any/generator-data-create.ts b/packages/advanced-logic/test/utils/payment-network/any/generator-data-create.ts index e80d410e6..9e4e3df8f 100644 --- a/packages/advanced-logic/test/utils/payment-network/any/generator-data-create.ts +++ b/packages/advanced-logic/test/utils/payment-network/any/generator-data-create.ts @@ -282,7 +282,7 @@ export const extensionStateWithAnyToNativeTokenPaymentAndRefund: RequestLogicTyp version: '0.1.0', }, }; - export const extensionStateWithAnyToNativeTokenPaymentAndRefundTGExtension: RequestLogicTypes.IExtensionStates = +export const extensionStateWithAnyToNativeTokenPaymentAndRefundTGExtension: RequestLogicTypes.IExtensionStates = { [ExtensionTypes.PAYMENT_NETWORK_ID.ANY_TO_NATIVE_TOKEN as string]: { events: [ diff --git a/packages/currency/src/currency-utils.ts b/packages/currency/src/currency-utils.ts index 82c0a252f..d0f82037a 100644 --- a/packages/currency/src/currency-utils.ts +++ b/packages/currency/src/currency-utils.ts @@ -27,7 +27,7 @@ export const isValidNearAddress = (address: string, network?: string): boolean = switch (network) { case 'aurora': case 'near': - return !!address.match(/\.(near|tg)$/); + return !!address.match(/\.(?:near|tg)$/); case 'aurora-testnet': case 'near-testnet': return !!address.match(/\.testnet$/); From db1c49399f594d64a177da5e1ca0067eb755eede Mon Sep 17 00:00:00 2001 From: Adm Date: Tue, 5 Nov 2024 09:32:52 +0000 Subject: [PATCH 7/7] prettier --- .../extensions/payment-network/any-to-near.test.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/advanced-logic/test/extensions/payment-network/any-to-near.test.ts b/packages/advanced-logic/test/extensions/payment-network/any-to-near.test.ts index 777d16ded..29ccedcb9 100644 --- a/packages/advanced-logic/test/extensions/payment-network/any-to-near.test.ts +++ b/packages/advanced-logic/test/extensions/payment-network/any-to-near.test.ts @@ -307,11 +307,9 @@ describe('extensions/payment-network/any-to-native-token', () => { arbitraryTimestamp, ); - expect(newExtensionState).toEqual( - extensionStateWithAnyToNativeTokenPaymentAndRefundTGExtension, - ); + expect(newExtensionState).toEqual(extensionStateWithAnyToNativeTokenPaymentAndRefund); }); - it('throws when payment address extension is .tg', () => { + it('works when payment address extension is .tg', () => { const tgAddress = 'pay.tg'; creationAction.parameters.paymentAddress = tgAddress; @@ -323,7 +321,9 @@ describe('extensions/payment-network/any-to-native-token', () => { arbitraryTimestamp, ); - expect(newExtensionState).toEqual(extensionStateWithAnyToNativeTokenPaymentAndRefund); + expect(newExtensionState).toEqual( + extensionStateWithAnyToNativeTokenPaymentAndRefundTGExtension, + ); }); it('throws when currency is not supported', () => { const invalidRequestState: typeof requestStateNoExtensions = {