Skip to content

Commit

Permalink
refactor: currency types (#1238)
Browse files Browse the repository at this point in the history
  • Loading branch information
benjlevesque authored May 6, 2024
1 parent 422fff4 commit ad9af1b
Show file tree
Hide file tree
Showing 98 changed files with 501 additions and 546 deletions.
6 changes: 3 additions & 3 deletions packages/advanced-logic/src/advanced-logic.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import {
IdentityTypes,
RequestLogicTypes,
} from '@requestnetwork/types';
import { ICurrencyManager, NearChains, isSameChain } from '@requestnetwork/currency';
import { NearChains, isSameChain } from '@requestnetwork/currency';

import ContentData from './extensions/content-data';
import AddressBasedBtc from './extensions/payment-network/bitcoin/mainnet-address-based';
Expand Down Expand Up @@ -51,9 +51,9 @@ export default class AdvancedLogic implements AdvancedLogicTypes.IAdvancedLogic
erc20TransferableReceivable: Erc20TransferableReceivablePaymentNetwork;
};

private currencyManager: ICurrencyManager;
private currencyManager: CurrencyTypes.ICurrencyManager;

constructor(currencyManager: ICurrencyManager) {
constructor(currencyManager: CurrencyTypes.ICurrencyManager) {
this.currencyManager = currencyManager;
this.extensions = {
addressBasedBtc: new AddressBasedBtc(currencyManager),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ICurrencyManager, UnsupportedCurrencyError } from '@requestnetwork/currency';
import { UnsupportedCurrencyError } from '@requestnetwork/currency';
import {
CurrencyTypes,
ExtensionTypes,
Expand All @@ -17,7 +17,7 @@ export default abstract class AddressBasedPaymentNetwork<
ExtensionTypes.PnAddressBased.ICreationParameters = ExtensionTypes.PnAddressBased.ICreationParameters,
> extends DeclarativePaymentNetwork<TCreationParameters> {
protected constructor(
protected currencyManager: ICurrencyManager,
protected currencyManager: CurrencyTypes.ICurrencyManager,
extensionId: ExtensionTypes.PAYMENT_NETWORK_ID,
currentVersion: string,
public readonly supportedCurrencyType: RequestLogicTypes.CURRENCY,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,12 @@
import {
conversionSupportedNetworks,
ICurrencyManager,
UnsupportedCurrencyError,
} from '@requestnetwork/currency';
import { ExtensionTypes, RequestLogicTypes } from '@requestnetwork/types';
import { conversionSupportedNetworks, UnsupportedCurrencyError } from '@requestnetwork/currency';
import { CurrencyTypes, ExtensionTypes, RequestLogicTypes } from '@requestnetwork/types';
import Erc20FeeProxyPaymentNetwork from './erc20/fee-proxy-contract';

const CURRENT_VERSION = '0.1.0';

export default class AnyToErc20ProxyPaymentNetwork extends Erc20FeeProxyPaymentNetwork<ExtensionTypes.PnAnyToErc20.ICreationParameters> {
public constructor(
currencyManager: ICurrencyManager,
currencyManager: CurrencyTypes.ICurrencyManager,
extensionId: ExtensionTypes.PAYMENT_NETWORK_ID = ExtensionTypes.PAYMENT_NETWORK_ID
.ANY_TO_ERC20_PROXY,
currentVersion: string = CURRENT_VERSION,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { ICurrencyManager, UnsupportedCurrencyError } from '@requestnetwork/currency';
import { ExtensionTypes, RequestLogicTypes } from '@requestnetwork/types';
import { UnsupportedCurrencyError } from '@requestnetwork/currency';
import { CurrencyTypes, ExtensionTypes, RequestLogicTypes } from '@requestnetwork/types';
import EthereumFeeProxyPaymentNetwork from './ethereum/fee-proxy-contract';

const CURRENT_VERSION = '0.2.0';

export default class AnyToEthProxyPaymentNetwork extends EthereumFeeProxyPaymentNetwork<ExtensionTypes.PnAnyToAnyConversion.ICreationParameters> {
public constructor(currencyManager: ICurrencyManager) {
public constructor(currencyManager: CurrencyTypes.ICurrencyManager) {
super(currencyManager, ExtensionTypes.PAYMENT_NETWORK_ID.ANY_TO_ETH_PROXY, CURRENT_VERSION);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
import { FeeReferenceBasedPaymentNetwork } from './fee-reference-based';
import { CurrencyTypes, ExtensionTypes, RequestLogicTypes } from '@requestnetwork/types';
import { InvalidPaymentAddressError, UnsupportedNetworkError } from './address-based';
import { ICurrencyManager } from '@requestnetwork/currency';

export default abstract class AnyToNativeTokenPaymentNetwork extends FeeReferenceBasedPaymentNetwork<ExtensionTypes.PnAnyToAnyConversion.ICreationParameters> {
protected constructor(
currencyManager: ICurrencyManager,
currencyManager: CurrencyTypes.ICurrencyManager,
extensionId: ExtensionTypes.PAYMENT_NETWORK_ID,
currentVersion: string,
public readonly supportedNetworks: CurrencyTypes.ChainName[],
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { ExtensionTypes, RequestLogicTypes } from '@requestnetwork/types';
import { CurrencyTypes, ExtensionTypes, RequestLogicTypes } from '@requestnetwork/types';
import AddressBasedPaymentNetwork from '../address-based';
import { ICurrencyManager } from '@requestnetwork/currency';

const CURRENT_VERSION = '0.1.0';
const BITCOIN_NETWORK = 'mainnet';
Expand All @@ -13,7 +12,7 @@ const BITCOIN_NETWORK = 'mainnet';
*/
export default class BitcoinAddressBasedPaymentNetwork extends AddressBasedPaymentNetwork {
public constructor(
currencyManager: ICurrencyManager,
currencyManager: CurrencyTypes.ICurrencyManager,
extensionId: ExtensionTypes.PAYMENT_NETWORK_ID = ExtensionTypes.PAYMENT_NETWORK_ID
.BITCOIN_ADDRESS_BASED,
) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import BitcoinAddressBasedPaymentNetwork from './mainnet-address-based';
import { ExtensionTypes } from '@requestnetwork/types';
import { ICurrencyManager } from '@requestnetwork/currency';
import { CurrencyTypes, ExtensionTypes } from '@requestnetwork/types';

const BITCOIN_NETWORK = 'testnet';

Expand All @@ -12,7 +11,7 @@ const BITCOIN_NETWORK = 'testnet';
* Important: the addresses must be exclusive to the request
*/
export default class BitcoinTestnetAddressBasedPaymentNetwork extends BitcoinAddressBasedPaymentNetwork {
public constructor(currencyManager: ICurrencyManager) {
public constructor(currencyManager: CurrencyTypes.ICurrencyManager) {
super(currencyManager, ExtensionTypes.PAYMENT_NETWORK_ID.TESTNET_BITCOIN_ADDRESS_BASED);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { ExtensionTypes, RequestLogicTypes } from '@requestnetwork/types';
import { CurrencyTypes, ExtensionTypes, RequestLogicTypes } from '@requestnetwork/types';
import AddressBasedPaymentNetwork from '../address-based';
import { ICurrencyManager } from '@requestnetwork/currency';

const CURRENT_VERSION = '0.1.0';

Expand All @@ -11,7 +10,7 @@ const CURRENT_VERSION = '0.1.0';
* Important: the addresses must be exclusive to the request
*/
export default class Erc20AddressBasedPaymentNetwork extends AddressBasedPaymentNetwork {
public constructor(currencyManager: ICurrencyManager) {
public constructor(currencyManager: CurrencyTypes.ICurrencyManager) {
super(
currencyManager,
ExtensionTypes.PAYMENT_NETWORK_ID.ERC20_ADDRESS_BASED,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { CurrencyTypes, ExtensionTypes, RequestLogicTypes } from '@requestnetwork/types';
import { ICurrencyManager, NearChains, isSameChain } from '@requestnetwork/currency';
import { NearChains, isSameChain } from '@requestnetwork/currency';
import { UnsupportedNetworkError } from '../address-based';
import { FeeReferenceBasedPaymentNetwork } from '../fee-reference-based';

Expand All @@ -17,7 +17,7 @@ export default class Erc20FeeProxyPaymentNetwork<
* @param network is only relevant for non-EVM chains (Near and Near testnet)
*/
public constructor(
currencyManager: ICurrencyManager,
currencyManager: CurrencyTypes.ICurrencyManager,
extensionId: ExtensionTypes.PAYMENT_NETWORK_ID = ExtensionTypes.PAYMENT_NETWORK_ID
.ERC20_FEE_PROXY_CONTRACT,
currentVersion?: string | undefined,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import { ExtensionTypes, RequestLogicTypes } from '@requestnetwork/types';
import { ICurrencyManager } from '@requestnetwork/currency';
import { CurrencyTypes, ExtensionTypes, RequestLogicTypes } from '@requestnetwork/types';
import ReferenceBasedPaymentNetwork from '../reference-based';

const CURRENT_VERSION = '0.1.0';
Expand All @@ -11,7 +10,7 @@ export default class Erc20ProxyPaymentNetwork<
TCreationParameters extends
ExtensionTypes.PnReferenceBased.ICreationParameters = ExtensionTypes.PnReferenceBased.ICreationParameters,
> extends ReferenceBasedPaymentNetwork<TCreationParameters> {
public constructor(currencyManager: ICurrencyManager) {
public constructor(currencyManager: CurrencyTypes.ICurrencyManager) {
super(
currencyManager,
ExtensionTypes.PAYMENT_NETWORK_ID.ERC20_PROXY_CONTRACT,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { ExtensionTypes, RequestLogicTypes } from '@requestnetwork/types';
import { CurrencyTypes, ExtensionTypes, RequestLogicTypes } from '@requestnetwork/types';
import { FeeReferenceBasedPaymentNetwork } from '../fee-reference-based';
import { ICurrencyManager } from '@requestnetwork/currency';

const CURRENT_VERSION = '0.2.0';

Expand All @@ -12,7 +11,7 @@ export default class Erc20TransferableReceivablePaymentNetwork<
ExtensionTypes.PnFeeReferenceBased.ICreationParameters = ExtensionTypes.PnFeeReferenceBased.ICreationParameters,
> extends FeeReferenceBasedPaymentNetwork<TCreationParameters> {
public constructor(
currencyManager: ICurrencyManager,
currencyManager: CurrencyTypes.ICurrencyManager,
extensionId: ExtensionTypes.PAYMENT_NETWORK_ID = ExtensionTypes.PAYMENT_NETWORK_ID
.ERC20_TRANSFERABLE_RECEIVABLE,
currentVersion: string = CURRENT_VERSION,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
import { ExtensionTypes, RequestLogicTypes, TypesUtils } from '@requestnetwork/types';
import {
CurrencyTypes,
ExtensionTypes,
RequestLogicTypes,
TypesUtils,
} from '@requestnetwork/types';
import ReferenceBasedPaymentNetwork from '../reference-based';
import { isValidAmount } from '@requestnetwork/utils';
import { ICurrencyManager } from '@requestnetwork/currency';
const CURRENT_VERSION = '0.1.0';

/**
Expand All @@ -11,7 +15,7 @@ export default class Erc777StreamPaymentNetwork<
TCreationParameters extends
ExtensionTypes.PnStreamReferenceBased.ICreationParameters = ExtensionTypes.PnStreamReferenceBased.ICreationParameters,
> extends ReferenceBasedPaymentNetwork<TCreationParameters> {
public constructor(currencyManager: ICurrencyManager) {
public constructor(currencyManager: CurrencyTypes.ICurrencyManager) {
super(
currencyManager,
ExtensionTypes.PAYMENT_NETWORK_ID.ERC777_STREAM,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { ExtensionTypes, RequestLogicTypes } from '@requestnetwork/types';
import { CurrencyTypes, ExtensionTypes, RequestLogicTypes } from '@requestnetwork/types';
import { FeeReferenceBasedPaymentNetwork } from '../fee-reference-based';
import { ICurrencyManager } from '@requestnetwork/currency';

const CURRENT_VERSION = '0.2.0';

Expand All @@ -12,7 +11,7 @@ export default class EthereumFeeProxyPaymentNetwork<
ExtensionTypes.PnFeeReferenceBased.ICreationParameters = ExtensionTypes.PnFeeReferenceBased.ICreationParameters,
> extends FeeReferenceBasedPaymentNetwork<TCreationParameters> {
public constructor(
currencyManager: ICurrencyManager,
currencyManager: CurrencyTypes.ICurrencyManager,
extensionId: ExtensionTypes.PAYMENT_NETWORK_ID = ExtensionTypes.PAYMENT_NETWORK_ID
.ETH_FEE_PROXY_CONTRACT,
currentVersion: string = CURRENT_VERSION,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { ExtensionTypes, RequestLogicTypes } from '@requestnetwork/types';
import { CurrencyTypes, ExtensionTypes, RequestLogicTypes } from '@requestnetwork/types';
import ReferenceBasedPaymentNetwork from '../reference-based';
import { ICurrencyManager } from '@requestnetwork/currency';

const CURRENT_VERSION = '0.3.0';

Expand All @@ -10,7 +9,7 @@ const CURRENT_VERSION = '0.3.0';
*/
export default class EthInputPaymentNetwork extends ReferenceBasedPaymentNetwork {
public constructor(
currencyManager: ICurrencyManager,
currencyManager: CurrencyTypes.ICurrencyManager,
extensionId: ExtensionTypes.PAYMENT_NETWORK_ID = ExtensionTypes.PAYMENT_NETWORK_ID
.ETH_INPUT_DATA,
currentVersion: string = CURRENT_VERSION,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
import { ExtensionTypes, IdentityTypes, RequestLogicTypes } from '@requestnetwork/types';
import {
CurrencyTypes,
ExtensionTypes,
IdentityTypes,
RequestLogicTypes,
} from '@requestnetwork/types';
import ReferenceBasedPaymentNetwork from './reference-based';
import { areEqualIdentities, deepCopy, isValidAmount } from '@requestnetwork/utils';
import { ICurrencyManager } from '@requestnetwork/currency';

/**
* Core of the reference based with fee payment networks
Expand All @@ -12,7 +16,7 @@ export abstract class FeeReferenceBasedPaymentNetwork<
ExtensionTypes.PnFeeReferenceBased.ICreationParameters = ExtensionTypes.PnFeeReferenceBased.ICreationParameters,
> extends ReferenceBasedPaymentNetwork<TCreationParameters> {
protected constructor(
currencyManager: ICurrencyManager,
currencyManager: CurrencyTypes.ICurrencyManager,
extensionId: ExtensionTypes.PAYMENT_NETWORK_ID,
currentVersion: string,
supportedCurrencyType: RequestLogicTypes.CURRENCY,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,13 @@ import { CurrencyTypes, ExtensionTypes, RequestLogicTypes } from '@requestnetwor
import { InvalidPaymentAddressError, UnsupportedNetworkError } from './address-based';

import ReferenceBasedPaymentNetwork from './reference-based';
import { ICurrencyManager } from '@requestnetwork/currency';

/**
* Implementation of the payment network to pay in ETH based on input data.
*/
export default abstract class NativeTokenPaymentNetwork extends ReferenceBasedPaymentNetwork {
public constructor(
currencyManager: ICurrencyManager,
currencyManager: CurrencyTypes.ICurrencyManager,
extensionId: ExtensionTypes.PAYMENT_NETWORK_ID,
currentVersion: string,
public readonly supportedNetworks: CurrencyTypes.ChainName[],
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { ICurrencyManager } from '@requestnetwork/currency';
import { CurrencyTypes } from '@requestnetwork/types';
import AnyToNearPaymentNetwork from './any-to-near';

export default class AnyToNearTestnetPaymentNetwork extends AnyToNearPaymentNetwork {
public constructor(currencyManager: ICurrencyManager) {
public constructor(currencyManager: CurrencyTypes.ICurrencyManager) {
// testnet PN version is the same as mainnet, can be overridden here if needed
super(currencyManager, ['aurora-testnet', 'near-testnet']);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ICurrencyManager, UnsupportedCurrencyError } from '@requestnetwork/currency';
import { UnsupportedCurrencyError } from '@requestnetwork/currency';
import {
CurrencyTypes,
ExtensionTypes,
Expand All @@ -11,7 +11,7 @@ const CURRENT_VERSION = '0.1.0';

export default class AnyToNearPaymentNetwork extends AnyToNativeTokenPaymentNetwork {
public constructor(
currencyManager: ICurrencyManager,
currencyManager: CurrencyTypes.ICurrencyManager,
supportedNetworks: CurrencyTypes.NearChainName[] = [
'aurora',
// FIXME: enable near network support
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { CurrencyTypes, ExtensionTypes } from '@requestnetwork/types';
import NativeTokenPaymentNetwork from '../native-token';
import { ICurrencyManager } from '@requestnetwork/currency';

const CURRENT_VERSION = '0.2.0';

Expand All @@ -9,7 +8,7 @@ const CURRENT_VERSION = '0.2.0';
*/
export default class NearNativePaymentNetwork extends NativeTokenPaymentNetwork {
public constructor(
currencyManager: ICurrencyManager,
currencyManager: CurrencyTypes.ICurrencyManager,
supportedNetworks: CurrencyTypes.NearChainName[] = [
'aurora',
// FIXME: enable near network support
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { CurrencyTypes } from '@requestnetwork/types';
import NearNativePaymentNetwork from './near-native';
import { ICurrencyManager } from '@requestnetwork/currency';

/**
* Implementation of the payment network to pay in Near on testnet based on input data.
*/
export default class NearTestnetNativeNativePaymentNetwork extends NearNativePaymentNetwork {
public constructor(currencyManager: ICurrencyManager) {
public constructor(currencyManager: CurrencyTypes.ICurrencyManager) {
// testnet PN version is the same as mainnet, can be overridden here if needed
super(currencyManager, ['aurora-testnet', 'near-testnet']);
}
Expand Down
2 changes: 1 addition & 1 deletion packages/advanced-logic/test/advanced-logic.test.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { CurrencyManager } from '@requestnetwork/currency';
import { AdvancedLogicTypes, ExtensionTypes } from '@requestnetwork/types';

import * as DataBTCCreate from './utils/payment-network/bitcoin/generator-data-create';
import * as DataDeclarativeCreate from './utils/payment-network/any/generator-data-create';
import * as DataTestnetBTCCreate from './utils/payment-network/bitcoin/testnet-generator-data-create';

import { deepCopy } from '@requestnetwork/utils';
import { CurrencyManager } from '@requestnetwork/currency';

import { AdvancedLogic } from '../src/index';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,8 @@ import { deepCopy } from '@requestnetwork/utils';
import { CurrencyManager } from '@requestnetwork/currency';
import { AdvancedLogic } from '../../../../src';

const currencyManager = new CurrencyManager(CurrencyManager.getDefaultList());
const advancedLogic = new AdvancedLogic(CurrencyManager.getDefault());

const advancedLogic = new AdvancedLogic(currencyManager);
const erc20FeeProxyContract = advancedLogic.getFeeProxyContractErc20ForNetwork();

/* eslint-disable @typescript-eslint/no-unused-expressions */
Expand Down
Loading

0 comments on commit ad9af1b

Please sign in to comment.