@levrbet/shared 0.1.185 → 0.1.187
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -5,15 +5,43 @@ Shared utilities, components, and types for the LEVR platform.
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
npm install @levrbet/shared
|
|
8
|
+
npm install @levrbet/shared @prisma/client prisma
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
+
## Prisma Setup
|
|
12
|
+
|
|
13
|
+
This package includes a Prisma schema. After installation, run the setup script to generate the Prisma client:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npx levrbet-prisma-setup
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Or add it to your `postinstall` script in `package.json`:
|
|
20
|
+
|
|
21
|
+
```json
|
|
22
|
+
{
|
|
23
|
+
"scripts": {
|
|
24
|
+
"postinstall": "levrbet-prisma-setup"
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
This will:
|
|
30
|
+
|
|
31
|
+
1. Copy the Prisma schema to your project's `prisma/` folder
|
|
32
|
+
2. Generate the `@prisma/client` in your `node_modules`
|
|
33
|
+
|
|
11
34
|
## Usage
|
|
12
35
|
|
|
13
36
|
```typescript
|
|
14
37
|
// Core utilities (universal - works in both browser and Node.js)
|
|
15
38
|
import { e18, LevrBaseMarket } from "@levrbet/shared/core"
|
|
16
39
|
|
|
40
|
+
// Prisma types and client (requires running prisma setup first)
|
|
41
|
+
import { PrismaClient, GamePhase, MarketStatus } from "@levrbet/shared/core"
|
|
42
|
+
// Or directly from @prisma/client
|
|
43
|
+
import { PrismaClient, GamePhase } from "@prisma/client"
|
|
44
|
+
|
|
17
45
|
// Server-only utilities
|
|
18
46
|
import { authMiddleWare, validateApiKey } from "@levrbet/shared/server"
|
|
19
47
|
|
|
@@ -23,68 +51,39 @@ import { useAuth } from "@levrbet/shared/react"
|
|
|
23
51
|
|
|
24
52
|
## Package Structure
|
|
25
53
|
|
|
26
|
-
- **`/core`** - Blockchain contracts, types, and universal utilities
|
|
54
|
+
- **`/core`** - Blockchain contracts, types, Prisma re-exports, and universal utilities
|
|
27
55
|
- **`/server`** - Node.js server utilities (auth, database, logging, middleware)
|
|
28
56
|
- **`/react`** - React components and hooks
|
|
29
57
|
|
|
30
|
-
##
|
|
31
|
-
|
|
32
|
-
This package provides **dual builds** for maximum compatibility:
|
|
33
|
-
|
|
34
|
-
- **ESM** (`dist/esm/`) - For React/Vite consumers (preserves React context)
|
|
35
|
-
- **CommonJS** (`dist/cjs/`) - For Node.js servers
|
|
58
|
+
## Peer Dependencies
|
|
36
59
|
|
|
37
|
-
|
|
60
|
+
This package requires the following peer dependencies:
|
|
38
61
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
### TypeScript Configuration
|
|
48
|
-
|
|
49
|
-
**React/Vite consumers** - Use bundler resolution:
|
|
50
|
-
|
|
51
|
-
```json
|
|
52
|
-
{
|
|
53
|
-
"compilerOptions": {
|
|
54
|
-
"moduleResolution": "bundler"
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
**Node.js servers** - Use classic resolution:
|
|
60
|
-
|
|
61
|
-
```json
|
|
62
|
-
{
|
|
63
|
-
"compilerOptions": {
|
|
64
|
-
"module": "CommonJS",
|
|
65
|
-
"moduleResolution": "node",
|
|
66
|
-
"esModuleInterop": true
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
```
|
|
62
|
+
| Package | Required For |
|
|
63
|
+
| ----------------------- | ---------------------------- |
|
|
64
|
+
| `@prisma/client` | Database types and client |
|
|
65
|
+
| `prisma` | Generating the Prisma client |
|
|
66
|
+
| `react` | React hooks (optional) |
|
|
67
|
+
| `@tanstack/react-query` | React query hooks (optional) |
|
|
68
|
+
| `@privy-io/react-auth` | Privy auth hooks (optional) |
|
|
70
69
|
|
|
71
70
|
## Development
|
|
72
71
|
|
|
73
72
|
```bash
|
|
74
73
|
npm install # Install dependencies
|
|
75
74
|
npm run build # Build package
|
|
76
|
-
npm run
|
|
75
|
+
npm run dev # Build and pack for local testing
|
|
77
76
|
```
|
|
78
77
|
|
|
79
78
|
### Local Testing
|
|
80
79
|
|
|
81
80
|
```bash
|
|
82
81
|
# In this package
|
|
83
|
-
npm run dev
|
|
84
|
-
npm link
|
|
82
|
+
npm run dev # Creates a .tgz file
|
|
85
83
|
|
|
86
84
|
# In consumer project
|
|
87
|
-
npm
|
|
85
|
+
npm install /path/to/levr-shared/*.tgz
|
|
86
|
+
npx levrbet-prisma-setup
|
|
88
87
|
```
|
|
89
88
|
|
|
90
89
|
## License
|
|
@@ -9,6 +9,8 @@ declare class OzRelayerService {
|
|
|
9
9
|
private getRelayer;
|
|
10
10
|
private createRelayerTransport;
|
|
11
11
|
private waitForTxConfirmation;
|
|
12
|
+
private getTxHashFromRelayer;
|
|
13
|
+
private waitForTxHashOnChain;
|
|
12
14
|
private proxyTxToRelayer;
|
|
13
15
|
private getNextIndex;
|
|
14
16
|
private isTxSuccess;
|
|
@@ -44,17 +44,24 @@ class OzRelayerService {
|
|
|
44
44
|
if (!request)
|
|
45
45
|
throw new Error("Missing transaction parameters");
|
|
46
46
|
const txId = await proxyTxToRelayer({ request, chainId, relayer });
|
|
47
|
-
return await waitForTxConfirmation(relayer.id, txId);
|
|
47
|
+
return await waitForTxConfirmation(relayer.id, txId, chainId);
|
|
48
48
|
}
|
|
49
49
|
config_1.logger.warn(`Unhandled method: ${method} with params:`, params);
|
|
50
50
|
throw new Error(`Method ${method} not implemented in relayer transport`);
|
|
51
51
|
},
|
|
52
52
|
});
|
|
53
53
|
};
|
|
54
|
-
this.waitForTxConfirmation = async (relayerId, txId) => {
|
|
54
|
+
this.waitForTxConfirmation = async (relayerId, txId, chainId) => {
|
|
55
|
+
// First, get the tx hash from the relayer
|
|
56
|
+
const txHash = await this.getTxHashFromRelayer(relayerId, txId);
|
|
57
|
+
config_1.logger.info(`Got tx hash from relayer.`, { relayerId, txId, txHash });
|
|
58
|
+
// Then wait for the tx to be confirmed on-chain using public client
|
|
59
|
+
return await this.waitForTxHashOnChain(txHash, chainId, relayerId, txId);
|
|
60
|
+
};
|
|
61
|
+
this.getTxHashFromRelayer = async (relayerId, txId) => {
|
|
55
62
|
for (let i = 0; i < 20; i++) {
|
|
56
63
|
await new Promise((r) => setTimeout(r, (0, ms_1.default)("5s")));
|
|
57
|
-
config_1.logger.info(`Attempt ${i + 1}:
|
|
64
|
+
config_1.logger.info(`Attempt ${i + 1}: Fetching tx from relayer...`, { relayerId, txId });
|
|
58
65
|
const { data } = await this.relayersApi().getTransactionById(relayerId, txId);
|
|
59
66
|
const tx = data.data;
|
|
60
67
|
if (!tx)
|
|
@@ -63,18 +70,34 @@ class OzRelayerService {
|
|
|
63
70
|
config_1.logger.error("Tx Failed:", tx);
|
|
64
71
|
throw new Error(`Tx failed with status=${tx.status}; txId=${tx.id}`);
|
|
65
72
|
}
|
|
66
|
-
tx;
|
|
67
73
|
if (this.isTxSuccess(tx.status)) {
|
|
68
74
|
if (!tx.hash) {
|
|
69
75
|
config_1.logger.error("Tx Failed:", tx);
|
|
70
76
|
throw new Error(`Tx status=${tx.status} but no hash; txId=${tx.id}`);
|
|
71
77
|
}
|
|
72
|
-
config_1.logger.info(`Transaction
|
|
78
|
+
config_1.logger.info(`Transaction hash obtained from relayer.`, { relayerId, txId, hash: tx.hash });
|
|
73
79
|
return tx.hash;
|
|
74
80
|
}
|
|
75
|
-
config_1.logger.info(`Transaction still not
|
|
81
|
+
config_1.logger.info(`Transaction still not submitted...`, { relayerId, txId, status: tx.status });
|
|
82
|
+
}
|
|
83
|
+
throw new Error(`Timeout waiting for transaction ${txId} to be submitted by relayer ${relayerId}`);
|
|
84
|
+
};
|
|
85
|
+
this.waitForTxHashOnChain = async (txHash, chainId, relayerId, txId) => {
|
|
86
|
+
const publicClient = core_1.publicClientService.getPublicClient(chainId);
|
|
87
|
+
config_1.logger.info(`Waiting for transaction to be mined on-chain...`, { txHash, chainId, relayerId, txId });
|
|
88
|
+
try {
|
|
89
|
+
await publicClient.waitForTransactionReceipt({ hash: txHash });
|
|
90
|
+
config_1.logger.info(`Transaction confirmed on-chain.`, { txHash, chainId, relayerId, txId });
|
|
91
|
+
return txHash;
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
config_1.logger.error(`Failed to wait for transaction receipt.`, {
|
|
95
|
+
txHash,
|
|
96
|
+
chainId,
|
|
97
|
+
error: error instanceof Error ? error.message : String(error),
|
|
98
|
+
});
|
|
99
|
+
throw error;
|
|
76
100
|
}
|
|
77
|
-
throw new Error(`Timeout waiting for transaction ${txId} to be confirmed by relayer ${relayerId}`);
|
|
78
101
|
};
|
|
79
102
|
this.proxyTxToRelayer = async ({ request, chainId, relayer }) => {
|
|
80
103
|
config_1.logger.info(`Proxying transaction to relayer.`, { request, chainId, relayer });
|
|
@@ -148,7 +171,7 @@ class OzRelayerService {
|
|
|
148
171
|
return relayer;
|
|
149
172
|
}
|
|
150
173
|
isTxSuccess(status) {
|
|
151
|
-
return [relayer_sdk_1.TransactionStatus.CONFIRMED, relayer_sdk_1.TransactionStatus.MINED].includes(status);
|
|
174
|
+
return [relayer_sdk_1.TransactionStatus.SUBMITTED, relayer_sdk_1.TransactionStatus.CONFIRMED, relayer_sdk_1.TransactionStatus.MINED].includes(status);
|
|
152
175
|
}
|
|
153
176
|
isTxFailed(status) {
|
|
154
177
|
return [relayer_sdk_1.TransactionStatus.CANCELED, relayer_sdk_1.TransactionStatus.FAILED, relayer_sdk_1.TransactionStatus.EXPIRED].includes(status);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ozRelayerService.js","sourceRoot":"","sources":["../../../../src/server/contracts/clients/ozRelayerService.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,2DAOkC;AAClC,iCAAoC;AACpC,kDAAyB;AACzB,4CAAmB;AACnB,2DAA4C;AAE5C,+BAAwD;AACxD,
|
|
1
|
+
{"version":3,"file":"ozRelayerService.js","sourceRoot":"","sources":["../../../../src/server/contracts/clients/ozRelayerService.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/prisma/schema.prisma
CHANGED