@ghostspeak/sdk 2.0.6 → 2.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +152 -30
- package/dist/GhostSpeakClient-CWmGaM9Q.d.ts +1007 -0
- package/dist/StakingModule-C5rzuOWb.d.ts +2526 -0
- package/dist/{agent-M74TCRON.js → agent-5YLZ7DAC.js} +4 -4
- package/dist/{agent-M74TCRON.js.map → agent-5YLZ7DAC.js.map} +1 -1
- package/dist/batch-operations-45CQFEID.js +4 -0
- package/dist/batch-operations-45CQFEID.js.map +1 -0
- package/dist/browser.d.ts +45 -554
- package/dist/browser.js +15 -842
- package/dist/browser.js.map +1 -1
- package/dist/chunk-AL3HQN73.js +754 -0
- package/dist/chunk-AL3HQN73.js.map +1 -0
- package/dist/chunk-BF3IQ35I.js +284 -0
- package/dist/chunk-BF3IQ35I.js.map +1 -0
- package/dist/chunk-BQDGRTVP.js +168 -0
- package/dist/chunk-BQDGRTVP.js.map +1 -0
- package/dist/chunk-C5CDA3WX.js +7314 -0
- package/dist/chunk-C5CDA3WX.js.map +1 -0
- package/dist/chunk-E3FD2CNY.js +1869 -0
- package/dist/chunk-E3FD2CNY.js.map +1 -0
- package/dist/{chunk-F3DZMBUA.js → chunk-G7S6B6WB.js} +327 -493
- package/dist/chunk-G7S6B6WB.js.map +1 -0
- package/dist/chunk-IHVDQ4YI.js +4231 -0
- package/dist/chunk-IHVDQ4YI.js.map +1 -0
- package/dist/chunk-JV2SWONF.js +98 -0
- package/dist/chunk-JV2SWONF.js.map +1 -0
- package/dist/chunk-KB6CKIUK.js +231 -0
- package/dist/chunk-KB6CKIUK.js.map +1 -0
- package/dist/chunk-S74EH3KD.js +7890 -0
- package/dist/chunk-S74EH3KD.js.map +1 -0
- package/dist/chunk-SFTSZ3LC.js +156 -0
- package/dist/chunk-SFTSZ3LC.js.map +1 -0
- package/dist/chunk-SKMJJ3Q6.js +125 -0
- package/dist/chunk-SKMJJ3Q6.js.map +1 -0
- package/dist/chunk-SZGFSCNU.js +3682 -0
- package/dist/chunk-SZGFSCNU.js.map +1 -0
- package/dist/chunk-TTB4OS2D.js +69 -0
- package/dist/chunk-TTB4OS2D.js.map +1 -0
- package/dist/chunk-UP2VWCW5.js +33 -0
- package/dist/{chunk-NSBPE2FW.js.map → chunk-UP2VWCW5.js.map} +1 -1
- package/dist/{chunk-UJUGGLMT.js → chunk-VQZQCHUT.js} +5 -5
- package/dist/{chunk-UJUGGLMT.js.map → chunk-VQZQCHUT.js.map} +1 -1
- package/dist/client.d.ts +5 -4
- package/dist/client.js +11 -10
- package/dist/createAgentAuthorization-ULG47ZJI.js +5 -0
- package/dist/createAgentAuthorization-ULG47ZJI.js.map +1 -0
- package/dist/credentials.js +1 -1
- package/dist/crypto.js +2 -2
- package/dist/errors.js +1 -1
- package/dist/feature-flags-B1g0DCPe.d.ts +1181 -0
- package/dist/generated-EG5USUFG.js +9 -0
- package/dist/{generated-VNLHMR6Y.js.map → generated-EG5USUFG.js.map} +1 -1
- package/dist/{ghostspeak_wasm-SB2RPJ3D.js → ghostspeak_wasm-F227HOSM.js} +3 -3
- package/dist/{ghostspeak_wasm-SB2RPJ3D.js.map → ghostspeak_wasm-F227HOSM.js.map} +1 -1
- package/dist/index.d.ts +1209 -1506
- package/dist/index.js +600 -3532
- package/dist/index.js.map +1 -1
- package/dist/metafile-esm.json +1 -1
- package/dist/minimal/core-minimal.d.ts +2383 -1264
- package/dist/minimal/core-minimal.js +9 -9
- package/dist/minimal/core-minimal.js.map +1 -1
- package/dist/nacl-fast-W5BJ3KZ2.js +2229 -0
- package/dist/nacl-fast-W5BJ3KZ2.js.map +1 -0
- package/dist/pda-4KP7CURF.js +4 -0
- package/dist/pda-4KP7CURF.js.map +1 -0
- package/dist/pda-Ce7VYg4T.d.ts +25 -0
- package/dist/reputation-types-Yebf0Rm_.d.ts +1071 -0
- package/dist/revokeAuthorization-OK7E7OK3.js +5 -0
- package/dist/revokeAuthorization-OK7E7OK3.js.map +1 -0
- package/dist/signature-verification-DGxR4aYQ.d.ts +448 -0
- package/dist/types.js +1 -1
- package/dist/updateReputationWithAuth-Y4ONEVSP.js +5 -0
- package/dist/updateReputationWithAuth-Y4ONEVSP.js.map +1 -0
- package/dist/utils.d.ts +69 -203
- package/dist/utils.js +15 -153
- package/dist/utils.js.map +1 -1
- package/package.json +24 -31
- package/dist/.tsbuildinfo +0 -1
- package/dist/GhostSpeakClient-D_66Uzsf.d.ts +0 -707
- package/dist/GovernanceModule-DQYYys-H.d.ts +0 -1766
- package/dist/chunk-APCKGD23.js +0 -1328
- package/dist/chunk-APCKGD23.js.map +0 -1
- package/dist/chunk-ASQXX4IT.js +0 -572
- package/dist/chunk-ASQXX4IT.js.map +0 -1
- package/dist/chunk-COGZFWOT.js +0 -19657
- package/dist/chunk-COGZFWOT.js.map +0 -1
- package/dist/chunk-F3DZMBUA.js.map +0 -1
- package/dist/chunk-GMHIUK2R.js +0 -7526
- package/dist/chunk-GMHIUK2R.js.map +0 -1
- package/dist/chunk-IAWBZYPE.js +0 -356
- package/dist/chunk-IAWBZYPE.js.map +0 -1
- package/dist/chunk-NSBPE2FW.js +0 -15
- package/dist/chunk-OWYHJG6H.js +0 -13311
- package/dist/chunk-OWYHJG6H.js.map +0 -1
- package/dist/chunk-RDDPOFR5.js +0 -3
- package/dist/chunk-RDDPOFR5.js.map +0 -1
- package/dist/chunk-RERCHKZP.js +0 -35
- package/dist/chunk-RERCHKZP.js.map +0 -1
- package/dist/chunk-TVVGXYCI.js +0 -2887
- package/dist/chunk-TVVGXYCI.js.map +0 -1
- package/dist/chunk-ZGP5552B.js +0 -377
- package/dist/chunk-ZGP5552B.js.map +0 -1
- package/dist/chunk-ZWOYNHVK.js +0 -196
- package/dist/chunk-ZWOYNHVK.js.map +0 -1
- package/dist/dist/.tsbuildinfo +0 -1
- package/dist/elgamal-VZLWB3XK.js +0 -5
- package/dist/elgamal-VZLWB3XK.js.map +0 -1
- package/dist/feature-flags-V722ZuXO.d.ts +0 -3512
- package/dist/generated-VNLHMR6Y.js +0 -5
- package/dist/ipfs-types-BOt9ZNg4.d.ts +0 -592
- package/dist/multisigConfig-BzEhy6jy.d.ts +0 -58
- package/dist/pda-B_nS8SbD.d.ts +0 -114
- package/dist/pda-S4BFJVGE.js +0 -4
- package/dist/pda-S4BFJVGE.js.map +0 -1
- package/dist/system-addresses-BFNLEbFx.d.ts +0 -857
- package/dist/token-2022-rpc-RALH4RK7.js +0 -593
- package/dist/token-2022-rpc-RALH4RK7.js.map +0 -1
package/dist/chunk-ASQXX4IT.js
DELETED
|
@@ -1,572 +0,0 @@
|
|
|
1
|
-
import { getProgramDerivedAddress, getBytesEncoder, getAddressEncoder, getUtf8Encoder, getU64Encoder } from '@solana/kit';
|
|
2
|
-
|
|
3
|
-
// src/utils/pda.ts
|
|
4
|
-
async function deriveAgentPdaOriginal(programId, owner, agentId) {
|
|
5
|
-
const [address] = await getProgramDerivedAddress({
|
|
6
|
-
programAddress: programId,
|
|
7
|
-
seeds: [
|
|
8
|
-
getBytesEncoder().encode(new Uint8Array([97, 103, 101, 110, 116])),
|
|
9
|
-
// 'agent'
|
|
10
|
-
getAddressEncoder().encode(owner),
|
|
11
|
-
// Use raw UTF-8 bytes to match smart contract: agent_id.as_bytes()
|
|
12
|
-
getUtf8Encoder().encode(agentId)
|
|
13
|
-
]
|
|
14
|
-
});
|
|
15
|
-
return address;
|
|
16
|
-
}
|
|
17
|
-
async function deriveAgentPda(params) {
|
|
18
|
-
const result = await getProgramDerivedAddress({
|
|
19
|
-
programAddress: params.programAddress,
|
|
20
|
-
seeds: [
|
|
21
|
-
getBytesEncoder().encode(new Uint8Array([97, 103, 101, 110, 116])),
|
|
22
|
-
// 'agent'
|
|
23
|
-
getAddressEncoder().encode(params.owner),
|
|
24
|
-
getUtf8Encoder().encode(params.agentId)
|
|
25
|
-
]
|
|
26
|
-
});
|
|
27
|
-
return [result[0], result[1]];
|
|
28
|
-
}
|
|
29
|
-
async function deriveServiceListingPda(programId, creator, listingId) {
|
|
30
|
-
const [address] = await getProgramDerivedAddress({
|
|
31
|
-
programAddress: programId,
|
|
32
|
-
seeds: [
|
|
33
|
-
getBytesEncoder().encode(new Uint8Array([
|
|
34
|
-
115,
|
|
35
|
-
101,
|
|
36
|
-
114,
|
|
37
|
-
118,
|
|
38
|
-
105,
|
|
39
|
-
99,
|
|
40
|
-
101,
|
|
41
|
-
95,
|
|
42
|
-
108,
|
|
43
|
-
105,
|
|
44
|
-
115,
|
|
45
|
-
116,
|
|
46
|
-
105,
|
|
47
|
-
110,
|
|
48
|
-
103
|
|
49
|
-
])),
|
|
50
|
-
// 'service_listing'
|
|
51
|
-
getAddressEncoder().encode(creator),
|
|
52
|
-
getUtf8Encoder().encode(listingId)
|
|
53
|
-
]
|
|
54
|
-
});
|
|
55
|
-
return address;
|
|
56
|
-
}
|
|
57
|
-
async function deriveJobPostingPda(programId, employer, jobId) {
|
|
58
|
-
const [address] = await getProgramDerivedAddress({
|
|
59
|
-
programAddress: programId,
|
|
60
|
-
seeds: [
|
|
61
|
-
getBytesEncoder().encode(new Uint8Array([
|
|
62
|
-
106,
|
|
63
|
-
111,
|
|
64
|
-
98,
|
|
65
|
-
95,
|
|
66
|
-
112,
|
|
67
|
-
111,
|
|
68
|
-
115,
|
|
69
|
-
116,
|
|
70
|
-
105,
|
|
71
|
-
110,
|
|
72
|
-
103
|
|
73
|
-
])),
|
|
74
|
-
// 'job_posting'
|
|
75
|
-
getAddressEncoder().encode(employer),
|
|
76
|
-
getUtf8Encoder().encode(jobId)
|
|
77
|
-
]
|
|
78
|
-
});
|
|
79
|
-
return address;
|
|
80
|
-
}
|
|
81
|
-
async function deriveJobApplicationPda(programId, jobPosting, applicant) {
|
|
82
|
-
const [address] = await getProgramDerivedAddress({
|
|
83
|
-
programAddress: programId,
|
|
84
|
-
seeds: [
|
|
85
|
-
getBytesEncoder().encode(new Uint8Array([
|
|
86
|
-
106,
|
|
87
|
-
111,
|
|
88
|
-
98,
|
|
89
|
-
95,
|
|
90
|
-
97,
|
|
91
|
-
112,
|
|
92
|
-
112,
|
|
93
|
-
108,
|
|
94
|
-
105,
|
|
95
|
-
99,
|
|
96
|
-
97,
|
|
97
|
-
116,
|
|
98
|
-
105,
|
|
99
|
-
111,
|
|
100
|
-
110
|
|
101
|
-
])),
|
|
102
|
-
// 'job_application'
|
|
103
|
-
getAddressEncoder().encode(jobPosting),
|
|
104
|
-
getAddressEncoder().encode(applicant)
|
|
105
|
-
]
|
|
106
|
-
});
|
|
107
|
-
return address;
|
|
108
|
-
}
|
|
109
|
-
async function deriveWorkOrderPda(programId, client, orderId) {
|
|
110
|
-
const orderIdBytes = new Uint8Array(8);
|
|
111
|
-
const dataView = new DataView(orderIdBytes.buffer);
|
|
112
|
-
dataView.setBigUint64(0, orderId, true);
|
|
113
|
-
const [address] = await getProgramDerivedAddress({
|
|
114
|
-
programAddress: programId,
|
|
115
|
-
seeds: [
|
|
116
|
-
getBytesEncoder().encode(new Uint8Array([
|
|
117
|
-
119,
|
|
118
|
-
111,
|
|
119
|
-
114,
|
|
120
|
-
107,
|
|
121
|
-
95,
|
|
122
|
-
111,
|
|
123
|
-
114,
|
|
124
|
-
100,
|
|
125
|
-
101,
|
|
126
|
-
114
|
|
127
|
-
])),
|
|
128
|
-
// 'work_order'
|
|
129
|
-
getAddressEncoder().encode(client),
|
|
130
|
-
orderIdBytes
|
|
131
|
-
]
|
|
132
|
-
});
|
|
133
|
-
return address;
|
|
134
|
-
}
|
|
135
|
-
async function deriveWorkDeliveryPda(programId, workOrder, provider) {
|
|
136
|
-
const [address] = await getProgramDerivedAddress({
|
|
137
|
-
programAddress: programId,
|
|
138
|
-
seeds: [
|
|
139
|
-
getBytesEncoder().encode(new Uint8Array([
|
|
140
|
-
119,
|
|
141
|
-
111,
|
|
142
|
-
114,
|
|
143
|
-
107,
|
|
144
|
-
95,
|
|
145
|
-
100,
|
|
146
|
-
101,
|
|
147
|
-
108,
|
|
148
|
-
105,
|
|
149
|
-
118,
|
|
150
|
-
101,
|
|
151
|
-
114,
|
|
152
|
-
121
|
|
153
|
-
])),
|
|
154
|
-
// 'work_delivery'
|
|
155
|
-
getAddressEncoder().encode(workOrder),
|
|
156
|
-
getAddressEncoder().encode(provider)
|
|
157
|
-
]
|
|
158
|
-
});
|
|
159
|
-
return address;
|
|
160
|
-
}
|
|
161
|
-
async function derivePaymentPda(programId, workOrder, payer) {
|
|
162
|
-
const [address] = await getProgramDerivedAddress({
|
|
163
|
-
programAddress: programId,
|
|
164
|
-
seeds: [
|
|
165
|
-
getBytesEncoder().encode(new Uint8Array([
|
|
166
|
-
112,
|
|
167
|
-
97,
|
|
168
|
-
121,
|
|
169
|
-
109,
|
|
170
|
-
101,
|
|
171
|
-
110,
|
|
172
|
-
116
|
|
173
|
-
])),
|
|
174
|
-
// 'payment'
|
|
175
|
-
getAddressEncoder().encode(workOrder),
|
|
176
|
-
getAddressEncoder().encode(payer)
|
|
177
|
-
]
|
|
178
|
-
});
|
|
179
|
-
return address;
|
|
180
|
-
}
|
|
181
|
-
async function deriveA2ASessionPdaOriginal(programId, creator) {
|
|
182
|
-
const [address] = await getProgramDerivedAddress({
|
|
183
|
-
programAddress: programId,
|
|
184
|
-
seeds: [
|
|
185
|
-
getBytesEncoder().encode(new Uint8Array([
|
|
186
|
-
97,
|
|
187
|
-
50,
|
|
188
|
-
97,
|
|
189
|
-
95,
|
|
190
|
-
115,
|
|
191
|
-
101,
|
|
192
|
-
115,
|
|
193
|
-
115,
|
|
194
|
-
105,
|
|
195
|
-
111,
|
|
196
|
-
110
|
|
197
|
-
])),
|
|
198
|
-
// 'a2a_session'
|
|
199
|
-
getAddressEncoder().encode(creator)
|
|
200
|
-
]
|
|
201
|
-
});
|
|
202
|
-
return address;
|
|
203
|
-
}
|
|
204
|
-
async function deriveA2ASessionPda(params) {
|
|
205
|
-
const address = await deriveChannelPda(params.programAddress, params.channelId);
|
|
206
|
-
return [address, 0];
|
|
207
|
-
}
|
|
208
|
-
async function deriveChannelPda(programId, channelId) {
|
|
209
|
-
const [address] = await getProgramDerivedAddress({
|
|
210
|
-
programAddress: programId,
|
|
211
|
-
seeds: [
|
|
212
|
-
getBytesEncoder().encode(new Uint8Array([
|
|
213
|
-
99,
|
|
214
|
-
104,
|
|
215
|
-
97,
|
|
216
|
-
110,
|
|
217
|
-
110,
|
|
218
|
-
101,
|
|
219
|
-
108
|
|
220
|
-
])),
|
|
221
|
-
// 'channel'
|
|
222
|
-
getUtf8Encoder().encode(channelId)
|
|
223
|
-
]
|
|
224
|
-
});
|
|
225
|
-
return address;
|
|
226
|
-
}
|
|
227
|
-
async function deriveA2AMessagePda(programId, session, sessionCreatedAt) {
|
|
228
|
-
const createdAtBytes = new Uint8Array(8);
|
|
229
|
-
const dataView = new DataView(createdAtBytes.buffer);
|
|
230
|
-
dataView.setBigInt64(0, sessionCreatedAt, true);
|
|
231
|
-
const [address] = await getProgramDerivedAddress({
|
|
232
|
-
programAddress: programId,
|
|
233
|
-
seeds: [
|
|
234
|
-
getBytesEncoder().encode(new Uint8Array([
|
|
235
|
-
97,
|
|
236
|
-
50,
|
|
237
|
-
97,
|
|
238
|
-
95,
|
|
239
|
-
109,
|
|
240
|
-
101,
|
|
241
|
-
115,
|
|
242
|
-
115,
|
|
243
|
-
97,
|
|
244
|
-
103,
|
|
245
|
-
101
|
|
246
|
-
])),
|
|
247
|
-
// 'a2a_message'
|
|
248
|
-
getAddressEncoder().encode(session),
|
|
249
|
-
createdAtBytes
|
|
250
|
-
// Fixed: use raw little-endian bytes instead of U64 encoder
|
|
251
|
-
]
|
|
252
|
-
});
|
|
253
|
-
return address;
|
|
254
|
-
}
|
|
255
|
-
async function deriveUserRegistryPda(programId, signer) {
|
|
256
|
-
const [address] = await getProgramDerivedAddress({
|
|
257
|
-
programAddress: programId,
|
|
258
|
-
seeds: [
|
|
259
|
-
getBytesEncoder().encode(new Uint8Array([
|
|
260
|
-
117,
|
|
261
|
-
115,
|
|
262
|
-
101,
|
|
263
|
-
114,
|
|
264
|
-
95,
|
|
265
|
-
114,
|
|
266
|
-
101,
|
|
267
|
-
103,
|
|
268
|
-
105,
|
|
269
|
-
115,
|
|
270
|
-
116,
|
|
271
|
-
114,
|
|
272
|
-
121
|
|
273
|
-
])),
|
|
274
|
-
// 'user_registry'
|
|
275
|
-
getAddressEncoder().encode(signer)
|
|
276
|
-
]
|
|
277
|
-
});
|
|
278
|
-
return address;
|
|
279
|
-
}
|
|
280
|
-
async function deriveServicePurchasePda(programId, serviceListing, buyer) {
|
|
281
|
-
const [address] = await getProgramDerivedAddress({
|
|
282
|
-
programAddress: programId,
|
|
283
|
-
seeds: [
|
|
284
|
-
getBytesEncoder().encode(new Uint8Array([
|
|
285
|
-
115,
|
|
286
|
-
101,
|
|
287
|
-
114,
|
|
288
|
-
118,
|
|
289
|
-
105,
|
|
290
|
-
99,
|
|
291
|
-
101,
|
|
292
|
-
95,
|
|
293
|
-
112,
|
|
294
|
-
117,
|
|
295
|
-
114,
|
|
296
|
-
99,
|
|
297
|
-
104,
|
|
298
|
-
97,
|
|
299
|
-
115,
|
|
300
|
-
101
|
|
301
|
-
])),
|
|
302
|
-
// 'service_purchase'
|
|
303
|
-
getAddressEncoder().encode(serviceListing),
|
|
304
|
-
getAddressEncoder().encode(buyer)
|
|
305
|
-
]
|
|
306
|
-
});
|
|
307
|
-
return address;
|
|
308
|
-
}
|
|
309
|
-
async function deriveAgentVerificationPda(programId, agent, verifier) {
|
|
310
|
-
const [address] = await getProgramDerivedAddress({
|
|
311
|
-
programAddress: programId,
|
|
312
|
-
seeds: [
|
|
313
|
-
getBytesEncoder().encode(new Uint8Array([
|
|
314
|
-
97,
|
|
315
|
-
103,
|
|
316
|
-
101,
|
|
317
|
-
110,
|
|
318
|
-
116,
|
|
319
|
-
95,
|
|
320
|
-
118,
|
|
321
|
-
101,
|
|
322
|
-
114,
|
|
323
|
-
105,
|
|
324
|
-
102,
|
|
325
|
-
105,
|
|
326
|
-
99,
|
|
327
|
-
97,
|
|
328
|
-
116,
|
|
329
|
-
105,
|
|
330
|
-
111,
|
|
331
|
-
110
|
|
332
|
-
])),
|
|
333
|
-
// 'agent_verification'
|
|
334
|
-
getAddressEncoder().encode(agent),
|
|
335
|
-
getAddressEncoder().encode(verifier)
|
|
336
|
-
]
|
|
337
|
-
});
|
|
338
|
-
return address;
|
|
339
|
-
}
|
|
340
|
-
async function deriveReplicationTemplatePda(programId, sourceAgent) {
|
|
341
|
-
const [address] = await getProgramDerivedAddress({
|
|
342
|
-
programAddress: programId,
|
|
343
|
-
seeds: [
|
|
344
|
-
getBytesEncoder().encode(new Uint8Array([
|
|
345
|
-
114,
|
|
346
|
-
101,
|
|
347
|
-
112,
|
|
348
|
-
108,
|
|
349
|
-
105,
|
|
350
|
-
99,
|
|
351
|
-
97,
|
|
352
|
-
116,
|
|
353
|
-
105,
|
|
354
|
-
111,
|
|
355
|
-
110,
|
|
356
|
-
95,
|
|
357
|
-
116,
|
|
358
|
-
101,
|
|
359
|
-
109,
|
|
360
|
-
112,
|
|
361
|
-
108,
|
|
362
|
-
97,
|
|
363
|
-
116,
|
|
364
|
-
101
|
|
365
|
-
])),
|
|
366
|
-
// 'replication_template'
|
|
367
|
-
getAddressEncoder().encode(sourceAgent)
|
|
368
|
-
]
|
|
369
|
-
});
|
|
370
|
-
return address;
|
|
371
|
-
}
|
|
372
|
-
async function deriveReplicationRecordPda(programId, replicationTemplate, buyer) {
|
|
373
|
-
const [address] = await getProgramDerivedAddress({
|
|
374
|
-
programAddress: programId,
|
|
375
|
-
seeds: [
|
|
376
|
-
getBytesEncoder().encode(new Uint8Array([
|
|
377
|
-
114,
|
|
378
|
-
101,
|
|
379
|
-
112,
|
|
380
|
-
108,
|
|
381
|
-
105,
|
|
382
|
-
99,
|
|
383
|
-
97,
|
|
384
|
-
116,
|
|
385
|
-
105,
|
|
386
|
-
111,
|
|
387
|
-
110,
|
|
388
|
-
95,
|
|
389
|
-
114,
|
|
390
|
-
101,
|
|
391
|
-
99,
|
|
392
|
-
111,
|
|
393
|
-
114,
|
|
394
|
-
100
|
|
395
|
-
])),
|
|
396
|
-
// 'replication_record'
|
|
397
|
-
getAddressEncoder().encode(replicationTemplate),
|
|
398
|
-
getAddressEncoder().encode(buyer)
|
|
399
|
-
]
|
|
400
|
-
});
|
|
401
|
-
return address;
|
|
402
|
-
}
|
|
403
|
-
async function deriveAgentTreeConfigPda(programId, signer) {
|
|
404
|
-
const [address] = await getProgramDerivedAddress({
|
|
405
|
-
programAddress: programId,
|
|
406
|
-
seeds: [
|
|
407
|
-
getBytesEncoder().encode(new Uint8Array([
|
|
408
|
-
97,
|
|
409
|
-
103,
|
|
410
|
-
101,
|
|
411
|
-
110,
|
|
412
|
-
116,
|
|
413
|
-
95,
|
|
414
|
-
116,
|
|
415
|
-
114,
|
|
416
|
-
101,
|
|
417
|
-
101,
|
|
418
|
-
95,
|
|
419
|
-
99,
|
|
420
|
-
111,
|
|
421
|
-
110,
|
|
422
|
-
102,
|
|
423
|
-
105,
|
|
424
|
-
103
|
|
425
|
-
])),
|
|
426
|
-
// 'agent_tree_config'
|
|
427
|
-
getAddressEncoder().encode(signer)
|
|
428
|
-
]
|
|
429
|
-
});
|
|
430
|
-
return address;
|
|
431
|
-
}
|
|
432
|
-
async function findProgramDerivedAddress(seeds, programId) {
|
|
433
|
-
const encodedSeeds = seeds.map((seed) => {
|
|
434
|
-
if (typeof seed === "string") {
|
|
435
|
-
return getUtf8Encoder().encode(seed);
|
|
436
|
-
} else if (typeof seed === "object" && seed.constructor === Uint8Array) {
|
|
437
|
-
return seed;
|
|
438
|
-
} else {
|
|
439
|
-
return getAddressEncoder().encode(seed);
|
|
440
|
-
}
|
|
441
|
-
});
|
|
442
|
-
const result = await getProgramDerivedAddress({
|
|
443
|
-
programAddress: programId,
|
|
444
|
-
seeds: encodedSeeds
|
|
445
|
-
});
|
|
446
|
-
return [result[0], result[1]];
|
|
447
|
-
}
|
|
448
|
-
async function deriveWorkOrderPDA(client, orderId, programId) {
|
|
449
|
-
const seeds = [
|
|
450
|
-
getBytesEncoder().encode(new Uint8Array([119, 111, 114, 107, 95, 111, 114, 100, 101, 114])),
|
|
451
|
-
// 'work_order'
|
|
452
|
-
getAddressEncoder().encode(client),
|
|
453
|
-
getU64Encoder().encode(orderId)
|
|
454
|
-
];
|
|
455
|
-
const result = await getProgramDerivedAddress({
|
|
456
|
-
programAddress: programId,
|
|
457
|
-
seeds
|
|
458
|
-
});
|
|
459
|
-
return [result[0], result[1]];
|
|
460
|
-
}
|
|
461
|
-
async function deriveWorkDeliveryPDA(workOrder, programId) {
|
|
462
|
-
const seeds = [
|
|
463
|
-
getBytesEncoder().encode(new Uint8Array([119, 111, 114, 107, 95, 100, 101, 108, 105, 118, 101, 114, 121])),
|
|
464
|
-
// 'work_delivery'
|
|
465
|
-
getAddressEncoder().encode(workOrder)
|
|
466
|
-
];
|
|
467
|
-
const result = await getProgramDerivedAddress({
|
|
468
|
-
programAddress: programId,
|
|
469
|
-
seeds
|
|
470
|
-
});
|
|
471
|
-
return [result[0], result[1]];
|
|
472
|
-
}
|
|
473
|
-
async function deriveEscrowPDAOriginal(workOrder, programId) {
|
|
474
|
-
const seeds = [
|
|
475
|
-
getBytesEncoder().encode(new Uint8Array([101, 115, 99, 114, 111, 119])),
|
|
476
|
-
// 'escrow'
|
|
477
|
-
getAddressEncoder().encode(workOrder)
|
|
478
|
-
];
|
|
479
|
-
const result = await getProgramDerivedAddress({
|
|
480
|
-
programAddress: programId,
|
|
481
|
-
seeds
|
|
482
|
-
});
|
|
483
|
-
return [result[0], result[1]];
|
|
484
|
-
}
|
|
485
|
-
async function deriveEscrowPDA(params) {
|
|
486
|
-
const seeds = [
|
|
487
|
-
getBytesEncoder().encode(new Uint8Array([101, 115, 99, 114, 111, 119])),
|
|
488
|
-
// 'escrow'
|
|
489
|
-
getUtf8Encoder().encode(params.escrowId)
|
|
490
|
-
];
|
|
491
|
-
const result = await getProgramDerivedAddress({
|
|
492
|
-
programAddress: params.programAddress,
|
|
493
|
-
seeds
|
|
494
|
-
});
|
|
495
|
-
return [result[0], result[1]];
|
|
496
|
-
}
|
|
497
|
-
async function deriveEscrowPda(programId, buyer, seller, nonce) {
|
|
498
|
-
const nonceBytes = new Uint8Array(8);
|
|
499
|
-
const dataView = new DataView(nonceBytes.buffer);
|
|
500
|
-
dataView.setUint32(0, nonce, true);
|
|
501
|
-
const [address] = await getProgramDerivedAddress({
|
|
502
|
-
programAddress: programId,
|
|
503
|
-
seeds: [
|
|
504
|
-
getBytesEncoder().encode(new Uint8Array([101, 115, 99, 114, 111, 119])),
|
|
505
|
-
// 'escrow'
|
|
506
|
-
getAddressEncoder().encode(buyer),
|
|
507
|
-
getAddressEncoder().encode(seller),
|
|
508
|
-
nonceBytes.slice(0, 4)
|
|
509
|
-
// Only use 4 bytes for the nonce
|
|
510
|
-
]
|
|
511
|
-
});
|
|
512
|
-
return address;
|
|
513
|
-
}
|
|
514
|
-
async function deriveTokenAccountPda(wallet, mint) {
|
|
515
|
-
const ASSOCIATED_TOKEN_PROGRAM_ID = "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL";
|
|
516
|
-
const TOKEN_PROGRAM_ID = "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA";
|
|
517
|
-
const [address] = await getProgramDerivedAddress({
|
|
518
|
-
programAddress: ASSOCIATED_TOKEN_PROGRAM_ID,
|
|
519
|
-
seeds: [
|
|
520
|
-
getAddressEncoder().encode(wallet),
|
|
521
|
-
getAddressEncoder().encode(TOKEN_PROGRAM_ID),
|
|
522
|
-
getAddressEncoder().encode(mint)
|
|
523
|
-
]
|
|
524
|
-
});
|
|
525
|
-
return address;
|
|
526
|
-
}
|
|
527
|
-
async function deriveAuctionPda(programId, serviceListing) {
|
|
528
|
-
const [address] = await getProgramDerivedAddress({
|
|
529
|
-
programAddress: programId,
|
|
530
|
-
seeds: [
|
|
531
|
-
getBytesEncoder().encode(new Uint8Array([
|
|
532
|
-
97,
|
|
533
|
-
117,
|
|
534
|
-
99,
|
|
535
|
-
116,
|
|
536
|
-
105,
|
|
537
|
-
111,
|
|
538
|
-
110
|
|
539
|
-
// 'auction'
|
|
540
|
-
])),
|
|
541
|
-
getAddressEncoder().encode(serviceListing)
|
|
542
|
-
]
|
|
543
|
-
});
|
|
544
|
-
return address;
|
|
545
|
-
}
|
|
546
|
-
async function deriveMessagePda(programId, channel, nonce) {
|
|
547
|
-
const nonceBytes = new Uint8Array(4);
|
|
548
|
-
const dataView = new DataView(nonceBytes.buffer);
|
|
549
|
-
dataView.setUint32(0, nonce, true);
|
|
550
|
-
const [address] = await getProgramDerivedAddress({
|
|
551
|
-
programAddress: programId,
|
|
552
|
-
seeds: [
|
|
553
|
-
getBytesEncoder().encode(new Uint8Array([
|
|
554
|
-
109,
|
|
555
|
-
101,
|
|
556
|
-
115,
|
|
557
|
-
115,
|
|
558
|
-
97,
|
|
559
|
-
103,
|
|
560
|
-
101
|
|
561
|
-
// 'message'
|
|
562
|
-
])),
|
|
563
|
-
getAddressEncoder().encode(channel),
|
|
564
|
-
nonceBytes
|
|
565
|
-
]
|
|
566
|
-
});
|
|
567
|
-
return address;
|
|
568
|
-
}
|
|
569
|
-
|
|
570
|
-
export { deriveA2AMessagePda, deriveA2ASessionPda, deriveA2ASessionPdaOriginal, deriveAgentPda, deriveAgentPdaOriginal, deriveAgentTreeConfigPda, deriveAgentVerificationPda, deriveAuctionPda, deriveChannelPda, deriveEscrowPDA, deriveEscrowPDAOriginal, deriveEscrowPda, deriveJobApplicationPda, deriveJobPostingPda, deriveMessagePda, derivePaymentPda, deriveReplicationRecordPda, deriveReplicationTemplatePda, deriveServiceListingPda, deriveServicePurchasePda, deriveTokenAccountPda, deriveUserRegistryPda, deriveWorkDeliveryPDA, deriveWorkDeliveryPda, deriveWorkOrderPDA, deriveWorkOrderPda, findProgramDerivedAddress };
|
|
571
|
-
//# sourceMappingURL=chunk-ASQXX4IT.js.map
|
|
572
|
-
//# sourceMappingURL=chunk-ASQXX4IT.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/pda.ts"],"names":[],"mappings":"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","file":"chunk-ASQXX4IT.js","sourcesContent":["import type { Address } from '@solana/addresses'\nimport { \n getProgramDerivedAddress,\n getBytesEncoder,\n getAddressEncoder,\n getUtf8Encoder,\n getU64Encoder\n} from '@solana/kit'\n\n/**\n * Utility functions for Program Derived Addresses (PDAs)\n * Based on generated patterns from Codama\n */\n\n/**\n * Derive agent PDA (original function)\n * Pattern: ['agent', owner, agentId]\n * NOTE: Uses raw UTF-8 bytes to match smart contract's agent_id.as_bytes()\n */\nexport async function deriveAgentPdaOriginal(\n programId: Address,\n owner: Address,\n agentId: string\n): Promise<Address> {\n const [address] = await getProgramDerivedAddress({\n programAddress: programId,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([97, 103, 101, 110, 116])), // 'agent'\n getAddressEncoder().encode(owner),\n // Use raw UTF-8 bytes to match smart contract: agent_id.as_bytes()\n getUtf8Encoder().encode(agentId)\n ]\n })\n return address\n}\n\n/**\n * Derive agent PDA (SDK compatible version)\n * Pattern: ['agent', owner, agentId]\n */\nexport async function deriveAgentPda(params: {\n owner: Address\n agentId: string\n programAddress: Address\n}): Promise<[Address, number]> {\n const result = await getProgramDerivedAddress({\n programAddress: params.programAddress,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([97, 103, 101, 110, 116])), // 'agent'\n getAddressEncoder().encode(params.owner),\n getUtf8Encoder().encode(params.agentId)\n ]\n })\n return [result[0], result[1]]\n}\n\n/**\n * Derive service listing PDA \n * Pattern: ['service_listing', creator, listingId]\n */\nexport async function deriveServiceListingPda(\n programId: Address,\n creator: Address,\n listingId: string\n): Promise<Address> {\n const [address] = await getProgramDerivedAddress({\n programAddress: programId,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([\n 115, 101, 114, 118, 105, 99, 101, 95, 108, 105, 115, 116, 105, 110, 103\n ])), // 'service_listing'\n getAddressEncoder().encode(creator),\n getUtf8Encoder().encode(listingId)\n ]\n })\n return address\n}\n\n/**\n * Derive job posting PDA\n * Pattern: ['job_posting', employer, jobId]\n */\nexport async function deriveJobPostingPda(\n programId: Address,\n employer: Address,\n jobId: string\n): Promise<Address> {\n const [address] = await getProgramDerivedAddress({\n programAddress: programId,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([\n 106, 111, 98, 95, 112, 111, 115, 116, 105, 110, 103\n ])), // 'job_posting'\n getAddressEncoder().encode(employer),\n getUtf8Encoder().encode(jobId)\n ]\n })\n return address\n}\n\n/**\n * Derive job application PDA\n * Pattern: ['job_application', jobPosting, applicant]\n */\nexport async function deriveJobApplicationPda(\n programId: Address,\n jobPosting: Address,\n applicant: Address\n): Promise<Address> {\n const [address] = await getProgramDerivedAddress({\n programAddress: programId,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([\n 106, 111, 98, 95, 97, 112, 112, 108, 105, 99, 97, 116, 105, 111, 110\n ])), // 'job_application'\n getAddressEncoder().encode(jobPosting),\n getAddressEncoder().encode(applicant)\n ]\n })\n return address\n}\n\n/**\n * Derive work order PDA (used for escrow functionality)\n * Pattern: ['work_order', client, orderId] (little-endian bytes)\n * NOTE: Smart contract expects orderId as little-endian bytes, not U64 encoded\n */\nexport async function deriveWorkOrderPda(\n programId: Address,\n client: Address,\n orderId: bigint\n): Promise<Address> {\n // Convert orderId to little-endian bytes (8 bytes) to match smart contract expectation\n const orderIdBytes = new Uint8Array(8)\n const dataView = new DataView(orderIdBytes.buffer)\n dataView.setBigUint64(0, orderId, true) // little-endian\n \n const [address] = await getProgramDerivedAddress({\n programAddress: programId,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([\n 119, 111, 114, 107, 95, 111, 114, 100, 101, 114\n ])), // 'work_order'\n getAddressEncoder().encode(client),\n orderIdBytes\n ]\n })\n return address\n}\n\n/**\n * Derive work delivery PDA\n * Pattern: ['work_delivery', workOrder, provider]\n */\nexport async function deriveWorkDeliveryPda(\n programId: Address,\n workOrder: Address,\n provider: Address\n): Promise<Address> {\n const [address] = await getProgramDerivedAddress({\n programAddress: programId,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([\n 119, 111, 114, 107, 95, 100, 101, 108, 105, 118, 101, 114, 121\n ])), // 'work_delivery'\n getAddressEncoder().encode(workOrder),\n getAddressEncoder().encode(provider)\n ]\n })\n return address\n}\n\n/**\n * Derive payment PDA\n * Pattern: ['payment', workOrder, payer]\n */\nexport async function derivePaymentPda(\n programId: Address,\n workOrder: Address,\n payer: Address\n): Promise<Address> {\n const [address] = await getProgramDerivedAddress({\n programAddress: programId,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([\n 112, 97, 121, 109, 101, 110, 116\n ])), // 'payment'\n getAddressEncoder().encode(workOrder),\n getAddressEncoder().encode(payer)\n ]\n })\n return address\n}\n\n/**\n * Derive A2A session PDA (original function)\n * Pattern: ['a2a_session', creator]\n */\nexport async function deriveA2ASessionPdaOriginal(\n programId: Address,\n creator: Address\n): Promise<Address> {\n const [address] = await getProgramDerivedAddress({\n programAddress: programId,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([\n 97, 50, 97, 95, 115, 101, 115, 115, 105, 111, 110\n ])), // 'a2a_session'\n getAddressEncoder().encode(creator)\n ]\n })\n return address\n}\n\n/**\n * Derive A2A session PDA (wrapper for SDK compatibility)\n * This function wraps deriveChannelPda to match the expected signature\n */\nexport async function deriveA2ASessionPda(params: {\n channelId: string\n programAddress: Address\n}): Promise<[Address, number]> {\n // For enhanced channels, we use the channel PDA derivation\n const address = await deriveChannelPda(params.programAddress, params.channelId)\n return [address, 0] // Return bump as 0 since we don't calculate it here\n}\n\n/**\n * Derive channel PDA (for enhanced channels)\n * Pattern: ['channel', channelId]\n */\nexport async function deriveChannelPda(\n programId: Address,\n channelId: string\n): Promise<Address> {\n const [address] = await getProgramDerivedAddress({\n programAddress: programId,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([\n 99, 104, 97, 110, 110, 101, 108\n ])), // 'channel'\n getUtf8Encoder().encode(channelId)\n ]\n })\n return address\n}\n\n/**\n * Derive A2A message PDA\n * Pattern: ['a2a_message', session, session.created_at]\n * NOTE: Fixed to match smart contract expectation - uses session.created_at as little-endian bytes\n */\nexport async function deriveA2AMessagePda(\n programId: Address,\n session: Address,\n sessionCreatedAt: bigint // Changed from messageId to sessionCreatedAt\n): Promise<Address> {\n // Convert sessionCreatedAt to little-endian bytes (8 bytes) to match smart contract expectation\n const createdAtBytes = new Uint8Array(8)\n const dataView = new DataView(createdAtBytes.buffer)\n dataView.setBigInt64(0, sessionCreatedAt, true) // little-endian\n \n const [address] = await getProgramDerivedAddress({\n programAddress: programId,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([\n 97, 50, 97, 95, 109, 101, 115, 115, 97, 103, 101\n ])), // 'a2a_message'\n getAddressEncoder().encode(session),\n createdAtBytes // Fixed: use raw little-endian bytes instead of U64 encoder\n ]\n })\n \n return address\n}\n\n/**\n * Derive user registry PDA\n * Pattern: ['user_registry', signer]\n * NOTE: Fixed to match smart contract expectations - includes signer address\n */\nexport async function deriveUserRegistryPda(\n programId: Address,\n signer: Address\n): Promise<Address> {\n const [address] = await getProgramDerivedAddress({\n programAddress: programId,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([\n 117, 115, 101, 114, 95, 114, 101, 103, 105, 115, 116, 114, 121\n ])), // 'user_registry'\n getAddressEncoder().encode(signer)\n ]\n })\n return address\n}\n\n/**\n * Derive service purchase PDA\n * Pattern: ['service_purchase', serviceListing, buyer]\n */\nexport async function deriveServicePurchasePda(\n programId: Address,\n serviceListing: Address,\n buyer: Address\n): Promise<Address> {\n const [address] = await getProgramDerivedAddress({\n programAddress: programId,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([\n 115, 101, 114, 118, 105, 99, 101, 95, 112, 117, 114, 99, 104, 97, 115, 101\n ])), // 'service_purchase'\n getAddressEncoder().encode(serviceListing),\n getAddressEncoder().encode(buyer)\n ]\n })\n return address\n}\n\n/**\n * Derive agent verification PDA\n * Pattern: ['agent_verification', agent, verifier]\n */\nexport async function deriveAgentVerificationPda(\n programId: Address,\n agent: Address,\n verifier: Address\n): Promise<Address> {\n const [address] = await getProgramDerivedAddress({\n programAddress: programId,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([\n 97, 103, 101, 110, 116, 95, 118, 101, 114, 105, 102, 105, 99, 97, 116, 105, 111, 110\n ])), // 'agent_verification'\n getAddressEncoder().encode(agent),\n getAddressEncoder().encode(verifier)\n ]\n })\n return address\n}\n\n/**\n * Derive replication template PDA\n * Pattern: ['replication_template', sourceAgent]\n */\nexport async function deriveReplicationTemplatePda(\n programId: Address,\n sourceAgent: Address\n): Promise<Address> {\n const [address] = await getProgramDerivedAddress({\n programAddress: programId,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([\n 114, 101, 112, 108, 105, 99, 97, 116, 105, 111, 110, 95, 116, 101, 109, 112, 108, 97, 116, 101\n ])), // 'replication_template'\n getAddressEncoder().encode(sourceAgent)\n ]\n })\n return address\n}\n\n/**\n * Derive replication record PDA\n * Pattern: ['replication_record', replicationTemplate, buyer]\n */\nexport async function deriveReplicationRecordPda(\n programId: Address,\n replicationTemplate: Address,\n buyer: Address\n): Promise<Address> {\n const [address] = await getProgramDerivedAddress({\n programAddress: programId,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([\n 114, 101, 112, 108, 105, 99, 97, 116, 105, 111, 110, 95, 114, 101, 99, 111, 114, 100\n ])), // 'replication_record'\n getAddressEncoder().encode(replicationTemplate),\n getAddressEncoder().encode(buyer)\n ]\n })\n return address\n}\n\n/**\n * Derive agent tree config PDA for compressed agents\n * Pattern: ['agent_tree_config', signer]\n */\nexport async function deriveAgentTreeConfigPda(\n programId: Address,\n signer: Address\n): Promise<Address> {\n const [address] = await getProgramDerivedAddress({\n programAddress: programId,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([\n 97, 103, 101, 110, 116, 95, 116, 114, 101, 101, 95, 99, 111, 110, 102, 105, 103\n ])), // 'agent_tree_config'\n getAddressEncoder().encode(signer)\n ]\n })\n return address\n}\n\n/**\n * Generic PDA finder for custom use cases\n * Pattern: seeds array with automatic encoding\n */\nexport async function findProgramDerivedAddress(\n seeds: (string | Address | Uint8Array)[],\n programId: Address\n): Promise<[Address, number]> {\n const encodedSeeds = seeds.map(seed => {\n if (typeof seed === 'string') {\n return getUtf8Encoder().encode(seed)\n } else if (typeof seed === 'object' && seed.constructor === Uint8Array) {\n return seed\n } else {\n // Assume it's an Address\n return getAddressEncoder().encode(seed as unknown as Address)\n }\n })\n\n const result = await getProgramDerivedAddress({\n programAddress: programId,\n seeds: encodedSeeds\n })\n return [result[0], result[1]]\n}\n\n/**\n * Derive work order PDA\n * Pattern: ['work_order', client, orderId]\n */\nexport async function deriveWorkOrderPDA(\n client: Address,\n orderId: bigint,\n programId: Address\n): Promise<[Address, number]> {\n const seeds = [\n getBytesEncoder().encode(new Uint8Array([119, 111, 114, 107, 95, 111, 114, 100, 101, 114])), // 'work_order'\n getAddressEncoder().encode(client),\n getU64Encoder().encode(orderId)\n ]\n \n const result = await getProgramDerivedAddress({\n programAddress: programId,\n seeds\n })\n \n // getProgramDerivedAddress returns a tuple\n return [result[0], result[1]]\n}\n\n/**\n * Derive work delivery PDA\n * Pattern: ['work_delivery', workOrder]\n */\nexport async function deriveWorkDeliveryPDA(\n workOrder: Address,\n programId: Address\n): Promise<[Address, number]> {\n const seeds = [\n getBytesEncoder().encode(new Uint8Array([119, 111, 114, 107, 95, 100, 101, 108, 105, 118, 101, 114, 121])), // 'work_delivery'\n getAddressEncoder().encode(workOrder)\n ]\n \n const result = await getProgramDerivedAddress({\n programAddress: programId,\n seeds\n })\n \n // getProgramDerivedAddress returns a tuple\n return [result[0], result[1]]\n}\n\n/**\n * Derive escrow PDA (original function - deprecated)\n * Pattern: ['escrow', workOrder]\n */\nexport async function deriveEscrowPDAOriginal(\n workOrder: Address,\n programId: Address\n): Promise<[Address, number]> {\n const seeds = [\n getBytesEncoder().encode(new Uint8Array([101, 115, 99, 114, 111, 119])), // 'escrow'\n getAddressEncoder().encode(workOrder)\n ]\n \n const result = await getProgramDerivedAddress({\n programAddress: programId,\n seeds\n })\n \n // getProgramDerivedAddress returns a tuple\n return [result[0], result[1]]\n}\n\n/**\n * Derive escrow PDA (SDK compatible version)\n * Pattern: ['escrow', escrowId/taskId]\n */\nexport async function deriveEscrowPDA(params: {\n client: Address\n provider: Address\n escrowId: string\n programAddress: Address\n}): Promise<[Address, number]> {\n // The Rust program uses ['escrow', task_id.as_bytes()]\n // The escrowId parameter is used as the task_id\n const seeds = [\n getBytesEncoder().encode(new Uint8Array([101, 115, 99, 114, 111, 119])), // 'escrow'\n getUtf8Encoder().encode(params.escrowId)\n ]\n \n const result = await getProgramDerivedAddress({\n programAddress: params.programAddress,\n seeds\n })\n \n // getProgramDerivedAddress returns a tuple\n return [result[0], result[1]]\n}\n\n/**\n * Derive escrow PDA (simple version for EscrowModule)\n * Pattern: ['escrow', buyer, seller, nonce]\n */\nexport async function deriveEscrowPda(\n programId: Address,\n buyer: Address,\n seller: Address,\n nonce: number\n): Promise<Address> {\n // Convert nonce to little-endian bytes (8 bytes)\n const nonceBytes = new Uint8Array(8)\n const dataView = new DataView(nonceBytes.buffer)\n dataView.setUint32(0, nonce, true) // little-endian, use 4 bytes for number\n \n const [address] = await getProgramDerivedAddress({\n programAddress: programId,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([101, 115, 99, 114, 111, 119])), // 'escrow'\n getAddressEncoder().encode(buyer),\n getAddressEncoder().encode(seller),\n nonceBytes.slice(0, 4) // Only use 4 bytes for the nonce\n ]\n })\n return address\n}\n\n/**\n * Derive associated token account PDA\n * Pattern: [wallet, TOKEN_PROGRAM_ID, mint]\n */\nexport async function deriveTokenAccountPda(\n wallet: Address,\n mint: Address\n): Promise<Address> {\n // Associated Token Account program ID\n const ASSOCIATED_TOKEN_PROGRAM_ID = 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL' as Address\n // Token program ID \n const TOKEN_PROGRAM_ID = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA' as Address\n \n const [address] = await getProgramDerivedAddress({\n programAddress: ASSOCIATED_TOKEN_PROGRAM_ID,\n seeds: [\n getAddressEncoder().encode(wallet),\n getAddressEncoder().encode(TOKEN_PROGRAM_ID),\n getAddressEncoder().encode(mint)\n ]\n })\n return address\n}\n\n/**\n * Derive auction PDA\n * Pattern: ['auction', serviceListing]\n */\nexport async function deriveAuctionPda(\n programId: Address,\n serviceListing: Address\n): Promise<Address> {\n const [address] = await getProgramDerivedAddress({\n programAddress: programId,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([\n 97, 117, 99, 116, 105, 111, 110 // 'auction'\n ])),\n getAddressEncoder().encode(serviceListing)\n ]\n })\n return address\n}\n\n/**\n * Derive message PDA\n * Pattern: ['message', channel, nonce]\n */\nexport async function deriveMessagePda(\n programId: Address,\n channel: Address,\n nonce: number\n): Promise<Address> {\n // Convert nonce to little-endian bytes (4 bytes)\n const nonceBytes = new Uint8Array(4)\n const dataView = new DataView(nonceBytes.buffer)\n dataView.setUint32(0, nonce, true) // little-endian\n \n const [address] = await getProgramDerivedAddress({\n programAddress: programId,\n seeds: [\n getBytesEncoder().encode(new Uint8Array([\n 109, 101, 115, 115, 97, 103, 101 // 'message'\n ])),\n getAddressEncoder().encode(channel),\n nonceBytes\n ]\n })\n return address\n}"]}
|