vega-frontend-monorepo/libs/wallet/src/context.ts

43 lines
1.2 KiB
TypeScript
Raw Normal View History

import type { VegaKey } from './wallet-types';
import { createContext } from 'react';
import type { VegaConnector } from './connectors';
import type {
TransactionSubmission,
TransactionResponse,
} from './wallet-types';
export interface VegaKeyExtended extends VegaKey {
name: string;
}
export interface VegaWalletContextShape {
/** The current select public key */
keypair: VegaKeyExtended | null;
/** Public keys stored in users wallet */
keypairs: VegaKeyExtended[] | null;
/** Calls connect on the supplied connector, storing the returned keys */
connect: (connector: VegaConnector) => Promise<VegaKey[] | null>;
/** Disconnects from the connector and clears public key state */
disconnect: () => Promise<boolean>;
/** Sets the current selected public key */
selectPublicKey: (publicKey: string) => void;
/** Reference to the connector */
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: (
Feat/104 withdraws (#263) * add withdraw page * add create page and withdraws lib with basic components * add create withdrawal functionality, add withdrawal dialog * re arrange pages so we have a pending page with a list of withdrawals and a withdraw page with the form * handle withdrawal completion * add withdraw dialog so withdraw is completed in one flow * rename and arrange prop getter function to avoid use of any * tidy up and make eth transaction and vega transaction hooks follow similar patterns * make complete withdraw hook fetch approval, combine hooks for full flow * delete unused file * add accounts to query to get use max withdraw button * use ag grid fro withdrawals list * format amount in grid * ensure party has id field for cache * update to use t i18n function * change complete status to better match values of WithdrawalStatus * add asset lib file for type guard * share queries for withdraws lib * move web3 related hooks to the web3 lib and make web3 lib buildable * add unit test for use-complete-withdraw * add test for use-withdraw * add e2e scenarios for withdrawals * don render custom no withdrawals message and use ag grid prop * make withdraw form take ethereum account as prop * add test config, update withdraw form to handle min/max amounts, add unit test for withdraw form * fix rendering 0 if not pending withdrawals * use controlled component for select box * tidy up async parts of tests, add test for withdraw-manager * update withdraw dialog to use map for different tx states * add fallback etherscan link, add test for withdraw-dialog.spec.tsx * rename erc20 query in token app, change page structure to /withdraw and /withdrawals * change linked vegawallet-service-api-client to newly published version * ignore not implemented withdrawals e2e tests * make vega tx pending and requested states the same, for now, until tx confirmation work is done * Add some unit tests for determine-ids and remove0x Neither are critical, but both are libs expected to be shared between projects so some unit tests will hopefully ensure projects all have the same expectations about how the functions act. - Add 1 determine-ids test - Add a few remove-0x tests - Update determine-ids to use remove-0x - Add a comment describing why i18n is what it is * modify cache with client only field for tracking foreign chain progress * move withdrawals-list to lib, add useWithdrawals hook * add container component for withdrawals page * add unit tests for withdrawals-table * add some tests for use-withdrawals hook * revert changes to generated files in other libs and apps * update withdrawals scenarios * resolve pr comments * update page containers to use render prop rather than children * delete unused files * remove transaction dialog story Co-authored-by: Ditmir-Vega <ditmir@vega.xyz> Co-authored-by: Edd <edd@vega.xyz>
2022-04-27 02:51:39 +00:00
tx: TransactionSubmission
) => Promise<
TransactionResponse | { error: string; details?: string[] }
> | null;
}
export const VegaWalletContext = createContext<
VegaWalletContextShape | undefined
>(undefined);