/ common / features / transaction / types.ts
types.ts
  1  import { transactionBroadcastTypes } from './broadcast';
  2  import { transactionFieldsTypes } from './fields';
  3  import { transactionMetaTypes } from './meta';
  4  import { transactionNetworkTypes } from './network';
  5  import { transactionSignTypes } from './sign';
  6  
  7  export enum TransactionActions {
  8    CURRENT_VALUE_SET = 'TRANSACTION_CURRENT_VALUE_SET',
  9    CURRENT_TO_SET = 'TRANSACTION_CURRENT_TO_SET',
 10    TOKEN_TO_ETHER_SWAP = 'TRANSACTION_TOKEN_TO_ETHER_SWAP',
 11    ETHER_TO_TOKEN_SWAP = 'TRANSACTION_ETHER_TO_TOKEN_SWAP',
 12    TOKEN_TO_TOKEN_SWAP = 'TRANSACTION_TOKEN_TO_TOKEN_SWAP',
 13    SEND_EVERYTHING_REQUESTED = 'TRANSACTION_SEND_EVERYTHING_REQUESTED',
 14    SEND_EVERYTHING_SUCCEEDED = 'TRANSACTION_SEND_EVERYTHING_SUCCEEDED',
 15    SEND_EVERYTHING_FAILED = 'TRANSACTION_SEND_EVERYTHING_FAILED',
 16    RESET_REQUESTED = 'TRANSACTION_RESET_REQUESTED',
 17    RESET_SUCCESSFUL = 'TRANSACTION_RESET_SUCCESSFUL'
 18  }
 19  
 20  export interface TransactionState {
 21    broadcast: transactionBroadcastTypes.TransactionBroadcastState;
 22    fields: transactionFieldsTypes.TransactionFieldsState;
 23    meta: transactionMetaTypes.TransactionMetaState;
 24    network: transactionNetworkTypes.TransactionNetworkState;
 25    sign: transactionSignTypes.TransactionSignState;
 26  }
 27  
 28  export interface SetCurrentValueAction {
 29    type: TransactionActions.CURRENT_VALUE_SET;
 30    payload: string;
 31  }
 32  
 33  export interface SetCurrentToAction {
 34    type: TransactionActions.CURRENT_TO_SET;
 35    payload: string;
 36  }
 37  
 38  export type CurrentAction = SetCurrentValueAction | SetCurrentToAction;
 39  
 40  //#region Send Everything
 41  export interface SendEverythingRequestedAction {
 42    type: TransactionActions.SEND_EVERYTHING_REQUESTED;
 43  }
 44  export interface SendEverythingSucceededAction {
 45    type: TransactionActions.SEND_EVERYTHING_SUCCEEDED;
 46  }
 47  export interface SendEverythingFailedAction {
 48    type: TransactionActions.SEND_EVERYTHING_FAILED;
 49  }
 50  
 51  export type SendEverythingAction =
 52    | SendEverythingRequestedAction
 53    | SendEverythingSucceededAction
 54    | SendEverythingFailedAction;
 55  //#endregion Send Everything
 56  
 57  //#region Swap
 58  export interface SwapTokenToEtherAction {
 59    type: TransactionActions.TOKEN_TO_ETHER_SWAP;
 60    payload: {
 61      to: transactionFieldsTypes.SetToFieldAction['payload'];
 62      value: transactionFieldsTypes.SetValueFieldAction['payload'];
 63      decimal: number;
 64    };
 65  }
 66  export interface SwapEtherToTokenAction {
 67    type: TransactionActions.ETHER_TO_TOKEN_SWAP;
 68    payload: {
 69      to: transactionFieldsTypes.SetToFieldAction['payload'];
 70      data: transactionFieldsTypes.SetDataFieldAction['payload'];
 71      tokenTo: transactionMetaTypes.SetTokenToMetaAction['payload'];
 72      tokenValue: transactionMetaTypes.SetTokenValueMetaAction['payload'];
 73      decimal: number;
 74    };
 75  }
 76  export interface SwapTokenToTokenAction {
 77    type: TransactionActions.TOKEN_TO_TOKEN_SWAP;
 78    payload: {
 79      to: transactionFieldsTypes.SetToFieldAction['payload'];
 80      data: transactionFieldsTypes.SetDataFieldAction['payload'];
 81      tokenValue: transactionMetaTypes.SetTokenValueMetaAction['payload'];
 82      decimal: number;
 83    };
 84  }
 85  export type SwapAction = SwapEtherToTokenAction | SwapTokenToEtherAction | SwapTokenToTokenAction;
 86  //#endregion Swap
 87  
 88  export interface ResetTransactionRequestedAction {
 89    type: TransactionActions.RESET_REQUESTED;
 90  }
 91  
 92  export interface ResetTransactionSuccessfulAction {
 93    type: TransactionActions.RESET_SUCCESSFUL;
 94    payload: { isContractInteraction: boolean };
 95  }
 96  
 97  export type TransactionAction =
 98    | transactionBroadcastTypes.TransactionBroadcastAction
 99    | transactionFieldsTypes.InputFieldAction
100    | transactionFieldsTypes.TransactionFieldAction
101    | transactionMetaTypes.TransactionMetaAction
102    | transactionNetworkTypes.TransactionNetworkAction
103    | transactionSignTypes.TransactionSignAction
104    | SwapAction
105    | ResetTransactionRequestedAction
106    | ResetTransactionSuccessfulAction
107    | CurrentAction
108    | SendEverythingAction;