|
5 | 5 | ExtensionTypes,
|
6 | 6 | IdentityTypes,
|
7 | 7 | PaymentTypes,
|
| 8 | + CurrencyTypes, |
8 | 9 | RequestLogicTypes,
|
9 | 10 | } from '@requestnetwork/types';
|
10 | 11 | import { decrypt, random32Bytes } from '@requestnetwork/utils';
|
@@ -1647,48 +1648,59 @@ describe('request-client.js', () => {
|
1647 | 1648 | expect(data.expectedAmount).toBe(requestParameters.expectedAmount);
|
1648 | 1649 | });
|
1649 | 1650 |
|
1650 |
| - it('Can create ERC20 declarative requests with non-evm currency - solana', async () => { |
1651 |
| - const testErc20TokenAddress = 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v'; |
1652 |
| - const requestNetwork = new RequestNetwork({ |
1653 |
| - signatureProvider: TestData.fakeSignatureProvider, |
1654 |
| - useMockStorage: true, |
1655 |
| - }); |
| 1651 | + describe('Can create ERC20 declarative requests with non-evm currencies', () => { |
| 1652 | + const cases: Array<[CurrencyTypes.DeclarativeChainName, string]> = [ |
| 1653 | + ['solana', 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v'], |
| 1654 | + ['ton', 'EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs'], |
| 1655 | + ['starknet', '0x028757d11c97078Dd182023B1cC7b9E7659716c631ADF94D24f1fa7Dc5943072'], |
| 1656 | + ['aleo', 'aleo1qnr4dkkvkgfqph0vzc3y6z2eu975wnpz2925ntjccd5cfqxtyu8sta57j8'], |
| 1657 | + ]; |
| 1658 | + |
| 1659 | + it.each(cases)( |
| 1660 | + 'Can create ERC20 declarative requests with non-evm currency - %s', |
| 1661 | + async (network, tokenAddress) => { |
| 1662 | + const requestNetwork = new RequestNetwork({ |
| 1663 | + signatureProvider: TestData.fakeSignatureProvider, |
| 1664 | + useMockStorage: true, |
| 1665 | + }); |
1656 | 1666 |
|
1657 |
| - const paymentNetwork: PaymentTypes.PaymentNetworkCreateParameters = { |
1658 |
| - id: ExtensionTypes.PAYMENT_NETWORK_ID.ANY_DECLARATIVE, |
1659 |
| - parameters: {}, |
1660 |
| - }; |
| 1667 | + const paymentNetwork: PaymentTypes.PaymentNetworkCreateParameters = { |
| 1668 | + id: ExtensionTypes.PAYMENT_NETWORK_ID.ANY_DECLARATIVE, |
| 1669 | + parameters: {}, |
| 1670 | + }; |
1661 | 1671 |
|
1662 |
| - const requestInfo = Object.assign({}, TestData.parametersWithoutExtensionsData, { |
1663 |
| - currency: { |
1664 |
| - network: 'solana', |
1665 |
| - type: RequestLogicTypes.CURRENCY.ERC20, |
1666 |
| - value: testErc20TokenAddress, |
1667 |
| - }, |
1668 |
| - }); |
| 1672 | + const requestInfo = Object.assign({}, TestData.parametersWithoutExtensionsData, { |
| 1673 | + currency: { |
| 1674 | + network, |
| 1675 | + type: RequestLogicTypes.CURRENCY.ERC20, |
| 1676 | + value: tokenAddress, |
| 1677 | + }, |
| 1678 | + }); |
1669 | 1679 |
|
1670 |
| - const request = await requestNetwork.createRequest({ |
1671 |
| - paymentNetwork, |
1672 |
| - requestInfo, |
1673 |
| - signer: TestData.payee.identity, |
1674 |
| - }); |
| 1680 | + const request = await requestNetwork.createRequest({ |
| 1681 | + paymentNetwork, |
| 1682 | + requestInfo, |
| 1683 | + signer: TestData.payee.identity, |
| 1684 | + }); |
1675 | 1685 |
|
1676 |
| - await new Promise((resolve): any => setTimeout(resolve, 150)); |
1677 |
| - let data = await request.refresh(); |
| 1686 | + await new Promise((resolve): any => setTimeout(resolve, 150)); |
| 1687 | + const data = await request.refresh(); |
1678 | 1688 |
|
1679 |
| - expect(data).toBeDefined(); |
1680 |
| - expect(data.balance?.balance).toBe('0'); |
1681 |
| - expect(data.balance?.events.length).toBe(0); |
1682 |
| - expect(data.meta).toBeDefined(); |
1683 |
| - expect(data.currency).toBe('unknown'); |
| 1689 | + expect(data).toBeDefined(); |
| 1690 | + expect(data.balance?.balance).toBe('0'); |
| 1691 | + expect(data.balance?.events.length).toBe(0); |
| 1692 | + expect(data.meta).toBeDefined(); |
| 1693 | + expect(data.currency).toBe('unknown'); |
1684 | 1694 |
|
1685 |
| - expect(data.extensions[ExtensionTypes.PAYMENT_NETWORK_ID.ANY_DECLARATIVE].values).toEqual({ |
1686 |
| - receivedPaymentAmount: '0', |
1687 |
| - receivedRefundAmount: '0', |
1688 |
| - sentPaymentAmount: '0', |
1689 |
| - sentRefundAmount: '0', |
1690 |
| - }); |
1691 |
| - expect(data.expectedAmount).toBe(requestParameters.expectedAmount); |
| 1695 | + expect(data.extensions[ExtensionTypes.PAYMENT_NETWORK_ID.ANY_DECLARATIVE].values).toEqual({ |
| 1696 | + receivedPaymentAmount: '0', |
| 1697 | + receivedRefundAmount: '0', |
| 1698 | + sentPaymentAmount: '0', |
| 1699 | + sentRefundAmount: '0', |
| 1700 | + }); |
| 1701 | + expect(data.expectedAmount).toBe(requestParameters.expectedAmount); |
| 1702 | + }, |
| 1703 | + ); |
1692 | 1704 | });
|
1693 | 1705 |
|
1694 | 1706 | it('cannot create ERC20 address based requests with invalid currency', async () => {
|
|
0 commit comments