2022-03-10 00:39:59 +00:00
|
|
|
import {
|
|
|
|
VegaKey,
|
|
|
|
TransactionResponse,
|
|
|
|
} from '@vegaprotocol/vegawallet-service-api-client';
|
2022-02-22 06:40:55 +00:00
|
|
|
import { createContext } from 'react';
|
2022-02-22 23:06:35 +00:00
|
|
|
import { VegaConnector } from './connectors';
|
Feat/63 Deal ticket (#82)
* scaffold dealticket package, remove trading views from react-helpers
* add deal ticket component, add intent utils, expand dialog and form group styles
* add splash component, show market not found message if market doesnt exist
* tidy up error handling
* add handleError method for vega tx hook
* add better testname for provider test, flesh out tests a bit more for deal ticket
* Add unit tests for useVegaTransaction and useOrderSubmit hooks
* add wrapper component for order dialog styles
* add vega styled loader to ui toolkit and use in order dialog
* add title prop to order dialog
* split limit and market tickets into own files
* add button radio component
* revert dialog styles
* move splash component to ui-toolkit, add story
* convert intent to enum
* Make button always type=button unless type prop is passed
* inline filter logic for tif selector
* add date-fns, add datetime to helpers
* add order types to wallet package, make price undefined if order type is market
* use enums in deal ticket logic
* tidy up order state by moving submit and transaction hooks out of deal ticket
* add comment for dialog styles
* remove decimal from price input
* add types package, delete old generated types from trading project
* rename types package to graphql
* update generate command to point to correct locations
* fix use order submit test
* use intent shadow helper
* remove date-fns and format manually, update submit button error to use input-error
* remove stray console.log
2022-03-17 19:35:46 +00:00
|
|
|
import { Transaction } from './types';
|
|
|
|
|
|
|
|
export type SendTxError =
|
|
|
|
| {
|
|
|
|
error: string;
|
|
|
|
}
|
|
|
|
| {
|
|
|
|
errors: object;
|
|
|
|
};
|
2022-02-22 06:40:55 +00:00
|
|
|
|
2022-02-23 05:05:39 +00:00
|
|
|
export interface VegaKeyExtended extends VegaKey {
|
|
|
|
name: string;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface VegaWalletContextShape {
|
2022-02-24 00:03:59 +00:00
|
|
|
/** The current select public key */
|
|
|
|
keypair: VegaKeyExtended | null;
|
|
|
|
|
2022-02-23 05:05:39 +00:00
|
|
|
/** Public keys stored in users wallet */
|
2022-02-24 00:03:59 +00:00
|
|
|
keypairs: VegaKeyExtended[] | null;
|
2022-02-23 05:05:39 +00:00
|
|
|
|
|
|
|
/** Calls connect on the supplied connector, storing the returned keys */
|
2022-03-08 18:57:07 +00:00
|
|
|
connect: (connector: VegaConnector) => Promise<VegaKey[] | null>;
|
2022-02-23 05:05:39 +00:00
|
|
|
|
|
|
|
/** Disconnects from the connector and clears public key state */
|
2022-03-08 18:57:07 +00:00
|
|
|
disconnect: () => Promise<boolean>;
|
2022-02-23 05:05:39 +00:00
|
|
|
|
2022-02-24 00:03:59 +00:00
|
|
|
/** Sets the current selected public key */
|
|
|
|
selectPublicKey: (publicKey: string) => void;
|
|
|
|
|
2022-02-23 05:05:39 +00:00
|
|
|
/** Reference to the connector */
|
2022-02-22 06:40:55 +00:00
|
|
|
connector: VegaConnector | null;
|
2022-03-10 00:39:59 +00:00
|
|
|
|
|
|
|
/** Send a transaction to the network, only order submissions for now */
|
Feat/63 Deal ticket (#82)
* scaffold dealticket package, remove trading views from react-helpers
* add deal ticket component, add intent utils, expand dialog and form group styles
* add splash component, show market not found message if market doesnt exist
* tidy up error handling
* add handleError method for vega tx hook
* add better testname for provider test, flesh out tests a bit more for deal ticket
* Add unit tests for useVegaTransaction and useOrderSubmit hooks
* add wrapper component for order dialog styles
* add vega styled loader to ui toolkit and use in order dialog
* add title prop to order dialog
* split limit and market tickets into own files
* add button radio component
* revert dialog styles
* move splash component to ui-toolkit, add story
* convert intent to enum
* Make button always type=button unless type prop is passed
* inline filter logic for tif selector
* add date-fns, add datetime to helpers
* add order types to wallet package, make price undefined if order type is market
* use enums in deal ticket logic
* tidy up order state by moving submit and transaction hooks out of deal ticket
* add comment for dialog styles
* remove decimal from price input
* add types package, delete old generated types from trading project
* rename types package to graphql
* update generate command to point to correct locations
* fix use order submit test
* use intent shadow helper
* remove date-fns and format manually, update submit button error to use input-error
* remove stray console.log
2022-03-17 19:35:46 +00:00
|
|
|
sendTx: (
|
|
|
|
tx: Transaction
|
|
|
|
) => Promise<TransactionResponse | SendTxError> | null;
|
2022-02-22 06:40:55 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
export const VegaWalletContext = createContext<
|
|
|
|
VegaWalletContextShape | undefined
|
|
|
|
>(undefined);
|