@sudobility/contracts 1.11.1 → 1.11.2
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/artifacts/contracts/Mailer.sol/Mailer.d.ts +120 -2
- package/artifacts/contracts/Mailer.sol/Mailer.dbg.json +1 -1
- package/artifacts/contracts/Mailer.sol/Mailer.json +120 -2
- package/artifacts/contracts/MockUSDC.sol/MockUSDC.dbg.json +1 -1
- package/artifacts/contracts/interfaces/IERC20.sol/IERC20.dbg.json +1 -1
- package/dist/evm/src/evm/mailer-client.d.ts +890 -190
- package/dist/evm/src/evm/mailer-client.d.ts.map +1 -1
- package/dist/evm/src/evm/mailer-client.js +169 -237
- package/dist/evm/src/evm/mailer-client.js.map +1 -1
- package/dist/evm/typechain-types/Mailer.d.ts +81 -11
- package/dist/evm/typechain-types/Mailer.d.ts.map +1 -1
- package/dist/evm/typechain-types/factories/Mailer__factory.d.ts +93 -1
- package/dist/evm/typechain-types/factories/Mailer__factory.d.ts.map +1 -1
- package/dist/evm/typechain-types/factories/Mailer__factory.js +119 -1
- package/dist/evm/typechain-types/factories/Mailer__factory.js.map +1 -1
- package/dist/solana/solana/mailer-client.d.ts +4 -0
- package/dist/solana/solana/mailer-client.d.ts.map +1 -1
- package/dist/solana/solana/mailer-client.js +181 -18
- package/dist/solana/solana/mailer-client.js.map +1 -1
- package/dist/unified/src/evm/mailer-client.d.ts +890 -190
- package/dist/unified/src/evm/mailer-client.d.ts.map +1 -1
- package/dist/unified/src/evm/mailer-client.js +169 -237
- package/dist/unified/src/evm/mailer-client.js.map +1 -1
- package/dist/unified/src/solana/mailer-client.d.ts +4 -0
- package/dist/unified/src/solana/mailer-client.d.ts.map +1 -1
- package/dist/unified/src/solana/mailer-client.js +181 -18
- package/dist/unified/src/solana/mailer-client.js.map +1 -1
- package/dist/unified/src/unified/onchain-mailer-client.d.ts +25 -0
- package/dist/unified/src/unified/onchain-mailer-client.d.ts.map +1 -1
- package/dist/unified/src/unified/onchain-mailer-client.js +147 -4
- package/dist/unified/src/unified/onchain-mailer-client.js.map +1 -1
- package/dist/unified/typechain-types/Mailer.d.ts +81 -11
- package/dist/unified/typechain-types/Mailer.d.ts.map +1 -1
- package/dist/unified/typechain-types/factories/Mailer__factory.d.ts +93 -1
- package/dist/unified/typechain-types/factories/Mailer__factory.d.ts.map +1 -1
- package/dist/unified/typechain-types/factories/Mailer__factory.js +119 -1
- package/dist/unified/typechain-types/factories/Mailer__factory.js.map +1 -1
- package/dist/unified-esm/src/evm/mailer-client.d.ts +890 -190
- package/dist/unified-esm/src/evm/mailer-client.d.ts.map +1 -1
- package/dist/unified-esm/src/evm/mailer-client.js +171 -239
- package/dist/unified-esm/src/evm/mailer-client.js.map +1 -1
- package/dist/unified-esm/src/solana/mailer-client.d.ts +4 -0
- package/dist/unified-esm/src/solana/mailer-client.d.ts.map +1 -1
- package/dist/unified-esm/src/solana/mailer-client.js +181 -18
- package/dist/unified-esm/src/solana/mailer-client.js.map +1 -1
- package/dist/unified-esm/src/unified/onchain-mailer-client.d.ts +25 -0
- package/dist/unified-esm/src/unified/onchain-mailer-client.d.ts.map +1 -1
- package/dist/unified-esm/src/unified/onchain-mailer-client.js +147 -4
- package/dist/unified-esm/src/unified/onchain-mailer-client.js.map +1 -1
- package/dist/unified-esm/typechain-types/Mailer.d.ts +81 -11
- package/dist/unified-esm/typechain-types/Mailer.d.ts.map +1 -1
- package/dist/unified-esm/typechain-types/factories/Mailer__factory.d.ts +93 -1
- package/dist/unified-esm/typechain-types/factories/Mailer__factory.d.ts.map +1 -1
- package/dist/unified-esm/typechain-types/factories/Mailer__factory.js +119 -1
- package/dist/unified-esm/typechain-types/factories/Mailer__factory.js.map +1 -1
- package/package.json +1 -1
- package/typechain-types/Mailer.ts +137 -9
- package/typechain-types/factories/Mailer__factory.ts +119 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mailer-client.d.ts","sourceRoot":"","sources":["../../../../src/evm/mailer-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,YAAY,EAEb,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"mailer-client.d.ts","sourceRoot":"","sources":["../../../../src/evm/mailer-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,154 +3,155 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.MailerClient = void 0;
|
|
4
4
|
const viem_1 = require("viem");
|
|
5
5
|
const Mailer__factory_js_1 = require("../../typechain-types/factories/Mailer__factory.js");
|
|
6
|
-
// Get ABI from typechain-generated factories
|
|
7
6
|
const MAILER_ABI = Mailer__factory_js_1.Mailer__factory.abi;
|
|
8
|
-
// Get bytecode from typechain-generated factories
|
|
9
7
|
const MAILER_BYTECODE = Mailer__factory_js_1.Mailer__factory.bytecode;
|
|
10
8
|
/**
|
|
11
|
-
*
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
* -
|
|
18
|
-
*
|
|
19
|
-
* - **Revenue Claims**: 60-day claim period for priority message revenue shares
|
|
20
|
-
*
|
|
21
|
-
* ## Usage Examples:
|
|
22
|
-
* ```typescript
|
|
23
|
-
* // Connect to existing contract
|
|
24
|
-
* import { createPublicClient, createWalletClient, http } from 'viem';
|
|
25
|
-
* import { mainnet } from 'viem/chains';
|
|
26
|
-
*
|
|
27
|
-
* const publicClient = createPublicClient({
|
|
28
|
-
* chain: mainnet,
|
|
29
|
-
* transport: http()
|
|
30
|
-
* });
|
|
31
|
-
*
|
|
32
|
-
* const mailer = new MailerClient('CONTRACT_ADDRESS', publicClient);
|
|
33
|
-
*
|
|
34
|
-
* // Send message with revenue sharing to recipient
|
|
35
|
-
* const walletClient = createWalletClient({
|
|
36
|
-
* chain: mainnet,
|
|
37
|
-
* transport: http()
|
|
38
|
-
* });
|
|
39
|
-
*
|
|
40
|
-
* await mailer.send('0x...', 'Subject', 'Body', true, walletClient, account);
|
|
41
|
-
*
|
|
42
|
-
* // Claim your revenue share (as recipient)
|
|
43
|
-
* await mailer.claimRecipientShare(walletClient, account);
|
|
44
|
-
* ```
|
|
9
|
+
* Normalize any Address-like input (string with checksum or lowercase) to checksum format.
|
|
10
|
+
*/
|
|
11
|
+
function normalizeAddress(value) {
|
|
12
|
+
return (0, viem_1.getAddress)(value);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* High-level client for interacting with the EVM Mailer contract.
|
|
16
|
+
* Exposes every callable contract function with type-safe wrappers.
|
|
45
17
|
*/
|
|
46
18
|
class MailerClient {
|
|
47
|
-
/**
|
|
48
|
-
* @description Creates a new MailerClient instance
|
|
49
|
-
* @param contractAddress The deployed Mailer contract address
|
|
50
|
-
* @param publicClient Viem public client for reading blockchain state
|
|
51
|
-
*/
|
|
52
19
|
constructor(contractAddress, publicClient) {
|
|
53
|
-
this.contractAddress = (
|
|
20
|
+
this.contractAddress = normalizeAddress(contractAddress);
|
|
54
21
|
this.publicClient = publicClient;
|
|
55
22
|
}
|
|
56
23
|
/**
|
|
57
|
-
*
|
|
58
|
-
* @param walletClient Viem wallet client with deployment permissions
|
|
59
|
-
* @param account Account to deploy from
|
|
60
|
-
* @param usdcTokenAddress Address of the USDC token contract
|
|
61
|
-
* @param ownerAddress Address that will own the deployed contract
|
|
62
|
-
* @returns Promise resolving to a MailerClient instance
|
|
24
|
+
* Deploy a fresh Mailer contract instance.
|
|
63
25
|
*/
|
|
64
26
|
static async deploy(walletClient, publicClient, account, usdcTokenAddress, ownerAddress) {
|
|
65
27
|
const hash = await walletClient.deployContract({
|
|
66
28
|
abi: MAILER_ABI,
|
|
67
29
|
bytecode: MAILER_BYTECODE,
|
|
68
|
-
args: [(
|
|
30
|
+
args: [normalizeAddress(usdcTokenAddress), normalizeAddress(ownerAddress)],
|
|
69
31
|
account,
|
|
70
32
|
chain: walletClient.chain,
|
|
71
33
|
});
|
|
72
34
|
const receipt = await publicClient.waitForTransactionReceipt({ hash });
|
|
73
35
|
if (!receipt.contractAddress) {
|
|
74
|
-
throw new Error(
|
|
36
|
+
throw new Error('Contract deployment failed');
|
|
75
37
|
}
|
|
76
38
|
return new MailerClient(receipt.contractAddress, publicClient);
|
|
77
39
|
}
|
|
40
|
+
getAddress() {
|
|
41
|
+
return this.contractAddress;
|
|
42
|
+
}
|
|
78
43
|
/**
|
|
79
|
-
*
|
|
80
|
-
* @notice Two modes:
|
|
81
|
-
* - revenueShareToReceiver=true: Sender pays 0.1 USDC, recipient gets 90% claimable
|
|
82
|
-
* - revenueShareToReceiver=false: Sender pays 0.01 USDC only
|
|
83
|
-
* @param to Recipient address who receives the message and potential revenue share
|
|
84
|
-
* @param subject Message subject line
|
|
85
|
-
* @param body Message content
|
|
86
|
-
* @param revenueShareToReceiver If true, recipient gets 90% revenue share; if false, no revenue share
|
|
87
|
-
* @param resolveSenderToName If true, resolve sender address to name via off-chain service
|
|
88
|
-
* @param walletClient Viem wallet client for transaction
|
|
89
|
-
* @param account Account to send from
|
|
90
|
-
* @returns Promise resolving to transaction hash
|
|
91
|
-
* @example
|
|
92
|
-
* ```typescript
|
|
93
|
-
* // Send with revenue share to recipient
|
|
94
|
-
* const hash = await mailer.send('0x...', 'Subject', 'Priority message', true, false, walletClient, account);
|
|
95
|
-
* // Send standard message (no revenue share)
|
|
96
|
-
* const hash2 = await mailer.send('0x...', 'Subject', 'Standard message', false, false, walletClient, account);
|
|
97
|
-
* await publicClient.waitForTransactionReceipt({ hash });
|
|
98
|
-
* ```
|
|
44
|
+
* Core message send with explicit payer control.
|
|
99
45
|
*/
|
|
100
|
-
async send(to, subject, body, revenueShareToReceiver, resolveSenderToName
|
|
101
|
-
return
|
|
46
|
+
async send(to, subject, body, payer, revenueShareToReceiver, resolveSenderToName, walletClient, account) {
|
|
47
|
+
return walletClient.writeContract({
|
|
102
48
|
address: this.contractAddress,
|
|
103
49
|
abi: MAILER_ABI,
|
|
104
50
|
functionName: 'send',
|
|
105
|
-
args: [
|
|
51
|
+
args: [
|
|
52
|
+
normalizeAddress(to),
|
|
53
|
+
subject,
|
|
54
|
+
body,
|
|
55
|
+
normalizeAddress(payer),
|
|
56
|
+
revenueShareToReceiver,
|
|
57
|
+
resolveSenderToName,
|
|
58
|
+
],
|
|
106
59
|
account,
|
|
107
60
|
chain: walletClient.chain,
|
|
108
61
|
});
|
|
109
62
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
* @notice Two modes:
|
|
113
|
-
* - revenueShareToReceiver=true: Sender pays 0.1 USDC, recipient gets 90% claimable
|
|
114
|
-
* - revenueShareToReceiver=false: Sender pays 0.01 USDC only
|
|
115
|
-
* @param to Recipient address who receives the message and potential revenue share
|
|
116
|
-
* @param mailId Pre-prepared message identifier
|
|
117
|
-
* @param revenueShareToReceiver If true, recipient gets 90% revenue share; if false, no revenue share
|
|
118
|
-
* @param resolveSenderToName If true, resolve sender address to name via off-chain service
|
|
119
|
-
* @param walletClient Viem wallet client for transaction
|
|
120
|
-
* @param account Account to send from
|
|
121
|
-
* @returns Promise resolving to transaction hash
|
|
122
|
-
*/
|
|
123
|
-
async sendPrepared(to, mailId, revenueShareToReceiver, resolveSenderToName = false, walletClient, account) {
|
|
124
|
-
return await walletClient.writeContract({
|
|
63
|
+
async sendPrepared(to, mailId, payer, revenueShareToReceiver, resolveSenderToName, walletClient, account) {
|
|
64
|
+
return walletClient.writeContract({
|
|
125
65
|
address: this.contractAddress,
|
|
126
66
|
abi: MAILER_ABI,
|
|
127
67
|
functionName: 'sendPrepared',
|
|
128
|
-
args: [
|
|
68
|
+
args: [
|
|
69
|
+
normalizeAddress(to),
|
|
70
|
+
mailId,
|
|
71
|
+
normalizeAddress(payer),
|
|
72
|
+
revenueShareToReceiver,
|
|
73
|
+
resolveSenderToName,
|
|
74
|
+
],
|
|
75
|
+
account,
|
|
76
|
+
chain: walletClient.chain,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
async sendThroughWebhook(to, webhookId, payer, revenueShareToReceiver, resolveSenderToName, walletClient, account) {
|
|
80
|
+
return walletClient.writeContract({
|
|
81
|
+
address: this.contractAddress,
|
|
82
|
+
abi: MAILER_ABI,
|
|
83
|
+
functionName: 'sendThroughWebhook',
|
|
84
|
+
args: [
|
|
85
|
+
normalizeAddress(to),
|
|
86
|
+
webhookId,
|
|
87
|
+
normalizeAddress(payer),
|
|
88
|
+
revenueShareToReceiver,
|
|
89
|
+
resolveSenderToName,
|
|
90
|
+
],
|
|
91
|
+
account,
|
|
92
|
+
chain: walletClient.chain,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
async sendToEmailAddress(toEmail, subject, body, payer, walletClient, account) {
|
|
96
|
+
return walletClient.writeContract({
|
|
97
|
+
address: this.contractAddress,
|
|
98
|
+
abi: MAILER_ABI,
|
|
99
|
+
functionName: 'sendToEmailAddress',
|
|
100
|
+
args: [toEmail, subject, body, normalizeAddress(payer)],
|
|
101
|
+
account,
|
|
102
|
+
chain: walletClient.chain,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
async sendPreparedToEmailAddress(toEmail, mailId, payer, walletClient, account) {
|
|
106
|
+
return walletClient.writeContract({
|
|
107
|
+
address: this.contractAddress,
|
|
108
|
+
abi: MAILER_ABI,
|
|
109
|
+
functionName: 'sendPreparedToEmailAddress',
|
|
110
|
+
args: [toEmail, mailId, normalizeAddress(payer)],
|
|
129
111
|
account,
|
|
130
112
|
chain: walletClient.chain,
|
|
131
113
|
});
|
|
132
114
|
}
|
|
115
|
+
async getFee() {
|
|
116
|
+
return (await this.publicClient.readContract({
|
|
117
|
+
address: this.contractAddress,
|
|
118
|
+
abi: MAILER_ABI,
|
|
119
|
+
functionName: 'getFee',
|
|
120
|
+
}));
|
|
121
|
+
}
|
|
133
122
|
async getSendFee() {
|
|
134
|
-
return await this.publicClient.readContract({
|
|
123
|
+
return (await this.publicClient.readContract({
|
|
135
124
|
address: this.contractAddress,
|
|
136
125
|
abi: MAILER_ABI,
|
|
137
126
|
functionName: 'sendFee',
|
|
138
|
-
|
|
127
|
+
}));
|
|
128
|
+
}
|
|
129
|
+
async setFee(newFee, walletClient, account) {
|
|
130
|
+
return walletClient.writeContract({
|
|
131
|
+
address: this.contractAddress,
|
|
132
|
+
abi: MAILER_ABI,
|
|
133
|
+
functionName: 'setFee',
|
|
134
|
+
args: [newFee],
|
|
135
|
+
account,
|
|
136
|
+
chain: walletClient.chain,
|
|
139
137
|
});
|
|
140
138
|
}
|
|
141
139
|
async getUsdcToken() {
|
|
142
|
-
return await this.publicClient.readContract({
|
|
140
|
+
return (await this.publicClient.readContract({
|
|
143
141
|
address: this.contractAddress,
|
|
144
142
|
abi: MAILER_ABI,
|
|
145
143
|
functionName: 'usdcToken',
|
|
146
|
-
|
|
147
|
-
});
|
|
144
|
+
}));
|
|
148
145
|
}
|
|
149
|
-
|
|
150
|
-
return this.
|
|
146
|
+
async getOwner() {
|
|
147
|
+
return (await this.publicClient.readContract({
|
|
148
|
+
address: this.contractAddress,
|
|
149
|
+
abi: MAILER_ABI,
|
|
150
|
+
functionName: 'owner',
|
|
151
|
+
}));
|
|
151
152
|
}
|
|
152
153
|
async claimRecipientShare(walletClient, account) {
|
|
153
|
-
return
|
|
154
|
+
return walletClient.writeContract({
|
|
154
155
|
address: this.contractAddress,
|
|
155
156
|
abi: MAILER_ABI,
|
|
156
157
|
functionName: 'claimRecipientShare',
|
|
@@ -159,7 +160,7 @@ class MailerClient {
|
|
|
159
160
|
});
|
|
160
161
|
}
|
|
161
162
|
async claimOwnerShare(walletClient, account) {
|
|
162
|
-
return
|
|
163
|
+
return walletClient.writeContract({
|
|
163
164
|
address: this.contractAddress,
|
|
164
165
|
abi: MAILER_ABI,
|
|
165
166
|
functionName: 'claimOwnerShare',
|
|
@@ -168,93 +169,60 @@ class MailerClient {
|
|
|
168
169
|
});
|
|
169
170
|
}
|
|
170
171
|
async claimExpiredShares(recipient, walletClient, account) {
|
|
171
|
-
return
|
|
172
|
+
return walletClient.writeContract({
|
|
172
173
|
address: this.contractAddress,
|
|
173
174
|
abi: MAILER_ABI,
|
|
174
175
|
functionName: 'claimExpiredShares',
|
|
175
|
-
args: [(
|
|
176
|
+
args: [normalizeAddress(recipient)],
|
|
176
177
|
account,
|
|
177
178
|
chain: walletClient.chain,
|
|
178
179
|
});
|
|
179
180
|
}
|
|
180
181
|
async getRecipientClaimable(recipient) {
|
|
181
|
-
const
|
|
182
|
+
const [amount, expiresAt, isExpired] = (await this.publicClient.readContract({
|
|
182
183
|
address: this.contractAddress,
|
|
183
184
|
abi: MAILER_ABI,
|
|
184
185
|
functionName: 'getRecipientClaimable',
|
|
185
|
-
args: [(
|
|
186
|
-
|
|
187
|
-
}
|
|
188
|
-
return {
|
|
189
|
-
amount: result[0],
|
|
190
|
-
expiresAt: result[1],
|
|
191
|
-
isExpired: result[2]
|
|
192
|
-
};
|
|
186
|
+
args: [normalizeAddress(recipient)],
|
|
187
|
+
}));
|
|
188
|
+
return { amount, expiresAt, isExpired };
|
|
193
189
|
}
|
|
194
190
|
async getOwnerClaimable() {
|
|
195
|
-
return await this.publicClient.readContract({
|
|
191
|
+
return (await this.publicClient.readContract({
|
|
196
192
|
address: this.contractAddress,
|
|
197
193
|
abi: MAILER_ABI,
|
|
198
|
-
functionName: 'getOwnerClaimable'
|
|
199
|
-
|
|
200
|
-
});
|
|
194
|
+
functionName: 'getOwnerClaimable',
|
|
195
|
+
}));
|
|
201
196
|
}
|
|
202
|
-
// Delegation functionality
|
|
203
|
-
/**
|
|
204
|
-
* Delegate mail handling to another address
|
|
205
|
-
* @param delegate Address to delegate to (or 0x0 to clear delegation)
|
|
206
|
-
* @param walletClient Connected wallet client
|
|
207
|
-
* @param account Account to send transaction from
|
|
208
|
-
* @returns Transaction hash
|
|
209
|
-
*/
|
|
210
197
|
async delegateTo(delegate, walletClient, account) {
|
|
211
|
-
return
|
|
198
|
+
return walletClient.writeContract({
|
|
212
199
|
address: this.contractAddress,
|
|
213
200
|
abi: MAILER_ABI,
|
|
214
201
|
functionName: 'delegateTo',
|
|
215
|
-
args: [(
|
|
202
|
+
args: [normalizeAddress(delegate)],
|
|
216
203
|
account,
|
|
217
204
|
chain: walletClient.chain,
|
|
218
205
|
});
|
|
219
206
|
}
|
|
220
|
-
/**
|
|
221
|
-
* Reject a delegation made to you by another address
|
|
222
|
-
* @param delegatingAddress Address that delegated to you
|
|
223
|
-
* @param walletClient Connected wallet client
|
|
224
|
-
* @param account Account to send transaction from
|
|
225
|
-
* @returns Transaction hash
|
|
226
|
-
*/
|
|
227
207
|
async rejectDelegation(delegatingAddress, walletClient, account) {
|
|
228
|
-
return
|
|
208
|
+
return walletClient.writeContract({
|
|
229
209
|
address: this.contractAddress,
|
|
230
210
|
abi: MAILER_ABI,
|
|
231
211
|
functionName: 'rejectDelegation',
|
|
232
|
-
args: [(
|
|
212
|
+
args: [normalizeAddress(delegatingAddress)],
|
|
233
213
|
account,
|
|
234
214
|
chain: walletClient.chain,
|
|
235
215
|
});
|
|
236
216
|
}
|
|
237
|
-
/**
|
|
238
|
-
* Get current delegation fee in USDC (6 decimals)
|
|
239
|
-
* @returns Delegation fee amount
|
|
240
|
-
*/
|
|
241
217
|
async getDelegationFee() {
|
|
242
|
-
return await this.publicClient.readContract({
|
|
218
|
+
return (await this.publicClient.readContract({
|
|
243
219
|
address: this.contractAddress,
|
|
244
220
|
abi: MAILER_ABI,
|
|
245
221
|
functionName: 'getDelegationFee',
|
|
246
|
-
|
|
247
|
-
});
|
|
222
|
+
}));
|
|
248
223
|
}
|
|
249
|
-
/**
|
|
250
|
-
* Update delegation fee (owner only)
|
|
251
|
-
* @param newFee New fee amount in USDC (6 decimals)
|
|
252
|
-
* @param walletClient Connected wallet client
|
|
253
|
-
* @param account Account to send transaction from
|
|
254
|
-
* @returns Transaction hash
|
|
255
|
-
*/
|
|
256
224
|
async setDelegationFee(newFee, walletClient, account) {
|
|
257
|
-
return
|
|
225
|
+
return walletClient.writeContract({
|
|
258
226
|
address: this.contractAddress,
|
|
259
227
|
abi: MAILER_ABI,
|
|
260
228
|
functionName: 'setDelegationFee',
|
|
@@ -263,88 +231,75 @@ class MailerClient {
|
|
|
263
231
|
chain: walletClient.chain,
|
|
264
232
|
});
|
|
265
233
|
}
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
* @notice Charges only 10% owner fee since recipient wallet is unknown
|
|
269
|
-
* @param toEmail Email address of the recipient
|
|
270
|
-
* @param subject Message subject line
|
|
271
|
-
* @param body Message content
|
|
272
|
-
* @param walletClient Viem wallet client for transaction
|
|
273
|
-
* @param account Account to send from
|
|
274
|
-
* @returns Promise resolving to transaction hash
|
|
275
|
-
* @example
|
|
276
|
-
* ```typescript
|
|
277
|
-
* // Send to email address
|
|
278
|
-
* const hash = await mailer.sendToEmailAddress('user@example.com', 'Subject', 'Body', walletClient, account);
|
|
279
|
-
* await publicClient.waitForTransactionReceipt({ hash });
|
|
280
|
-
* ```
|
|
281
|
-
*/
|
|
282
|
-
async sendToEmailAddress(toEmail, subject, body, walletClient, account) {
|
|
283
|
-
return await walletClient.writeContract({
|
|
234
|
+
async setCustomFeePercentage(target, percentage, walletClient, account) {
|
|
235
|
+
return walletClient.writeContract({
|
|
284
236
|
address: this.contractAddress,
|
|
285
237
|
abi: MAILER_ABI,
|
|
286
|
-
functionName: '
|
|
287
|
-
args: [
|
|
238
|
+
functionName: 'setCustomFeePercentage',
|
|
239
|
+
args: [normalizeAddress(target), BigInt(percentage)],
|
|
288
240
|
account,
|
|
289
241
|
chain: walletClient.chain,
|
|
290
242
|
});
|
|
291
243
|
}
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
* @notice Charges only 10% owner fee since recipient wallet is unknown
|
|
295
|
-
* @param toEmail Email address of the recipient
|
|
296
|
-
* @param mailId Pre-prepared message identifier
|
|
297
|
-
* @param walletClient Viem wallet client for transaction
|
|
298
|
-
* @param account Account to send from
|
|
299
|
-
* @returns Promise resolving to transaction hash
|
|
300
|
-
*/
|
|
301
|
-
async sendPreparedToEmailAddress(toEmail, mailId, walletClient, account) {
|
|
302
|
-
return await walletClient.writeContract({
|
|
244
|
+
async clearCustomFeePercentage(target, walletClient, account) {
|
|
245
|
+
return walletClient.writeContract({
|
|
303
246
|
address: this.contractAddress,
|
|
304
247
|
abi: MAILER_ABI,
|
|
305
|
-
functionName: '
|
|
306
|
-
args: [
|
|
248
|
+
functionName: 'clearCustomFeePercentage',
|
|
249
|
+
args: [normalizeAddress(target)],
|
|
307
250
|
account,
|
|
308
251
|
chain: walletClient.chain,
|
|
309
252
|
});
|
|
310
253
|
}
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
* @param newFee New fee amount in USDC (6 decimals)
|
|
314
|
-
* @param walletClient Viem wallet client for transaction
|
|
315
|
-
* @param account Account to send from (must be owner)
|
|
316
|
-
* @returns Promise resolving to transaction hash
|
|
317
|
-
*/
|
|
318
|
-
async setFee(newFee, walletClient, account) {
|
|
319
|
-
return await walletClient.writeContract({
|
|
254
|
+
async getCustomFeePercentage(target) {
|
|
255
|
+
const percentage = (await this.publicClient.readContract({
|
|
320
256
|
address: this.contractAddress,
|
|
321
257
|
abi: MAILER_ABI,
|
|
322
|
-
functionName: '
|
|
323
|
-
args: [
|
|
258
|
+
functionName: 'getCustomFeePercentage',
|
|
259
|
+
args: [normalizeAddress(target)],
|
|
260
|
+
}));
|
|
261
|
+
return Number(percentage);
|
|
262
|
+
}
|
|
263
|
+
async getCustomFeeDiscount(target) {
|
|
264
|
+
const discount = (await this.publicClient.readContract({
|
|
265
|
+
address: this.contractAddress,
|
|
266
|
+
abi: MAILER_ABI,
|
|
267
|
+
functionName: 'customFeeDiscount',
|
|
268
|
+
args: [normalizeAddress(target)],
|
|
269
|
+
}));
|
|
270
|
+
return Number(discount);
|
|
271
|
+
}
|
|
272
|
+
async setPermission(contractAddress, walletClient, account) {
|
|
273
|
+
return walletClient.writeContract({
|
|
274
|
+
address: this.contractAddress,
|
|
275
|
+
abi: MAILER_ABI,
|
|
276
|
+
functionName: 'setPermission',
|
|
277
|
+
args: [normalizeAddress(contractAddress)],
|
|
324
278
|
account,
|
|
325
279
|
chain: walletClient.chain,
|
|
326
280
|
});
|
|
327
281
|
}
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
* @returns Current send fee in USDC (6 decimals)
|
|
331
|
-
*/
|
|
332
|
-
async getFee() {
|
|
333
|
-
return await this.publicClient.readContract({
|
|
282
|
+
async removePermission(contractAddress, walletClient, account) {
|
|
283
|
+
return walletClient.writeContract({
|
|
334
284
|
address: this.contractAddress,
|
|
335
285
|
abi: MAILER_ABI,
|
|
336
|
-
functionName: '
|
|
337
|
-
|
|
286
|
+
functionName: 'removePermission',
|
|
287
|
+
args: [normalizeAddress(contractAddress)],
|
|
288
|
+
account,
|
|
289
|
+
chain: walletClient.chain,
|
|
338
290
|
});
|
|
339
291
|
}
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
292
|
+
async hasPermission(contractAddress, wallet) {
|
|
293
|
+
const permitted = (await this.publicClient.readContract({
|
|
294
|
+
address: this.contractAddress,
|
|
295
|
+
abi: MAILER_ABI,
|
|
296
|
+
functionName: 'permissions',
|
|
297
|
+
args: [normalizeAddress(contractAddress), normalizeAddress(wallet)],
|
|
298
|
+
}));
|
|
299
|
+
return permitted;
|
|
300
|
+
}
|
|
346
301
|
async pause(walletClient, account) {
|
|
347
|
-
return
|
|
302
|
+
return walletClient.writeContract({
|
|
348
303
|
address: this.contractAddress,
|
|
349
304
|
abi: MAILER_ABI,
|
|
350
305
|
functionName: 'pause',
|
|
@@ -352,14 +307,8 @@ class MailerClient {
|
|
|
352
307
|
chain: walletClient.chain,
|
|
353
308
|
});
|
|
354
309
|
}
|
|
355
|
-
/**
|
|
356
|
-
* Unpause the contract (owner only)
|
|
357
|
-
* @param walletClient Viem wallet client for transaction
|
|
358
|
-
* @param account Account to send from (must be owner)
|
|
359
|
-
* @returns Promise resolving to transaction hash
|
|
360
|
-
*/
|
|
361
310
|
async unpause(walletClient, account) {
|
|
362
|
-
return
|
|
311
|
+
return walletClient.writeContract({
|
|
363
312
|
address: this.contractAddress,
|
|
364
313
|
abi: MAILER_ABI,
|
|
365
314
|
functionName: 'unpause',
|
|
@@ -367,14 +316,8 @@ class MailerClient {
|
|
|
367
316
|
chain: walletClient.chain,
|
|
368
317
|
});
|
|
369
318
|
}
|
|
370
|
-
/**
|
|
371
|
-
* Emergency unpause without fund distribution (owner only)
|
|
372
|
-
* @param walletClient Viem wallet client for transaction
|
|
373
|
-
* @param account Account to send from (must be owner)
|
|
374
|
-
* @returns Promise resolving to transaction hash
|
|
375
|
-
*/
|
|
376
319
|
async emergencyUnpause(walletClient, account) {
|
|
377
|
-
return
|
|
320
|
+
return walletClient.writeContract({
|
|
378
321
|
address: this.contractAddress,
|
|
379
322
|
abi: MAILER_ABI,
|
|
380
323
|
functionName: 'emergencyUnpause',
|
|
@@ -382,36 +325,25 @@ class MailerClient {
|
|
|
382
325
|
chain: walletClient.chain,
|
|
383
326
|
});
|
|
384
327
|
}
|
|
385
|
-
/**
|
|
386
|
-
* Check if contract is currently paused
|
|
387
|
-
* @returns True if contract is paused, false otherwise
|
|
388
|
-
*/
|
|
389
328
|
async isPaused() {
|
|
390
|
-
return await this.publicClient.readContract({
|
|
329
|
+
return (await this.publicClient.readContract({
|
|
391
330
|
address: this.contractAddress,
|
|
392
331
|
abi: MAILER_ABI,
|
|
393
332
|
functionName: 'isPaused',
|
|
394
|
-
|
|
395
|
-
});
|
|
333
|
+
}));
|
|
396
334
|
}
|
|
397
|
-
/**
|
|
398
|
-
* Distribute a specific recipient's claimable funds during pause
|
|
399
|
-
* Anyone can call this function when contract is paused
|
|
400
|
-
* @param recipient Address to distribute funds for
|
|
401
|
-
* @param walletClient Viem wallet client for transaction
|
|
402
|
-
* @param account Account to send from
|
|
403
|
-
* @returns Promise resolving to transaction hash
|
|
404
|
-
*/
|
|
405
335
|
async distributeClaimableFunds(recipient, walletClient, account) {
|
|
406
|
-
return
|
|
336
|
+
return walletClient.writeContract({
|
|
407
337
|
address: this.contractAddress,
|
|
408
338
|
abi: MAILER_ABI,
|
|
409
339
|
functionName: 'distributeClaimableFunds',
|
|
410
|
-
args: [(
|
|
340
|
+
args: [normalizeAddress(recipient)],
|
|
411
341
|
account,
|
|
412
342
|
chain: walletClient.chain,
|
|
413
343
|
});
|
|
414
344
|
}
|
|
415
345
|
}
|
|
416
346
|
exports.MailerClient = MailerClient;
|
|
347
|
+
MailerClient.abi = MAILER_ABI;
|
|
348
|
+
MailerClient.bytecode = MAILER_BYTECODE;
|
|
417
349
|
//# sourceMappingURL=mailer-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mailer-client.js","sourceRoot":"","sources":["../../../../src/evm/mailer-client.ts"],"names":[],"mappings":";;;AAAA,+BAOc;AACd,2FAAqF;AAErF,
|
|
1
|
+
{"version":3,"file":"mailer-client.js","sourceRoot":"","sources":["../../../../src/evm/mailer-client.ts"],"names":[],"mappings":"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"}
|