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