@sudobility/contracts 1.11.1 → 1.12.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 (82) hide show
  1. package/artifacts/contracts/Mailer.sol/Mailer.d.ts +120 -2
  2. package/artifacts/contracts/Mailer.sol/Mailer.dbg.json +1 -1
  3. package/artifacts/contracts/Mailer.sol/Mailer.json +120 -2
  4. package/artifacts/contracts/MockUSDC.sol/MockUSDC.dbg.json +1 -1
  5. package/artifacts/contracts/interfaces/IERC20.sol/IERC20.dbg.json +1 -1
  6. package/dist/evm/src/evm/index.d.ts +1 -1
  7. package/dist/evm/src/evm/index.d.ts.map +1 -1
  8. package/dist/evm/src/evm/index.js +1 -1
  9. package/dist/evm/src/evm/index.js.map +1 -1
  10. package/dist/evm/src/evm/mailer-client.d.ts +936 -180
  11. package/dist/evm/src/evm/mailer-client.d.ts.map +1 -1
  12. package/dist/evm/src/evm/mailer-client.js +451 -249
  13. package/dist/evm/src/evm/mailer-client.js.map +1 -1
  14. package/dist/evm/typechain-types/Mailer.d.ts +81 -11
  15. package/dist/evm/typechain-types/Mailer.d.ts.map +1 -1
  16. package/dist/evm/typechain-types/factories/Mailer__factory.d.ts +93 -1
  17. package/dist/evm/typechain-types/factories/Mailer__factory.d.ts.map +1 -1
  18. package/dist/evm/typechain-types/factories/Mailer__factory.js +119 -1
  19. package/dist/evm/typechain-types/factories/Mailer__factory.js.map +1 -1
  20. package/dist/solana/solana/index.d.ts +1 -1
  21. package/dist/solana/solana/index.d.ts.map +1 -1
  22. package/dist/solana/solana/index.js +3 -1
  23. package/dist/solana/solana/index.js.map +1 -1
  24. package/dist/solana/solana/mailer-client.d.ts +86 -20
  25. package/dist/solana/solana/mailer-client.d.ts.map +1 -1
  26. package/dist/solana/solana/mailer-client.js +290 -58
  27. package/dist/solana/solana/mailer-client.js.map +1 -1
  28. package/dist/unified/src/evm/index.d.ts +1 -1
  29. package/dist/unified/src/evm/index.d.ts.map +1 -1
  30. package/dist/unified/src/evm/index.js +1 -1
  31. package/dist/unified/src/evm/index.js.map +1 -1
  32. package/dist/unified/src/evm/mailer-client.d.ts +936 -180
  33. package/dist/unified/src/evm/mailer-client.d.ts.map +1 -1
  34. package/dist/unified/src/evm/mailer-client.js +451 -249
  35. package/dist/unified/src/evm/mailer-client.js.map +1 -1
  36. package/dist/unified/src/solana/index.d.ts +1 -1
  37. package/dist/unified/src/solana/index.d.ts.map +1 -1
  38. package/dist/unified/src/solana/index.js +3 -1
  39. package/dist/unified/src/solana/index.js.map +1 -1
  40. package/dist/unified/src/solana/mailer-client.d.ts +86 -20
  41. package/dist/unified/src/solana/mailer-client.d.ts.map +1 -1
  42. package/dist/unified/src/solana/mailer-client.js +290 -58
  43. package/dist/unified/src/solana/mailer-client.js.map +1 -1
  44. package/dist/unified/src/unified/onchain-mailer-client.d.ts +25 -0
  45. package/dist/unified/src/unified/onchain-mailer-client.d.ts.map +1 -1
  46. package/dist/unified/src/unified/onchain-mailer-client.js +147 -4
  47. package/dist/unified/src/unified/onchain-mailer-client.js.map +1 -1
  48. package/dist/unified/typechain-types/Mailer.d.ts +81 -11
  49. package/dist/unified/typechain-types/Mailer.d.ts.map +1 -1
  50. package/dist/unified/typechain-types/factories/Mailer__factory.d.ts +93 -1
  51. package/dist/unified/typechain-types/factories/Mailer__factory.d.ts.map +1 -1
  52. package/dist/unified/typechain-types/factories/Mailer__factory.js +119 -1
  53. package/dist/unified/typechain-types/factories/Mailer__factory.js.map +1 -1
  54. package/dist/unified-esm/src/evm/index.d.ts +1 -1
  55. package/dist/unified-esm/src/evm/index.d.ts.map +1 -1
  56. package/dist/unified-esm/src/evm/index.js +1 -1
  57. package/dist/unified-esm/src/evm/index.js.map +1 -1
  58. package/dist/unified-esm/src/evm/mailer-client.d.ts +936 -180
  59. package/dist/unified-esm/src/evm/mailer-client.d.ts.map +1 -1
  60. package/dist/unified-esm/src/evm/mailer-client.js +453 -251
  61. package/dist/unified-esm/src/evm/mailer-client.js.map +1 -1
  62. package/dist/unified-esm/src/solana/index.d.ts +1 -1
  63. package/dist/unified-esm/src/solana/index.d.ts.map +1 -1
  64. package/dist/unified-esm/src/solana/index.js +1 -1
  65. package/dist/unified-esm/src/solana/index.js.map +1 -1
  66. package/dist/unified-esm/src/solana/mailer-client.d.ts +86 -20
  67. package/dist/unified-esm/src/solana/mailer-client.d.ts.map +1 -1
  68. package/dist/unified-esm/src/solana/mailer-client.js +291 -59
  69. package/dist/unified-esm/src/solana/mailer-client.js.map +1 -1
  70. package/dist/unified-esm/src/unified/onchain-mailer-client.d.ts +25 -0
  71. package/dist/unified-esm/src/unified/onchain-mailer-client.d.ts.map +1 -1
  72. package/dist/unified-esm/src/unified/onchain-mailer-client.js +147 -4
  73. package/dist/unified-esm/src/unified/onchain-mailer-client.js.map +1 -1
  74. package/dist/unified-esm/typechain-types/Mailer.d.ts +81 -11
  75. package/dist/unified-esm/typechain-types/Mailer.d.ts.map +1 -1
  76. package/dist/unified-esm/typechain-types/factories/Mailer__factory.d.ts +93 -1
  77. package/dist/unified-esm/typechain-types/factories/Mailer__factory.d.ts.map +1 -1
  78. package/dist/unified-esm/typechain-types/factories/Mailer__factory.js +119 -1
  79. package/dist/unified-esm/typechain-types/factories/Mailer__factory.js.map +1 -1
  80. package/package.json +1 -1
  81. package/typechain-types/Mailer.ts +137 -9
  82. package/typechain-types/factories/Mailer__factory.ts +119 -1
@@ -9,6 +9,57 @@ export interface Wallet {
9
9
  signTransaction<T extends Transaction>(transaction: T): Promise<T>;
10
10
  signAllTransactions<T extends Transaction>(transactions: T[]): Promise<T[]>;
11
11
  }
12
+ /**
13
+ * Compute unit optimization options for Solana transactions
14
+ */
15
+ export interface ComputeUnitOptions {
16
+ /**
17
+ * Compute unit limit for the transaction (default: 200,000)
18
+ * Max: 1,400,000
19
+ */
20
+ computeUnitLimit?: number;
21
+ /**
22
+ * Priority fee in micro-lamports per compute unit
23
+ * Higher values = faster inclusion during congestion
24
+ */
25
+ computeUnitPrice?: number;
26
+ /**
27
+ * Automatically simulate and optimize compute units
28
+ * @default false
29
+ */
30
+ autoOptimize?: boolean;
31
+ /**
32
+ * Multiplier for compute unit buffer when auto-optimizing
33
+ * @default 1.2 (20% buffer)
34
+ */
35
+ computeUnitMultiplier?: number;
36
+ /**
37
+ * Skip compute unit settings entirely
38
+ * @default false
39
+ */
40
+ skipComputeUnits?: boolean;
41
+ }
42
+ /**
43
+ * Transaction result with compute unit details
44
+ */
45
+ export interface TransactionResult {
46
+ /**
47
+ * Transaction signature
48
+ */
49
+ signature: string;
50
+ /**
51
+ * Simulated compute units (if auto-optimized)
52
+ */
53
+ simulatedUnits?: number;
54
+ /**
55
+ * Actual compute unit limit set
56
+ */
57
+ computeUnitLimit?: number;
58
+ /**
59
+ * Priority fee per compute unit (if set)
60
+ */
61
+ computeUnitPrice?: number;
62
+ }
12
63
  /**
13
64
  * @class MailerClient
14
65
  * @description Native Solana program client for the Mailer program
@@ -50,11 +101,20 @@ export declare class MailerClient {
50
101
  private usdcMint;
51
102
  private mailerStatePda;
52
103
  private mailerBump;
104
+ private defaultComputeUnitMultiplier;
53
105
  constructor(connection: Connection, wallet: Wallet, programId: PublicKey, usdcMint: PublicKey);
106
+ /**
107
+ * Optimize compute units for a transaction
108
+ * @param transaction Transaction to optimize
109
+ * @param options Compute unit options
110
+ * @returns Optimized transaction with compute budget instructions
111
+ */
112
+ private optimizeComputeUnits;
54
113
  /**
55
114
  * Initialize the mailer program (owner only)
115
+ * @param computeOptions Compute unit optimization options
56
116
  */
57
- initialize(): Promise<string>;
117
+ initialize(computeOptions?: ComputeUnitOptions): Promise<TransactionResult>;
58
118
  /**
59
119
  * Send a message with optional revenue sharing
60
120
  * @param to Recipient's public key or address string who receives message and potential revenue share
@@ -62,50 +122,55 @@ export declare class MailerClient {
62
122
  * @param body Message body
63
123
  * @param revenueShareToReceiver If true, recipient gets 90% revenue share; if false, no revenue share
64
124
  * @param resolveSenderToName If true, resolve sender address to name via off-chain service
65
- * @returns Transaction signature
125
+ * @param computeOptions Compute unit optimization options
126
+ * @returns Transaction result with signature and compute details
66
127
  */
67
- send(to: string | PublicKey, subject: string, body: string, revenueShareToReceiver?: boolean, resolveSenderToName?: boolean): Promise<string>;
128
+ send(to: string | PublicKey, subject: string, body: string, revenueShareToReceiver?: boolean, resolveSenderToName?: boolean, computeOptions?: ComputeUnitOptions): Promise<TransactionResult>;
68
129
  /**
69
130
  * Claim recipient share of revenue
70
- * @returns Transaction signature
131
+ * @returns Transaction result
71
132
  */
72
- claimRecipientShare(): Promise<string>;
133
+ claimRecipientShare(computeOptions?: ComputeUnitOptions): Promise<TransactionResult>;
73
134
  /**
74
135
  * Claim owner share of fees (owner only)
75
- * @returns Transaction signature
136
+ * @returns Transaction result
76
137
  */
77
- claimOwnerShare(): Promise<string>;
138
+ claimOwnerShare(computeOptions?: ComputeUnitOptions): Promise<TransactionResult>;
78
139
  /**
79
140
  * Claim expired recipient shares and move them under owner control
80
141
  * @param recipient Recipient whose expired shares to reclaim
81
142
  * @param options Transaction confirm options
82
143
  * @returns Transaction signature
83
144
  */
84
- claimExpiredShares(recipient: string | PublicKey, options?: ConfirmOptions): Promise<string>;
145
+ claimExpiredShares(recipient: string | PublicKey, options?: ConfirmOptions, computeOptions?: ComputeUnitOptions): Promise<TransactionResult>;
85
146
  /**
86
147
  * Delegate message handling to another address
87
148
  * @param delegate Address to delegate to, or null to clear delegation
88
149
  * @returns Transaction signature
89
150
  */
90
- delegateTo(delegate?: Optional<string | PublicKey>): Promise<string>;
151
+ delegateTo(delegate?: Optional<string | PublicKey>, computeOptions?: ComputeUnitOptions): Promise<TransactionResult>;
91
152
  /**
92
153
  * Reject a delegation made to you
93
154
  * @param delegator Address that delegated to you
94
155
  * @returns Transaction signature
95
156
  */
96
- rejectDelegation(delegator: string | PublicKey): Promise<string>;
157
+ rejectDelegation(delegator: string | PublicKey, computeOptions?: ComputeUnitOptions): Promise<TransactionResult>;
97
158
  /**
98
159
  * Set the send fee (owner only)
99
160
  * @param newFee New fee in USDC micro-units (6 decimals)
100
- * @returns Transaction signature
161
+ * @param computeOptions Compute unit optimization options
162
+ * @returns Transaction result
101
163
  */
102
- setFee(newFee: number | bigint): Promise<string>;
164
+ setFee(newFee: number | bigint, computeOptions?: ComputeUnitOptions): Promise<TransactionResult>;
103
165
  /**
104
166
  * Set the delegation fee (owner only)
105
167
  * @param newFee New delegation fee in USDC micro-units (6 decimals)
106
168
  * @returns Transaction signature
107
169
  */
108
- setDelegationFee(newFee: number | bigint): Promise<string>;
170
+ setDelegationFee(newFee: number | bigint, computeOptions?: ComputeUnitOptions): Promise<TransactionResult>;
171
+ setCustomFeePercentage(account: string | PublicKey, percentage: number, payer?: Optional<string | PublicKey>, computeOptions?: ComputeUnitOptions): Promise<TransactionResult>;
172
+ clearCustomFeePercentage(account: string | PublicKey, computeOptions?: ComputeUnitOptions): Promise<TransactionResult>;
173
+ getCustomFeePercentage(account: string | PublicKey): Promise<number>;
109
174
  /**
110
175
  * Get current fees from the mailer state
111
176
  * @returns MailerFees object with current fees
@@ -145,7 +210,7 @@ export declare class MailerClient {
145
210
  * @param options Transaction confirm options
146
211
  * @returns Transaction signature
147
212
  */
148
- sendToEmail(toEmail: string, subject: string, body: string, options?: ConfirmOptions): Promise<string>;
213
+ sendToEmail(toEmail: string, subject: string, body: string, options?: ConfirmOptions, computeOptions?: ComputeUnitOptions): Promise<TransactionResult>;
149
214
  /**
150
215
  * Send a prepared message to an email address (no wallet known)
151
216
  * Charges only 10% owner fee since recipient wallet is unknown
@@ -154,7 +219,7 @@ export declare class MailerClient {
154
219
  * @param options Transaction confirm options
155
220
  * @returns Transaction signature
156
221
  */
157
- sendPreparedToEmail(toEmail: string, mailId: string, options?: ConfirmOptions): Promise<string>;
222
+ sendPreparedToEmail(toEmail: string, mailId: string, options?: ConfirmOptions, computeOptions?: ComputeUnitOptions): Promise<TransactionResult>;
158
223
  /**
159
224
  * Send a prepared message using a mailId (to match EVM behavior)
160
225
  * @param to Recipient's public key or address string
@@ -163,32 +228,33 @@ export declare class MailerClient {
163
228
  * @param resolveSenderToName If true, resolve sender address to name
164
229
  * @returns Transaction signature
165
230
  */
166
- sendPrepared(to: string | PublicKey, mailId: string, revenueShareToReceiver?: boolean, resolveSenderToName?: boolean): Promise<string>;
231
+ sendPrepared(to: string | PublicKey, mailId: string, revenueShareToReceiver?: boolean, resolveSenderToName?: boolean, computeOptions?: ComputeUnitOptions): Promise<TransactionResult>;
232
+ sendThroughWebhook(to: string | PublicKey, webhookId: string, revenueShareToReceiver?: boolean, resolveSenderToName?: boolean, computeOptions?: ComputeUnitOptions): Promise<TransactionResult>;
167
233
  /**
168
234
  * Pause the contract and distribute owner claimable funds (owner only)
169
235
  * @param options Transaction confirm options
170
236
  * @returns Transaction signature
171
237
  */
172
- pause(options?: ConfirmOptions): Promise<string>;
238
+ pause(options?: ConfirmOptions, computeOptions?: ComputeUnitOptions): Promise<TransactionResult>;
173
239
  /**
174
240
  * Unpause the contract (owner only)
175
241
  * @param options Transaction confirm options
176
242
  * @returns Transaction signature
177
243
  */
178
- unpause(options?: ConfirmOptions): Promise<string>;
244
+ unpause(options?: ConfirmOptions, computeOptions?: ComputeUnitOptions): Promise<TransactionResult>;
179
245
  /**
180
246
  * Emergency unpause without fund distribution (owner only)
181
247
  * @param options Transaction confirm options
182
248
  * @returns Transaction signature
183
249
  */
184
- emergencyUnpause(options?: ConfirmOptions): Promise<string>;
250
+ emergencyUnpause(options?: ConfirmOptions, computeOptions?: ComputeUnitOptions): Promise<TransactionResult>;
185
251
  /**
186
252
  * Distribute claimable funds to a recipient when contract is paused
187
253
  * @param recipient Recipient address to distribute funds for
188
254
  * @param options Transaction confirm options
189
255
  * @returns Transaction signature
190
256
  */
191
- distributeClaimableFunds(recipient: string | PublicKey, options?: ConfirmOptions): Promise<string>;
257
+ distributeClaimableFunds(recipient: string | PublicKey, options?: ConfirmOptions, computeOptions?: ComputeUnitOptions): Promise<TransactionResult>;
192
258
  /**
193
259
  * Get the current send fee
194
260
  * @returns Send fee in USDC micro-units (6 decimals)
@@ -1 +1 @@
1
- {"version":3,"file":"mailer-client.d.ts","sourceRoot":"","sources":["../../../src/solana/mailer-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mailer-client.d.ts","sourceRoot":"","sources":["../../../src/solana/mailer-client.ts"],"names":[],"mappings":"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"}