@sudobility/contracts 0.15.1 → 1.10.0

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.
Files changed (166) hide show
  1. package/README.md +2 -3
  2. package/artifacts/contracts/Mailer.sol/Mailer.d.ts +2 -185
  3. package/artifacts/contracts/Mailer.sol/Mailer.dbg.json +1 -1
  4. package/artifacts/contracts/Mailer.sol/Mailer.json +2 -185
  5. package/artifacts/contracts/MockUSDC.sol/MockUSDC.dbg.json +1 -1
  6. package/artifacts/contracts/interfaces/IERC20.sol/IERC20.dbg.json +1 -1
  7. package/dist/evm/src/evm/index.d.ts +1 -1
  8. package/dist/evm/src/evm/index.d.ts.map +1 -1
  9. package/dist/evm/src/evm/index.js +4 -4
  10. package/dist/evm/src/evm/index.js.map +1 -1
  11. package/dist/evm/src/evm/mailer-client.d.ts +210 -0
  12. package/dist/evm/src/evm/mailer-client.d.ts.map +1 -0
  13. package/dist/evm/src/evm/mailer-client.js +417 -0
  14. package/dist/evm/src/evm/mailer-client.js.map +1 -0
  15. package/dist/evm/typechain-types/Mailer.d.ts +10 -128
  16. package/dist/evm/typechain-types/Mailer.d.ts.map +1 -1
  17. package/dist/evm/typechain-types/factories/Mailer__factory.d.ts +1 -145
  18. package/dist/evm/typechain-types/factories/Mailer__factory.d.ts.map +1 -1
  19. package/dist/evm/typechain-types/factories/Mailer__factory.js +1 -184
  20. package/dist/evm/typechain-types/factories/Mailer__factory.js.map +1 -1
  21. package/dist/solana/solana/index.d.ts +1 -1
  22. package/dist/solana/solana/index.d.ts.map +1 -1
  23. package/dist/solana/solana/index.js +1 -4
  24. package/dist/solana/solana/index.js.map +1 -1
  25. package/dist/solana/solana/mailer-client.d.ts +209 -0
  26. package/dist/solana/solana/mailer-client.d.ts.map +1 -0
  27. package/dist/solana/solana/mailer-client.js +728 -0
  28. package/dist/solana/solana/mailer-client.js.map +1 -0
  29. package/dist/solana/solana/types.d.ts +2 -3
  30. package/dist/solana/solana/types.d.ts.map +1 -1
  31. package/dist/solana/solana/types.js.map +1 -1
  32. package/dist/unified/src/evm/index.d.ts +1 -1
  33. package/dist/unified/src/evm/index.d.ts.map +1 -1
  34. package/dist/unified/src/evm/index.js +4 -4
  35. package/dist/unified/src/evm/index.js.map +1 -1
  36. package/dist/unified/src/evm/mailer-client.d.ts +210 -0
  37. package/dist/unified/src/evm/mailer-client.d.ts.map +1 -0
  38. package/dist/unified/src/evm/mailer-client.js +417 -0
  39. package/dist/unified/src/evm/mailer-client.js.map +1 -0
  40. package/dist/unified/src/react/context/MailerProvider.d.ts +20 -26
  41. package/dist/unified/src/react/context/MailerProvider.d.ts.map +1 -1
  42. package/dist/unified/src/react/context/MailerProvider.js +26 -26
  43. package/dist/unified/src/react/context/MailerProvider.js.map +1 -1
  44. package/dist/unified/src/react/hooks/useMailerMutations.d.ts +192 -225
  45. package/dist/unified/src/react/hooks/useMailerMutations.d.ts.map +1 -1
  46. package/dist/unified/src/react/hooks/useMailerMutations.js +266 -263
  47. package/dist/unified/src/react/hooks/useMailerMutations.js.map +1 -1
  48. package/dist/unified/src/react/hooks/useMailerQueries.d.ts +63 -117
  49. package/dist/unified/src/react/hooks/useMailerQueries.d.ts.map +1 -1
  50. package/dist/unified/src/react/hooks/useMailerQueries.js +104 -239
  51. package/dist/unified/src/react/hooks/useMailerQueries.js.map +1 -1
  52. package/dist/unified/src/react/index.d.ts +3 -5
  53. package/dist/unified/src/react/index.d.ts.map +1 -1
  54. package/dist/unified/src/react/index.js +26 -41
  55. package/dist/unified/src/react/index.js.map +1 -1
  56. package/dist/unified/src/solana/index.d.ts +1 -1
  57. package/dist/unified/src/solana/index.d.ts.map +1 -1
  58. package/dist/unified/src/solana/index.js +1 -4
  59. package/dist/unified/src/solana/index.js.map +1 -1
  60. package/dist/unified/src/solana/mailer-client.d.ts +209 -0
  61. package/dist/unified/src/solana/mailer-client.d.ts.map +1 -0
  62. package/dist/unified/src/solana/mailer-client.js +728 -0
  63. package/dist/unified/src/solana/mailer-client.js.map +1 -0
  64. package/dist/unified/src/solana/types.d.ts +2 -3
  65. package/dist/unified/src/solana/types.d.ts.map +1 -1
  66. package/dist/unified/src/solana/types.js.map +1 -1
  67. package/dist/unified/src/unified/index.d.ts +1 -1
  68. package/dist/unified/src/unified/index.d.ts.map +1 -1
  69. package/dist/unified/src/unified/onchain-mailer-client.d.ts +247 -192
  70. package/dist/unified/src/unified/onchain-mailer-client.d.ts.map +1 -1
  71. package/dist/unified/src/unified/onchain-mailer-client.js +1462 -551
  72. package/dist/unified/src/unified/onchain-mailer-client.js.map +1 -1
  73. package/dist/unified/src/unified/types.d.ts +6 -23
  74. package/dist/unified/src/unified/types.d.ts.map +1 -1
  75. package/dist/unified/src/utils/chain-config.d.ts +2 -4
  76. package/dist/unified/src/utils/chain-config.d.ts.map +1 -1
  77. package/dist/unified/src/utils/chain-config.js +36 -46
  78. package/dist/unified/src/utils/chain-config.js.map +1 -1
  79. package/dist/unified/typechain-types/Mailer.d.ts +10 -128
  80. package/dist/unified/typechain-types/Mailer.d.ts.map +1 -1
  81. package/dist/unified/typechain-types/factories/Mailer__factory.d.ts +1 -145
  82. package/dist/unified/typechain-types/factories/Mailer__factory.d.ts.map +1 -1
  83. package/dist/unified/typechain-types/factories/Mailer__factory.js +1 -184
  84. package/dist/unified/typechain-types/factories/Mailer__factory.js.map +1 -1
  85. package/dist/unified-esm/src/evm/index.d.ts +1 -1
  86. package/dist/unified-esm/src/evm/index.d.ts.map +1 -1
  87. package/dist/unified-esm/src/evm/index.js +2 -2
  88. package/dist/unified-esm/src/evm/index.js.map +1 -1
  89. package/dist/unified-esm/src/evm/mailer-client.d.ts +210 -0
  90. package/dist/unified-esm/src/evm/mailer-client.d.ts.map +1 -0
  91. package/dist/unified-esm/src/evm/mailer-client.js +413 -0
  92. package/dist/unified-esm/src/evm/mailer-client.js.map +1 -0
  93. package/dist/unified-esm/src/react/context/MailerProvider.d.ts +20 -26
  94. package/dist/unified-esm/src/react/context/MailerProvider.d.ts.map +1 -1
  95. package/dist/unified-esm/src/react/context/MailerProvider.js +26 -25
  96. package/dist/unified-esm/src/react/context/MailerProvider.js.map +1 -1
  97. package/dist/unified-esm/src/react/hooks/useMailerMutations.d.ts +192 -225
  98. package/dist/unified-esm/src/react/hooks/useMailerMutations.d.ts.map +1 -1
  99. package/dist/unified-esm/src/react/hooks/useMailerMutations.js +262 -254
  100. package/dist/unified-esm/src/react/hooks/useMailerMutations.js.map +1 -1
  101. package/dist/unified-esm/src/react/hooks/useMailerQueries.d.ts +63 -117
  102. package/dist/unified-esm/src/react/hooks/useMailerQueries.d.ts.map +1 -1
  103. package/dist/unified-esm/src/react/hooks/useMailerQueries.js +102 -232
  104. package/dist/unified-esm/src/react/hooks/useMailerQueries.js.map +1 -1
  105. package/dist/unified-esm/src/react/index.d.ts +3 -5
  106. package/dist/unified-esm/src/react/index.d.ts.map +1 -1
  107. package/dist/unified-esm/src/react/index.js +5 -9
  108. package/dist/unified-esm/src/react/index.js.map +1 -1
  109. package/dist/unified-esm/src/solana/index.d.ts +1 -1
  110. package/dist/unified-esm/src/solana/index.d.ts.map +1 -1
  111. package/dist/unified-esm/src/solana/index.js +1 -2
  112. package/dist/unified-esm/src/solana/index.js.map +1 -1
  113. package/dist/unified-esm/src/solana/mailer-client.d.ts +209 -0
  114. package/dist/unified-esm/src/solana/mailer-client.d.ts.map +1 -0
  115. package/dist/unified-esm/src/solana/mailer-client.js +724 -0
  116. package/dist/unified-esm/src/solana/mailer-client.js.map +1 -0
  117. package/dist/unified-esm/src/solana/types.d.ts +2 -3
  118. package/dist/unified-esm/src/solana/types.d.ts.map +1 -1
  119. package/dist/unified-esm/src/solana/types.js.map +1 -1
  120. package/dist/unified-esm/src/unified/index.d.ts +1 -1
  121. package/dist/unified-esm/src/unified/index.d.ts.map +1 -1
  122. package/dist/unified-esm/src/unified/onchain-mailer-client.d.ts +247 -192
  123. package/dist/unified-esm/src/unified/onchain-mailer-client.d.ts.map +1 -1
  124. package/dist/unified-esm/src/unified/onchain-mailer-client.js +1462 -551
  125. package/dist/unified-esm/src/unified/onchain-mailer-client.js.map +1 -1
  126. package/dist/unified-esm/src/unified/types.d.ts +6 -23
  127. package/dist/unified-esm/src/unified/types.d.ts.map +1 -1
  128. package/dist/unified-esm/src/utils/chain-config.d.ts +2 -4
  129. package/dist/unified-esm/src/utils/chain-config.d.ts.map +1 -1
  130. package/dist/unified-esm/src/utils/chain-config.js +35 -46
  131. package/dist/unified-esm/src/utils/chain-config.js.map +1 -1
  132. package/dist/unified-esm/typechain-types/Mailer.d.ts +10 -128
  133. package/dist/unified-esm/typechain-types/Mailer.d.ts.map +1 -1
  134. package/dist/unified-esm/typechain-types/factories/Mailer__factory.d.ts +1 -145
  135. package/dist/unified-esm/typechain-types/factories/Mailer__factory.d.ts.map +1 -1
  136. package/dist/unified-esm/typechain-types/factories/Mailer__factory.js +1 -184
  137. package/dist/unified-esm/typechain-types/factories/Mailer__factory.js.map +1 -1
  138. package/package.json +10 -17
  139. package/programs/mailer/src/lib.rs +145 -764
  140. package/programs/mailer/tests/integration_tests.rs +65 -586
  141. package/typechain-types/Mailer.ts +8 -215
  142. package/typechain-types/factories/Mailer__factory.ts +1 -184
  143. package/dist/evm/src/evm/evm-mailer-client.d.ts +0 -1062
  144. package/dist/evm/src/evm/evm-mailer-client.d.ts.map +0 -1
  145. package/dist/evm/src/evm/evm-mailer-client.js +0 -924
  146. package/dist/evm/src/evm/evm-mailer-client.js.map +0 -1
  147. package/dist/solana/solana/solana-mailer-client.d.ts +0 -209
  148. package/dist/solana/solana/solana-mailer-client.d.ts.map +0 -1
  149. package/dist/solana/solana/solana-mailer-client.js +0 -1004
  150. package/dist/solana/solana/solana-mailer-client.js.map +0 -1
  151. package/dist/unified/src/evm/evm-mailer-client.d.ts +0 -1062
  152. package/dist/unified/src/evm/evm-mailer-client.d.ts.map +0 -1
  153. package/dist/unified/src/evm/evm-mailer-client.js +0 -924
  154. package/dist/unified/src/evm/evm-mailer-client.js.map +0 -1
  155. package/dist/unified/src/solana/solana-mailer-client.d.ts +0 -209
  156. package/dist/unified/src/solana/solana-mailer-client.d.ts.map +0 -1
  157. package/dist/unified/src/solana/solana-mailer-client.js +0 -1004
  158. package/dist/unified/src/solana/solana-mailer-client.js.map +0 -1
  159. package/dist/unified-esm/src/evm/evm-mailer-client.d.ts +0 -1062
  160. package/dist/unified-esm/src/evm/evm-mailer-client.d.ts.map +0 -1
  161. package/dist/unified-esm/src/evm/evm-mailer-client.js +0 -920
  162. package/dist/unified-esm/src/evm/evm-mailer-client.js.map +0 -1
  163. package/dist/unified-esm/src/solana/solana-mailer-client.d.ts +0 -209
  164. package/dist/unified-esm/src/solana/solana-mailer-client.d.ts.map +0 -1
  165. package/dist/unified-esm/src/solana/solana-mailer-client.js +0 -1000
  166. package/dist/unified-esm/src/solana/solana-mailer-client.js.map +0 -1
@@ -0,0 +1,209 @@
1
+ import { Connection, PublicKey, Transaction, Keypair, ConfirmOptions } from '@solana/web3.js';
2
+ import { Optional } from '@sudobility/types';
3
+ import { ClaimableInfo, MailerFees } from './types.js';
4
+ /**
5
+ * Interface for wallet adapter pattern
6
+ */
7
+ export interface Wallet {
8
+ publicKey: PublicKey;
9
+ signTransaction<T extends Transaction>(transaction: T): Promise<T>;
10
+ signAllTransactions<T extends Transaction>(transactions: T[]): Promise<T[]>;
11
+ }
12
+ /**
13
+ * @class MailerClient
14
+ * @description Native Solana program client for the Mailer program
15
+ * @notice Provides easy-to-use methods for sending messages with USDC fees and revenue sharing
16
+ *
17
+ * ## Key Features:
18
+ * - **Priority Messages**: Full fee (0.1 USDC) with 90% revenue share to recipient
19
+ * - **Standard Messages**: 10% fee only (0.01 USDC) with no revenue share
20
+ * - **Revenue Claims**: 60-day claim period for priority message revenue shares
21
+ * - **Delegation Management**: Delegate message handling with rejection capability
22
+ *
23
+ * ## Usage Examples:
24
+ * ```typescript
25
+ * // Connect to existing deployed program
26
+ * const connection = new Connection('https://api.devnet.solana.com');
27
+ * const wallet = new WalletAdapter(keypair);
28
+ * const programId = new PublicKey('9FLkBDGpZBcR8LMsQ7MwwV6X9P4TDFgN3DeRh5qYyHJF');
29
+ * const usdcMint = new PublicKey('EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v');
30
+ * const client = new MailerClient(connection, wallet, programId, usdcMint);
31
+ *
32
+ * // Send message with revenue sharing to recipient
33
+ * await client.send('recipient-address', 'Subject', 'Message body', true);
34
+ *
35
+ * // Claim your revenue share within 60 days (as recipient)
36
+ * await client.claimRecipientShare();
37
+ *
38
+ * // Check claimable amount
39
+ * const info = await client.getRecipientClaimable();
40
+ * if (info) console.log(`Claimable: ${formatUSDC(info.amount)} USDC`);
41
+ * ```
42
+ *
43
+ * @author Mailer Team
44
+ * @version 2.0.0 - Native Solana Program (no Anchor)
45
+ */
46
+ export declare class MailerClient {
47
+ private connection;
48
+ private wallet;
49
+ private programId;
50
+ private usdcMint;
51
+ private mailerStatePda;
52
+ private mailerBump;
53
+ constructor(connection: Connection, wallet: Wallet, programId: PublicKey, usdcMint: PublicKey);
54
+ /**
55
+ * Initialize the mailer program (owner only)
56
+ */
57
+ initialize(): Promise<string>;
58
+ /**
59
+ * Send a message with optional revenue sharing
60
+ * @param to Recipient's public key or address string who receives message and potential revenue share
61
+ * @param subject Message subject
62
+ * @param body Message body
63
+ * @param revenueShareToReceiver If true, recipient gets 90% revenue share; if false, no revenue share
64
+ * @param resolveSenderToName If true, resolve sender address to name via off-chain service
65
+ * @returns Transaction signature
66
+ */
67
+ send(to: string | PublicKey, subject: string, body: string, revenueShareToReceiver?: boolean, resolveSenderToName?: boolean): Promise<string>;
68
+ /**
69
+ * Claim recipient share of revenue
70
+ * @returns Transaction signature
71
+ */
72
+ claimRecipientShare(): Promise<string>;
73
+ /**
74
+ * Claim owner share of fees (owner only)
75
+ * @returns Transaction signature
76
+ */
77
+ claimOwnerShare(): Promise<string>;
78
+ /**
79
+ * Delegate message handling to another address
80
+ * @param delegate Address to delegate to, or null to clear delegation
81
+ * @returns Transaction signature
82
+ */
83
+ delegateTo(delegate?: Optional<string | PublicKey>): Promise<string>;
84
+ /**
85
+ * Reject a delegation made to you
86
+ * @param delegator Address that delegated to you
87
+ * @returns Transaction signature
88
+ */
89
+ rejectDelegation(delegator: string | PublicKey): Promise<string>;
90
+ /**
91
+ * Set the send fee (owner only)
92
+ * @param newFee New fee in USDC micro-units (6 decimals)
93
+ * @returns Transaction signature
94
+ */
95
+ setFee(newFee: number | bigint): Promise<string>;
96
+ /**
97
+ * Set the delegation fee (owner only)
98
+ * @param newFee New delegation fee in USDC micro-units (6 decimals)
99
+ * @returns Transaction signature
100
+ */
101
+ setDelegationFee(newFee: number | bigint): Promise<string>;
102
+ /**
103
+ * Get current fees from the mailer state
104
+ * @returns MailerFees object with current fees
105
+ */
106
+ getFees(): Promise<MailerFees>;
107
+ /**
108
+ * Get recipient claimable information
109
+ * @param recipient Optional recipient address, defaults to wallet address
110
+ * @returns ClaimableInfo or null if no claimable amount
111
+ */
112
+ getRecipientClaimable(recipient?: Optional<PublicKey>): Promise<Optional<ClaimableInfo>>;
113
+ /**
114
+ * Get owner claimable amount
115
+ * @returns Owner claimable amount in USDC micro-units
116
+ */
117
+ getOwnerClaimable(): Promise<number>;
118
+ /**
119
+ * Get delegation information for an address
120
+ * @param delegator Address to check delegation for, defaults to wallet address
121
+ * @returns Delegation info or null if no delegation
122
+ */
123
+ getDelegation(delegator?: Optional<PublicKey>): Promise<Optional<{
124
+ delegator: string;
125
+ delegate?: Optional<string>;
126
+ }>>;
127
+ /**
128
+ * Get the mailer state PDA address
129
+ * @returns PublicKey of the mailer state PDA
130
+ */
131
+ getMailerStatePda(): PublicKey;
132
+ /**
133
+ * Send a message to an email address (no wallet known)
134
+ * Charges only 10% owner fee since recipient wallet is unknown
135
+ * @param toEmail Email address of the recipient
136
+ * @param subject Message subject
137
+ * @param body Message body
138
+ * @param options Transaction confirm options
139
+ * @returns Transaction signature
140
+ */
141
+ sendToEmail(toEmail: string, subject: string, body: string, options?: ConfirmOptions): Promise<string>;
142
+ /**
143
+ * Send a prepared message to an email address (no wallet known)
144
+ * Charges only 10% owner fee since recipient wallet is unknown
145
+ * @param toEmail Email address of the recipient
146
+ * @param mailId Pre-prepared message ID
147
+ * @param options Transaction confirm options
148
+ * @returns Transaction signature
149
+ */
150
+ sendPreparedToEmail(toEmail: string, mailId: string, options?: ConfirmOptions): Promise<string>;
151
+ /**
152
+ * Send a prepared message using a mailId (to match EVM behavior)
153
+ * @param to Recipient's public key or address string
154
+ * @param mailId Pre-prepared message identifier
155
+ * @param revenueShareToReceiver If true, recipient gets 90% revenue share
156
+ * @param resolveSenderToName If true, resolve sender address to name
157
+ * @returns Transaction signature
158
+ */
159
+ sendPrepared(to: string | PublicKey, mailId: string, revenueShareToReceiver?: boolean, resolveSenderToName?: boolean): Promise<string>;
160
+ /**
161
+ * Pause the contract and distribute owner claimable funds (owner only)
162
+ * @param options Transaction confirm options
163
+ * @returns Transaction signature
164
+ */
165
+ pause(options?: ConfirmOptions): Promise<string>;
166
+ /**
167
+ * Unpause the contract (owner only)
168
+ * @param options Transaction confirm options
169
+ * @returns Transaction signature
170
+ */
171
+ unpause(options?: ConfirmOptions): Promise<string>;
172
+ /**
173
+ * Emergency unpause without fund distribution (owner only)
174
+ * @param options Transaction confirm options
175
+ * @returns Transaction signature
176
+ */
177
+ emergencyUnpause(options?: ConfirmOptions): Promise<string>;
178
+ /**
179
+ * Distribute claimable funds to a recipient when contract is paused
180
+ * @param recipient Recipient address to distribute funds for
181
+ * @param options Transaction confirm options
182
+ * @returns Transaction signature
183
+ */
184
+ distributeClaimableFunds(recipient: string | PublicKey, options?: ConfirmOptions): Promise<string>;
185
+ /**
186
+ * Get the current send fee
187
+ * @returns Send fee in USDC micro-units (6 decimals)
188
+ */
189
+ getSendFee(): Promise<bigint>;
190
+ /**
191
+ * Check if contract is currently paused
192
+ * @returns True if contract is paused, false otherwise
193
+ */
194
+ isPaused(): Promise<boolean>;
195
+ /**
196
+ * Send and confirm a transaction
197
+ * @param transaction Transaction to send
198
+ * @param options Confirm options
199
+ * @returns Transaction signature
200
+ */
201
+ private sendTransaction;
202
+ /**
203
+ * Create a simple wallet from a keypair for testing
204
+ * @param keypair Solana keypair
205
+ * @returns Wallet interface implementation
206
+ */
207
+ static createWallet(keypair: Keypair): Wallet;
208
+ }
209
+ //# sourceMappingURL=mailer-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mailer-client.d.ts","sourceRoot":"","sources":["../../../../src/solana/mailer-client.ts"],"names":[],"mappings":"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"}