|
1 | | -import type { EvmAddress, EvmSignature } from '@polymarket/types'; |
2 | | -import type { |
3 | | - Erc20ApprovalWorkflowRequest, |
4 | | - Erc1155ApprovalForAllWorkflowRequest, |
5 | | - TradingApprovalsWorkflowRequest, |
6 | | -} from './actions/approvals'; |
7 | | -import type { GaslessWalletWorkflowRequest } from './actions/gasless'; |
8 | | -import type { OrderWorkflowRequest } from './actions/orders'; |
9 | | -import type { |
10 | | - MergePositionsWorkflowRequest, |
11 | | - RedeemPositionsWorkflowRequest, |
12 | | - SplitPositionWorkflowRequest, |
13 | | -} from './actions/positions'; |
14 | | -import type { Erc20TransferWorkflowRequest } from './actions/transfers'; |
| 1 | +import type { EvmAddress, EvmSignature, HexString } from '@polymarket/types'; |
15 | 2 | import type { CancelledSigningError, SigningError } from './errors'; |
16 | 3 | import type { TransactionHandle, TypedDataPayload } from './types'; |
17 | 4 |
|
| 5 | +export type SignerTransactionRequest = { |
| 6 | + data?: HexString; |
| 7 | + to: EvmAddress; |
| 8 | + value?: bigint; |
| 9 | +}; |
| 10 | + |
18 | 11 | export type RequestAddressRequest = { |
19 | 12 | kind: 'requestAddress'; |
20 | 13 | }; |
21 | 14 |
|
| 15 | +export type SignAuthMessageRequest = { |
| 16 | + kind: 'signAuthMessage'; |
| 17 | + payload: TypedDataPayload; |
| 18 | +}; |
| 19 | + |
| 20 | +export type SendErc20ApprovalTransactionRequest = { |
| 21 | + kind: 'sendErc20ApprovalTransaction'; |
| 22 | + request: SignerTransactionRequest; |
| 23 | +}; |
| 24 | + |
| 25 | +export type SendErc1155ApprovalForAllTransactionRequest = { |
| 26 | + kind: 'sendErc1155ApprovalForAllTransaction'; |
| 27 | + request: SignerTransactionRequest; |
| 28 | +}; |
| 29 | + |
| 30 | +export type SendErc20TransferTransactionRequest = { |
| 31 | + kind: 'sendErc20TransferTransaction'; |
| 32 | + request: SignerTransactionRequest; |
| 33 | +}; |
| 34 | + |
| 35 | +export type SignGaslessTypedDataRequest = { |
| 36 | + kind: 'signGaslessTypedData'; |
| 37 | + payload: TypedDataPayload; |
| 38 | +}; |
| 39 | + |
| 40 | +export type SignGaslessMessageRequest = { |
| 41 | + kind: 'signGaslessMessage'; |
| 42 | + payload: TypedDataPayload; |
| 43 | +}; |
| 44 | + |
| 45 | +export type SendSplitPositionTransactionRequest = { |
| 46 | + kind: 'sendSplitPositionTransaction'; |
| 47 | + request: SignerTransactionRequest; |
| 48 | +}; |
| 49 | + |
| 50 | +export type SendMergePositionsTransactionRequest = { |
| 51 | + kind: 'sendMergePositionsTransaction'; |
| 52 | + request: SignerTransactionRequest; |
| 53 | +}; |
| 54 | + |
| 55 | +export type SendRedeemPositionsTransactionRequest = { |
| 56 | + kind: 'sendRedeemPositionsTransaction'; |
| 57 | + request: SignerTransactionRequest; |
| 58 | +}; |
| 59 | + |
| 60 | +export type SignOrderRequest = { |
| 61 | + kind: 'signOrder'; |
| 62 | + payload: TypedDataPayload; |
| 63 | +}; |
| 64 | + |
22 | 65 | export type AuthenticationWorkflowRequest = |
23 | 66 | | RequestAddressRequest |
24 | | - | { |
25 | | - kind: 'signAuthMessage'; |
26 | | - payload: TypedDataPayload; |
27 | | - }; |
| 67 | + | SignAuthMessageRequest; |
28 | 68 |
|
29 | 69 | export type AuthenticationWorkflow<TReturn> = AsyncGenerator< |
30 | 70 | AuthenticationWorkflowRequest, |
31 | 71 | TReturn, |
32 | 72 | EvmAddress | EvmSignature |
33 | 73 | >; |
34 | 74 |
|
| 75 | +export type AuthenticateWith = <TReturn>( |
| 76 | + workflow: AuthenticationWorkflow<TReturn>, |
| 77 | +) => Promise<TReturn>; |
| 78 | + |
35 | 79 | export type AuthenticateWithError = CancelledSigningError | SigningError; |
36 | 80 | export type CompleteWithError = CancelledSigningError | SigningError; |
37 | 81 |
|
38 | 82 | export type CompleteWorkflowRequest = |
39 | | - | Erc20ApprovalWorkflowRequest |
40 | | - | Erc1155ApprovalForAllWorkflowRequest |
41 | | - | Erc20TransferWorkflowRequest |
42 | | - | GaslessWalletWorkflowRequest |
43 | | - | MergePositionsWorkflowRequest |
44 | | - | TradingApprovalsWorkflowRequest |
45 | | - | RedeemPositionsWorkflowRequest |
46 | | - | SplitPositionWorkflowRequest |
47 | | - | OrderWorkflowRequest; |
| 83 | + | RequestAddressRequest |
| 84 | + | SendErc20ApprovalTransactionRequest |
| 85 | + | SendErc1155ApprovalForAllTransactionRequest |
| 86 | + | SendErc20TransferTransactionRequest |
| 87 | + | SignGaslessTypedDataRequest |
| 88 | + | SignGaslessMessageRequest |
| 89 | + | SendSplitPositionTransactionRequest |
| 90 | + | SendMergePositionsTransactionRequest |
| 91 | + | SendRedeemPositionsTransactionRequest |
| 92 | + | SignOrderRequest; |
48 | 93 |
|
49 | 94 | export type CompleteWorkflowNext = |
50 | 95 | | EvmAddress |
51 | 96 | | EvmSignature |
52 | 97 | | TransactionHandle; |
53 | 98 |
|
| 99 | +export type CompleteWith = <TRequest extends CompleteWorkflowRequest, TReturn>( |
| 100 | + workflow: AsyncGenerator<TRequest, TReturn, CompleteWorkflowNext>, |
| 101 | +) => Promise<TReturn>; |
| 102 | + |
54 | 103 | export function requestAddress(): RequestAddressRequest { |
55 | 104 | return { |
56 | 105 | kind: 'requestAddress', |
|
0 commit comments