@sudobility/contracts 1.17.31 โ†’ 1.17.43

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
@@ -34,6 +34,67 @@ npm install @johnqh/mail_box_contracts
34
34
  yarn add @johnqh/mail_box_contracts
35
35
  ```
36
36
 
37
+ ## ๐Ÿ“ฑ Platform Support
38
+
39
+ The package automatically detects your platform and loads the appropriate implementation:
40
+
41
+ | Environment | Import | Resolves to |
42
+ |-------------|--------|-------------|
43
+ | React Native (Metro) | `@sudobility/contracts` | React Native build |
44
+ | Browser (webpack/vite) | `@sudobility/contracts` | Web build |
45
+ | Node.js | `@sudobility/contracts` | Web build |
46
+
47
+ ### Auto-Detection (Recommended)
48
+
49
+ ```typescript
50
+ // Works everywhere - auto-detects platform
51
+ import { OnchainMailerClient } from '@sudobility/contracts';
52
+ ```
53
+
54
+ ### Explicit Imports
55
+
56
+ ```typescript
57
+ // Force specific platform
58
+ import { OnchainMailerClient } from '@sudobility/contracts/web';
59
+ import { OnchainMailerClient } from '@sudobility/contracts/react-native';
60
+
61
+ // Chain-specific imports
62
+ import { EVMMailerClient } from '@sudobility/contracts/evm';
63
+ import { SolanaMailerClient } from '@sudobility/contracts/solana';
64
+ ```
65
+
66
+ ### React Native Setup
67
+
68
+ React Native requires polyfills to be imported first in your app entry point:
69
+
70
+ ```typescript
71
+ // index.js (MUST be the first import)
72
+ import '@sudobility/contracts/react-native/polyfills';
73
+
74
+ import { AppRegistry } from 'react-native';
75
+ import App from './App';
76
+ AppRegistry.registerComponent('YourApp', () => App);
77
+ ```
78
+
79
+ Then use the client normally in your app:
80
+
81
+ ```typescript
82
+ // App.tsx - auto-detected as React Native
83
+ import { OnchainMailerClient, verifyPolyfills } from '@sudobility/contracts';
84
+
85
+ // Optional: verify polyfills loaded correctly
86
+ const { success, missing } = verifyPolyfills();
87
+ if (!success) console.error('Missing polyfills:', missing);
88
+ ```
89
+
90
+ **Required React Native dependencies:**
91
+
92
+ ```bash
93
+ npm install react-native-get-random-values buffer react-native-url-polyfill text-encoding
94
+ ```
95
+
96
+ See [`docs/REACT_NATIVE.md`](./docs/REACT_NATIVE.md) for complete React Native setup guide.
97
+
37
98
  ## ๐Ÿš€ Quick Start - Unified Multi-Chain Client
38
99
 
39
100
  ### Option 1: Using ChainConfig with RpcHelpers (Recommended)
@@ -174,6 +235,7 @@ mail_box_contracts/
174
235
  โ”‚ โ”œโ”€โ”€ evm/ # EVM-specific clients
175
236
  โ”‚ โ”œโ”€โ”€ solana/ # Solana-specific clients
176
237
  โ”‚ โ”œโ”€โ”€ unified/ # Cross-chain unified client
238
+ โ”‚ โ”œโ”€โ”€ react-native/ # React Native entry point & polyfills
177
239
  โ”‚ โ””โ”€โ”€ utils/ # Shared utilities & validation
178
240
  โ”œโ”€โ”€ test/ # Comprehensive test suites (116 tests)
179
241
  โ”‚ โ”œโ”€โ”€ evm/ # EVM contract tests (75 tests)
@@ -367,4 +429,4 @@ MIT License - see LICENSE file for details.
367
429
 
368
430
  ---
369
431
 
370
- **Built with**: Hardhat, TypeScript, Solidity ^0.8.24, Ethers v6
432
+ **Built with**: Hardhat, TypeScript, Solidity ^0.8.24, Ethers v6, React Native
@@ -1,4 +1,5 @@
1
- import { ChainType, MessageSendResponse, DomainRegistrationResponse, MailboxDelegationResponse, Optional } from '@sudobility/types';
1
+ import { ChainType, Optional } from '@sudobility/types';
2
+ import { MessageSendResponse, DomainRegistrationResponse, MailboxDelegationResponse } from '@sudobility/mail_box_types';
2
3
  import type { WalletClient, PublicClient } from 'viem';
3
4
  import type { ChainInfo } from '@sudobility/configs';
4
5
  interface SolanaWalletInterfaceLocal {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/unified/types.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,0BAA0B,EAC1B,yBAAyB,EACzB,QAAQ,EACT,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,UAAU,0BAA0B;IAClC,SAAS,CAAC,EAAE;QAAE,QAAQ,IAAI,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC1C,eAAe,CAAC,CAAC,SAAS;QAAE,SAAS,IAAI,MAAM,CAAA;KAAE,EAAE,WAAW,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/E,mBAAmB,CAAC,CAAC,CAAC,SAAS;QAAE,SAAS,IAAI,MAAM,CAAA;KAAE,EAAE,YAAY,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IACzF,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxB,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC9B;AAGD,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC;AAC3C,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC;AAC3C,MAAM,MAAM,mBAAmB,GAAG,0BAA0B,CAAC;AAE7D,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC1B,MAAM,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE;QACT,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAGD,MAAM,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAChD,MAAM,MAAM,YAAY,GAAG,0BAA0B,CAAC;AACtD,MAAM,MAAM,gBAAgB,GAAG,yBAAyB,CAAC;AAGzD,YAAY,EAAE,SAAS,EAAE,CAAC;AAG1B,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAGvF,MAAM,MAAM,SAAS,GAAG,aAAa,CAAC;AACtC,MAAM,MAAM,YAAY,GAAG,gBAAgB,CAAC;AAG5C,MAAM,MAAM,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/unified/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,yBAAyB,EAC1B,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,UAAU,0BAA0B;IAClC,SAAS,CAAC,EAAE;QAAE,QAAQ,IAAI,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC1C,eAAe,CAAC,CAAC,SAAS;QAAE,SAAS,IAAI,MAAM,CAAA;KAAE,EAAE,WAAW,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/E,mBAAmB,CAAC,CAAC,CAAC,SAAS;QAAE,SAAS,IAAI,MAAM,CAAA;KAAE,EAAE,YAAY,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IACzF,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxB,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC9B;AAGD,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC;AAC3C,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC;AAC3C,MAAM,MAAM,mBAAmB,GAAG,0BAA0B,CAAC;AAE7D,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC1B,MAAM,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE;QACT,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAGD,MAAM,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAChD,MAAM,MAAM,YAAY,GAAG,0BAA0B,CAAC;AACtD,MAAM,MAAM,gBAAgB,GAAG,yBAAyB,CAAC;AAGzD,YAAY,EAAE,SAAS,EAAE,CAAC;AAG1B,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAGvF,MAAM,MAAM,SAAS,GAAG,aAAa,CAAC;AACtC,MAAM,MAAM,YAAY,GAAG,gBAAgB,CAAC;AAG5C,MAAM,MAAM,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC"}
@@ -41,13 +41,13 @@ export declare function useMessaging(client: OnchainMailerClient, connectedWalle
41
41
  resolveSenderToName?: boolean;
42
42
  }>;
43
43
  }): {
44
- sendMessage: UseMutationResult<import("@sudobility/types").MessageSendResponse, Error, {
44
+ sendMessage: UseMutationResult<import("@sudobility/mail_box_types").MessageSendResponse, Error, {
45
45
  subject: string;
46
46
  body: string;
47
47
  priority?: boolean;
48
48
  resolveSenderToName?: boolean;
49
49
  }, unknown>;
50
- sendPrepared: UseMutationResult<import("@sudobility/types").MessageSendResponse, Error, {
50
+ sendPrepared: UseMutationResult<import("@sudobility/mail_box_types").MessageSendResponse, Error, {
51
51
  to: string;
52
52
  mailId: string;
53
53
  priority?: boolean;
@@ -117,7 +117,7 @@ export declare function useDelegation(client: OnchainMailerClient, connectedWall
117
117
  delegatorAddress: string;
118
118
  }>;
119
119
  }): {
120
- delegateTo: UseMutationResult<import("@sudobility/types").MailboxDelegationResponse, Error, {
120
+ delegateTo: UseMutationResult<import("@sudobility/mail_box_types").MailboxDelegationResponse, Error, {
121
121
  delegate: string;
122
122
  }, unknown>;
123
123
  rejectDelegation: UseMutationResult<UnifiedTransaction, Error, {
@@ -1,4 +1,5 @@
1
- import { ChainType, MessageSendResponse, DomainRegistrationResponse, MailboxDelegationResponse, Optional } from '@sudobility/types';
1
+ import { ChainType, Optional } from '@sudobility/types';
2
+ import { MessageSendResponse, DomainRegistrationResponse, MailboxDelegationResponse } from '@sudobility/mail_box_types';
2
3
  import type { WalletClient, PublicClient } from 'viem';
3
4
  import type { ChainInfo } from '@sudobility/configs';
4
5
  interface SolanaWalletInterfaceLocal {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/unified/types.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,0BAA0B,EAC1B,yBAAyB,EACzB,QAAQ,EACT,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,UAAU,0BAA0B;IAClC,SAAS,CAAC,EAAE;QAAE,QAAQ,IAAI,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC1C,eAAe,CAAC,CAAC,SAAS;QAAE,SAAS,IAAI,MAAM,CAAA;KAAE,EAAE,WAAW,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/E,mBAAmB,CAAC,CAAC,CAAC,SAAS;QAAE,SAAS,IAAI,MAAM,CAAA;KAAE,EAAE,YAAY,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IACzF,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxB,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC9B;AAGD,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC;AAC3C,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC;AAC3C,MAAM,MAAM,mBAAmB,GAAG,0BAA0B,CAAC;AAE7D,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC1B,MAAM,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE;QACT,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAGD,MAAM,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAChD,MAAM,MAAM,YAAY,GAAG,0BAA0B,CAAC;AACtD,MAAM,MAAM,gBAAgB,GAAG,yBAAyB,CAAC;AAGzD,YAAY,EAAE,SAAS,EAAE,CAAC;AAG1B,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAGvF,MAAM,MAAM,SAAS,GAAG,aAAa,CAAC;AACtC,MAAM,MAAM,YAAY,GAAG,gBAAgB,CAAC;AAG5C,MAAM,MAAM,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/unified/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,yBAAyB,EAC1B,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,UAAU,0BAA0B;IAClC,SAAS,CAAC,EAAE;QAAE,QAAQ,IAAI,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC1C,eAAe,CAAC,CAAC,SAAS;QAAE,SAAS,IAAI,MAAM,CAAA;KAAE,EAAE,WAAW,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/E,mBAAmB,CAAC,CAAC,CAAC,SAAS;QAAE,SAAS,IAAI,MAAM,CAAA;KAAE,EAAE,YAAY,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IACzF,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxB,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC9B;AAGD,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC;AAC3C,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC;AAC3C,MAAM,MAAM,mBAAmB,GAAG,0BAA0B,CAAC;AAE7D,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC1B,MAAM,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE;QACT,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAGD,MAAM,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAChD,MAAM,MAAM,YAAY,GAAG,0BAA0B,CAAC;AACtD,MAAM,MAAM,gBAAgB,GAAG,yBAAyB,CAAC;AAGzD,YAAY,EAAE,SAAS,EAAE,CAAC;AAG1B,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAGvF,MAAM,MAAM,SAAS,GAAG,aAAa,CAAC;AACtC,MAAM,MAAM,YAAY,GAAG,gBAAgB,CAAC;AAG5C,MAAM,MAAM,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC"}
package/package.json CHANGED
@@ -1,11 +1,31 @@
1
1
  {
2
2
  "name": "@sudobility/contracts",
3
- "version": "1.17.31",
3
+ "version": "1.17.43",
4
4
  "type": "module",
5
5
  "main": "dist/unified/src/unified/index.js",
6
6
  "types": "dist/unified/src/unified/index.d.ts",
7
+ "browser": "dist/unified/src/unified/index.js",
8
+ "react-native": "dist/react-native/src/react-native/index.js",
7
9
  "exports": {
8
10
  ".": {
11
+ "react-native": {
12
+ "types": "./dist/react-native/src/react-native/index.d.ts",
13
+ "default": "./dist/react-native/src/react-native/index.js"
14
+ },
15
+ "browser": {
16
+ "types": "./dist/unified/src/unified/index.d.ts",
17
+ "default": "./dist/unified/src/unified/index.js"
18
+ },
19
+ "node": {
20
+ "types": "./dist/unified/src/unified/index.d.ts",
21
+ "default": "./dist/unified/src/unified/index.js"
22
+ },
23
+ "default": {
24
+ "types": "./dist/unified/src/unified/index.d.ts",
25
+ "default": "./dist/unified/src/unified/index.js"
26
+ }
27
+ },
28
+ "./web": {
9
29
  "types": "./dist/unified/src/unified/index.d.ts",
10
30
  "default": "./dist/unified/src/unified/index.js"
11
31
  },
@@ -33,12 +53,13 @@
33
53
  "peerDependencies": {
34
54
  "@solana/spl-token": ">=0.4.0",
35
55
  "@solana/web3.js": ">=1.95.0",
56
+ "@sudobility/mail_box_types": "^1.0.2",
36
57
  "@tanstack/react-query": ">=5.0.0",
58
+ "buffer": ">=6.0.0",
37
59
  "react": "^18.0.0 || ^19.0.0",
38
60
  "react-native": ">=0.70.0",
39
61
  "react-native-get-random-values": ">=1.8.0",
40
62
  "react-native-url-polyfill": ">=2.0.0",
41
- "buffer": ">=6.0.0",
42
63
  "text-encoding": ">=0.7.0",
43
64
  "viem": ">=2.0.0"
44
65
  },
@@ -75,30 +96,30 @@
75
96
  }
76
97
  },
77
98
  "scripts": {
78
- "build": "npm run build:evm && npm run build:solana && npm run build:unified && npm run build:react-native",
79
- "build:ci": "npm run build:unified && npm run build:react-native",
99
+ "build": "bun run build:evm && bun run build:solana && bun run build:unified && bun run build:react-native",
100
+ "build:ci": "bun run build:unified && bun run build:react-native",
80
101
  "build:evm": "npx hardhat compile && tsc --project tsconfig.evm.json",
81
102
  "build:solana": "cargo build --manifest-path programs/mailer/Cargo.toml && tsc --project tsconfig.solana.json",
82
103
  "build:unified": "tsc --project tsconfig.unified.json",
83
104
  "build:react-native": "tsc --project tsconfig.react-native.json",
84
- "test": "npm run test:evm && npm run test:solana && npm run test:unified:direct",
85
- "test:ci": "npm run build:unified && npm run test:unified:direct",
105
+ "test": "bun run test:evm && bun run test:solana && bun run test:unified:direct",
106
+ "test:ci": "bun run build:unified && bun run test:unified:direct",
86
107
  "test:evm": "npx hardhat test test/evm/Mailer.test.ts",
87
108
  "test:solana": "cd programs/mailer && cargo test",
88
109
  "test:unified": "mocha dist/test/unified/**/*.test.js",
89
110
  "test:unified:direct": "node scripts/run-unified-tests.mjs",
90
- "compile": "npm run compile:evm",
111
+ "compile": "bun run compile:evm",
91
112
  "compile:evm": "npx hardhat compile",
92
113
  "compile:solana": "anchor build",
93
114
  "clean": "npx hardhat clean",
94
- "prepublishOnly": "npm run clean && npm run compile && npm run build",
95
- "prepack": "npm run build",
115
+ "prepublishOnly": "bun run clean && bun run compile && bun run build",
116
+ "prepack": "bun run build",
96
117
  "ai:workflow": "npx ts-node scripts/ai-helpers/dev-workflow.ts",
97
118
  "ai:status": "echo '๐Ÿค– Multi-Chain Messaging Contracts AI Status' && echo '๐Ÿ“ฆ Package: @sudobility/contracts v'$(node -p \"require('./package.json').version\") && echo '๐Ÿ“Š Architecture: Single Mailer contracts on EVM & Solana' && git status --porcelain",
98
- "ai:build": "echo '๐Ÿ”จ AI-Optimized Build Process' && npm run clean && npm run compile && npm run build && echo 'โœ… Build Complete - Ready for Development'",
119
+ "ai:build": "echo '๐Ÿ”จ AI-Optimized Build Process' && bun run clean && bun run compile && bun run build && echo 'โœ… Build Complete - Ready for Development'",
99
120
  "ai:test": "echo '๐Ÿงช Comprehensive Test Suite' && npm test && echo '๐Ÿ“Š Test Summary: EVM(75) + Unified(41) = 116 tests โœ…'",
100
121
  "ai:check": "echo '๐Ÿ” Quick Validation Check' && npx tsc --noEmit && npx eslint src/ test/ --ext .ts,.js && echo 'โœ… All validation checks passed'",
101
- "ai:dev": "echo '๐Ÿš€ AI Development Helper Commands:' && echo 'โ€ข npm run ai:status - Check project health' && echo 'โ€ข npm run ai:build - Clean build everything' && echo 'โ€ข npm run ai:test - Run all 116 tests' && echo 'โ€ข npm run ai:check - TypeScript + ESLint validation' && echo 'โ€ข npm run ai:examples - Test all examples compile' && echo 'โ€ข npm run ai:docs - Show AI documentation files' && npm run ai:status",
122
+ "ai:dev": "echo '๐Ÿš€ AI Development Helper Commands:' && echo 'โ€ข bun run ai:status - Check project health' && echo 'โ€ข bun run ai:build - Clean build everything' && echo 'โ€ข bun run ai:test - Run all 116 tests' && echo 'โ€ข bun run ai:check - TypeScript + ESLint validation' && echo 'โ€ข bun run ai:examples - Test all examples compile' && echo 'โ€ข bun run ai:docs - Show AI documentation files' && bun run ai:status",
102
123
  "ai:examples": "echo '๐Ÿ“‹ Testing AI Examples Compilation...' && npx tsc --noEmit --skipLibCheck examples/solana-usage.ts && npx tsc --noEmit --skipLibCheck examples/unified-usage.ts && echo 'โœ… Solana and Unified examples compile successfully (EVM example temporarily disabled due to viem v2.37.7 compatibility)'",
103
124
  "ai:docs": "echo '๐Ÿ“š AI Documentation Files:' && echo 'โ€ข README.md - Main project documentation' && echo 'โ€ข CLAUDE.md - AI assistant development guide' && echo 'โ€ข contracts/Mailer.sol - Single contract with all functionality' && echo 'โ€ข programs/mailer/ - Single Solana program' && echo 'โ€ข src/unified/ - Cross-chain client library' && echo 'โ€ข test/ - 116 comprehensive tests'",
104
125
  "lint": "eslint --ext .ts,.js . --ignore-pattern 'examples/**'",
@@ -114,7 +135,7 @@
114
135
  "deploy:solana:local": "anchor deploy --provider.cluster localnet",
115
136
  "deploy:solana:devnet": "anchor deploy --provider.cluster devnet",
116
137
  "deploy:solana:mainnet": "anchor deploy --provider.cluster mainnet-beta",
117
- "deploy:unified": "npm run deploy:evm:local && npm run deploy:solana:local",
138
+ "deploy:unified": "bun run deploy:evm:local && bun run deploy:solana:local",
118
139
  "deploy:evm:localhost": "npx hardhat run scripts/evm/deploy.ts --network localhost",
119
140
  "deploy:evm:mainnet": "npx hardhat run scripts/evm/deploy.ts --network mainnet",
120
141
  "deploy:evm:sepolia": "npx hardhat run scripts/evm/deploy.ts --network sepolia",
@@ -244,6 +265,7 @@
244
265
  "@solana/spl-token": "^0.4.14",
245
266
  "@solana/wallet-adapter-base": "^0.9.27",
246
267
  "@solana/web3.js": "^1.98.4",
268
+ "@sudobility/mail_box_types": "^1.0.2",
247
269
  "@tanstack/react-query": "^5.90.1",
248
270
  "@typechain/hardhat": "^9.1.0",
249
271
  "@types/chai": "^4.3.20",
@@ -271,8 +293,8 @@
271
293
  },
272
294
  "dependencies": {
273
295
  "@openzeppelin/contracts": "^5.4.0",
274
- "@sudobility/configs": "^0.0.42",
275
- "@sudobility/types": "^1.9.31"
296
+ "@sudobility/configs": "^0.0.49",
297
+ "@sudobility/types": "^1.9.40"
276
298
  },
277
299
  "overrides": {
278
300
  "bigint-buffer": "^1.1.5",