@heemankv/sigints-sdk 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +206 -0
- package/dist/backend.d.ts +319 -0
- package/dist/backend.d.ts.map +1 -0
- package/dist/backend.js +306 -0
- package/dist/backend.js.map +1 -0
- package/dist/crypto.d.ts +16 -0
- package/dist/crypto.d.ts.map +1 -0
- package/dist/crypto.js +61 -0
- package/dist/crypto.js.map +1 -0
- package/dist/index.d.ts +134 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +361 -0
- package/dist/index.js.map +1 -0
- package/dist/jetstream.d.ts +22 -0
- package/dist/jetstream.d.ts.map +1 -0
- package/dist/jetstream.js +113 -0
- package/dist/jetstream.js.map +1 -0
- package/dist/jetstream.proto +101 -0
- package/dist/publish.d.ts +32 -0
- package/dist/publish.d.ts.map +1 -0
- package/dist/publish.js +139 -0
- package/dist/publish.js.map +1 -0
- package/dist/solana/constants.d.ts +3 -0
- package/dist/solana/constants.d.ts.map +1 -0
- package/dist/solana/constants.js +8 -0
- package/dist/solana/constants.js.map +1 -0
- package/dist/solana/index.d.ts +7 -0
- package/dist/solana/index.d.ts.map +1 -0
- package/dist/solana/index.js +6 -0
- package/dist/solana/index.js.map +1 -0
- package/dist/solana/recordSignal.d.ts +23 -0
- package/dist/solana/recordSignal.d.ts.map +1 -0
- package/dist/solana/recordSignal.js +21 -0
- package/dist/solana/recordSignal.js.map +1 -0
- package/dist/solana/shared.d.ts +5 -0
- package/dist/solana/shared.d.ts.map +1 -0
- package/dist/solana/shared.js +27 -0
- package/dist/solana/shared.js.map +1 -0
- package/dist/solana/streamRegistry.d.ts +41 -0
- package/dist/solana/streamRegistry.d.ts.map +1 -0
- package/dist/solana/streamRegistry.js +103 -0
- package/dist/solana/streamRegistry.js.map +1 -0
- package/dist/solana/subscription.d.ts +77 -0
- package/dist/solana/subscription.d.ts.map +1 -0
- package/dist/solana/subscription.js +237 -0
- package/dist/solana/subscription.js.map +1 -0
- package/dist/solana/tiers.d.ts +9 -0
- package/dist/solana/tiers.d.ts.map +1 -0
- package/dist/solana/tiers.js +13 -0
- package/dist/solana/tiers.js.map +1 -0
- package/dist/tradeIntent.d.ts +21 -0
- package/dist/tradeIntent.d.ts.map +1 -0
- package/dist/tradeIntent.js +95 -0
- package/dist/tradeIntent.js.map +1 -0
- package/dist/transactions.d.ts +89 -0
- package/dist/transactions.d.ts.map +1 -0
- package/dist/transactions.js +118 -0
- package/dist/transactions.js.map +1 -0
- package/package.json +32 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAiB,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,cAAc,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,SAAS,CAAC;IACrB,uBAAuB,EAAE,SAAS,CAAC;IACnC,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,QAAQ,EAAE,cAAc,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,SAAS,EAAE,SAAS,CAAC;IACrB,uBAAuB,EAAE,SAAS,CAAC;IACnC,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,QAAQ,EAAE,cAAc,CAAC;CAC1B,CAAC;AAIF,wBAAsB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC,CAkB1G;AAED,wBAAsB,4BAA4B,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAmD9G;AAED,wBAAsB,qCAAqC,CACzD,MAAM,EAAE,2BAA2B,GAClC,OAAO,CAAC,sBAAsB,CAAC,CAwDjC;AAED,wBAAsB,eAAe,CACnC,uBAAuB,EAAE,SAAS,EAClC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,SAAS,CAAC,CAMpB"}
|
package/dist/publish.js
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { PublicKey, SystemProgram, TransactionInstruction } from "@solana/web3.js";
|
|
2
|
+
const ZERO_32 = new Uint8Array(32);
|
|
3
|
+
export async function prepareSignal(backendUrl, input) {
|
|
4
|
+
const payload = {
|
|
5
|
+
streamId: input.streamId,
|
|
6
|
+
tierId: input.tierId,
|
|
7
|
+
visibility: input.visibility ?? "private",
|
|
8
|
+
plaintextBase64: encodeBase64(input.plaintext),
|
|
9
|
+
};
|
|
10
|
+
const res = await fetch(`${backendUrl.replace(/\/$/, "")}/signals/prepare`, {
|
|
11
|
+
method: "POST",
|
|
12
|
+
headers: { "content-type": "application/json" },
|
|
13
|
+
body: JSON.stringify(payload),
|
|
14
|
+
});
|
|
15
|
+
if (!res.ok) {
|
|
16
|
+
const text = await res.text();
|
|
17
|
+
throw new Error(`signal prepare failed (${res.status}): ${text}`);
|
|
18
|
+
}
|
|
19
|
+
const data = (await res.json());
|
|
20
|
+
return data.metadata;
|
|
21
|
+
}
|
|
22
|
+
export async function buildRecordSignalInstruction(params) {
|
|
23
|
+
const streamPubkey = params.streamPubkey ??
|
|
24
|
+
(params.streamId
|
|
25
|
+
? await deriveStreamPda(params.streamRegistryProgramId, params.streamId)
|
|
26
|
+
: null);
|
|
27
|
+
if (!streamPubkey) {
|
|
28
|
+
throw new Error("streamPubkey or streamId is required");
|
|
29
|
+
}
|
|
30
|
+
const signalHash = toBytes32(params.metadata.signalHash, "signalHash");
|
|
31
|
+
const signalPointerHash = toBytes32(await sha256Hex(params.metadata.signalPointer), "signalPointerHash");
|
|
32
|
+
const keyboxHash = params.metadata.keyboxHash
|
|
33
|
+
? toBytes32(params.metadata.keyboxHash, "keyboxHash")
|
|
34
|
+
: ZERO_32;
|
|
35
|
+
const keyboxPointerHash = params.metadata.keyboxPointer
|
|
36
|
+
? toBytes32(await sha256Hex(params.metadata.keyboxPointer), "keyboxPointerHash")
|
|
37
|
+
: ZERO_32;
|
|
38
|
+
const discriminator = await anchorDiscriminator("record_signal");
|
|
39
|
+
const data = new Uint8Array(8 + 32 + 32 + 32 + 32);
|
|
40
|
+
data.set(discriminator, 0);
|
|
41
|
+
data.set(signalHash, 8);
|
|
42
|
+
data.set(signalPointerHash, 40);
|
|
43
|
+
data.set(keyboxHash, 72);
|
|
44
|
+
data.set(keyboxPointerHash, 104);
|
|
45
|
+
const [signalPda] = PublicKey.findProgramAddressSync([Buffer.from("signal_latest"), streamPubkey.toBuffer()], params.programId);
|
|
46
|
+
const [streamState] = PublicKey.findProgramAddressSync([Buffer.from("stream_state"), streamPubkey.toBuffer()], params.programId);
|
|
47
|
+
return new TransactionInstruction({
|
|
48
|
+
programId: params.programId,
|
|
49
|
+
keys: [
|
|
50
|
+
{ pubkey: signalPda, isSigner: false, isWritable: true },
|
|
51
|
+
{ pubkey: streamPubkey, isSigner: false, isWritable: false },
|
|
52
|
+
{ pubkey: params.streamRegistryProgramId, isSigner: false, isWritable: false },
|
|
53
|
+
{ pubkey: streamState, isSigner: false, isWritable: true },
|
|
54
|
+
{ pubkey: params.authority, isSigner: true, isWritable: true },
|
|
55
|
+
{ pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
|
|
56
|
+
],
|
|
57
|
+
data: Buffer.from(data),
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
export async function buildRecordSignalDelegatedInstruction(params) {
|
|
61
|
+
const streamPubkey = params.streamPubkey ??
|
|
62
|
+
(params.streamId
|
|
63
|
+
? await deriveStreamPda(params.streamRegistryProgramId, params.streamId)
|
|
64
|
+
: null);
|
|
65
|
+
if (!streamPubkey) {
|
|
66
|
+
throw new Error("streamPubkey or streamId is required");
|
|
67
|
+
}
|
|
68
|
+
const signalHash = toBytes32(params.metadata.signalHash, "signalHash");
|
|
69
|
+
const signalPointerHash = toBytes32(await sha256Hex(params.metadata.signalPointer), "signalPointerHash");
|
|
70
|
+
const keyboxHash = params.metadata.keyboxHash
|
|
71
|
+
? toBytes32(params.metadata.keyboxHash, "keyboxHash")
|
|
72
|
+
: ZERO_32;
|
|
73
|
+
const keyboxPointerHash = params.metadata.keyboxPointer
|
|
74
|
+
? toBytes32(await sha256Hex(params.metadata.keyboxPointer), "keyboxPointerHash")
|
|
75
|
+
: ZERO_32;
|
|
76
|
+
const discriminator = await anchorDiscriminator("record_signal_delegated");
|
|
77
|
+
const data = new Uint8Array(8 + 32 + 32 + 32 + 32);
|
|
78
|
+
data.set(discriminator, 0);
|
|
79
|
+
data.set(signalHash, 8);
|
|
80
|
+
data.set(signalPointerHash, 40);
|
|
81
|
+
data.set(keyboxHash, 72);
|
|
82
|
+
data.set(keyboxPointerHash, 104);
|
|
83
|
+
const [signalPda] = PublicKey.findProgramAddressSync([Buffer.from("signal_latest"), streamPubkey.toBuffer()], params.programId);
|
|
84
|
+
const [streamState] = PublicKey.findProgramAddressSync([Buffer.from("stream_state"), streamPubkey.toBuffer()], params.programId);
|
|
85
|
+
const [publisherDelegate] = PublicKey.findProgramAddressSync([Buffer.from("publisher"), streamPubkey.toBuffer(), params.publisher.toBuffer()], params.streamRegistryProgramId);
|
|
86
|
+
return new TransactionInstruction({
|
|
87
|
+
programId: params.programId,
|
|
88
|
+
keys: [
|
|
89
|
+
{ pubkey: signalPda, isSigner: false, isWritable: true },
|
|
90
|
+
{ pubkey: streamPubkey, isSigner: false, isWritable: false },
|
|
91
|
+
{ pubkey: params.streamRegistryProgramId, isSigner: false, isWritable: false },
|
|
92
|
+
{ pubkey: streamState, isSigner: false, isWritable: true },
|
|
93
|
+
{ pubkey: publisherDelegate, isSigner: false, isWritable: false },
|
|
94
|
+
{ pubkey: params.publisher, isSigner: true, isWritable: true },
|
|
95
|
+
{ pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
|
|
96
|
+
],
|
|
97
|
+
data: Buffer.from(data),
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
export async function deriveStreamPda(streamRegistryProgramId, streamId) {
|
|
101
|
+
const streamIdBytes = await sha256Bytes(streamId);
|
|
102
|
+
return PublicKey.findProgramAddressSync([Buffer.from("stream"), Buffer.from(streamIdBytes)], streamRegistryProgramId)[0];
|
|
103
|
+
}
|
|
104
|
+
async function sha256Bytes(input) {
|
|
105
|
+
const bytes = new TextEncoder().encode(input);
|
|
106
|
+
if (!globalThis.crypto?.subtle) {
|
|
107
|
+
throw new Error("WebCrypto not available for SHA-256");
|
|
108
|
+
}
|
|
109
|
+
const hash = await globalThis.crypto.subtle.digest("SHA-256", bytes.buffer);
|
|
110
|
+
return new Uint8Array(hash);
|
|
111
|
+
}
|
|
112
|
+
async function sha256Hex(input) {
|
|
113
|
+
const bytes = await sha256Bytes(input);
|
|
114
|
+
return Array.from(bytes)
|
|
115
|
+
.map((b) => b.toString(16).padStart(2, "0"))
|
|
116
|
+
.join("");
|
|
117
|
+
}
|
|
118
|
+
async function anchorDiscriminator(ixName) {
|
|
119
|
+
const hash = await sha256Bytes(`global:${ixName}`);
|
|
120
|
+
return hash.slice(0, 8);
|
|
121
|
+
}
|
|
122
|
+
function toBytes32(hex, label) {
|
|
123
|
+
const clean = hex.trim().toLowerCase();
|
|
124
|
+
if (!/^[0-9a-f]+$/.test(clean) || clean.length !== 64) {
|
|
125
|
+
throw new Error(`invalid ${label} hex`);
|
|
126
|
+
}
|
|
127
|
+
const bytes = new Uint8Array(32);
|
|
128
|
+
for (let i = 0; i < 32; i += 1) {
|
|
129
|
+
bytes[i] = parseInt(clean.slice(i * 2, i * 2 + 2), 16);
|
|
130
|
+
}
|
|
131
|
+
return bytes;
|
|
132
|
+
}
|
|
133
|
+
function encodeBase64(input) {
|
|
134
|
+
if (typeof btoa === "function") {
|
|
135
|
+
return btoa(unescape(encodeURIComponent(input)));
|
|
136
|
+
}
|
|
137
|
+
return Buffer.from(input, "utf8").toString("base64");
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=publish.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/solana/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAEnD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGrD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/solana/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAA2B;IACtD,sBAAsB,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAA2B;IACxD,KAAK,EAAE,CAAC;IACR,QAAQ,EAAE,CAAC;CACZ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from "./constants";
|
|
2
|
+
export * from "./shared";
|
|
3
|
+
export * from "./tiers";
|
|
4
|
+
export { deriveStreamIdBytes, deriveStreamPda, buildTiersHash, deriveTierConfigPda, buildCreateStreamInstruction, buildUpsertTierInstruction, derivePublisherDelegatePda, buildGrantPublisherInstruction, buildRevokePublisherInstruction, } from "./streamRegistry";
|
|
5
|
+
export { defaultExpiryMs, encodeSubscribeData, deriveSubscriptionPda, deriveSubscriptionMint, deriveSubscriberKeyPda, deriveWalletKeyPda, deriveSubscriptionKeyPda, hasRegisteredWalletKey, hasRegisteredSubscriptionKey, deriveTierConfigPda as deriveTierConfigPdaFromHash, deriveStreamState, buildSubscribeInstruction, buildRegisterKeyInstruction, buildRegisterWalletKeyInstruction, buildRegisterSubscriptionKeyInstruction, resolvePricingType, resolveEvidenceLevel, decodeSubscriptionAccount, decodeSubscriptionKeyAccount, } from "./subscription";
|
|
6
|
+
export type { DecodedSubscription, DecodedSubscriptionKey } from "./subscription";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/solana/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,4BAA4B,EAC5B,0BAA0B,EAC1B,0BAA0B,EAC1B,8BAA8B,EAC9B,+BAA+B,GAChC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,EACxB,sBAAsB,EACtB,4BAA4B,EAC5B,mBAAmB,IAAI,2BAA2B,EAClD,iBAAiB,EACjB,yBAAyB,EACzB,2BAA2B,EAC3B,iCAAiC,EACjC,uCAAuC,EACvC,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,EACzB,4BAA4B,GAC7B,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from "./constants";
|
|
2
|
+
export * from "./shared";
|
|
3
|
+
export * from "./tiers";
|
|
4
|
+
export { deriveStreamIdBytes, deriveStreamPda, buildTiersHash, deriveTierConfigPda, buildCreateStreamInstruction, buildUpsertTierInstruction, derivePublisherDelegatePda, buildGrantPublisherInstruction, buildRevokePublisherInstruction, } from "./streamRegistry";
|
|
5
|
+
export { defaultExpiryMs, encodeSubscribeData, deriveSubscriptionPda, deriveSubscriptionMint, deriveSubscriberKeyPda, deriveWalletKeyPda, deriveSubscriptionKeyPda, hasRegisteredWalletKey, hasRegisteredSubscriptionKey, deriveTierConfigPda as deriveTierConfigPdaFromHash, deriveStreamState, buildSubscribeInstruction, buildRegisterKeyInstruction, buildRegisterWalletKeyInstruction, buildRegisterSubscriptionKeyInstruction, resolvePricingType, resolveEvidenceLevel, decodeSubscriptionAccount, decodeSubscriptionKeyAccount, } from "./subscription";
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/solana/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,4BAA4B,EAC5B,0BAA0B,EAC1B,0BAA0B,EAC1B,8BAA8B,EAC9B,+BAA+B,GAChC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,EACxB,sBAAsB,EACtB,4BAA4B,EAC5B,mBAAmB,IAAI,2BAA2B,EAClD,iBAAiB,EACjB,yBAAyB,EACzB,2BAA2B,EAC3B,iCAAiC,EACjC,uCAAuC,EACvC,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,EACzB,4BAA4B,GAC7B,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export type RecordSignalParams = {
|
|
2
|
+
streamPubkey: string;
|
|
3
|
+
payerPubkey: string;
|
|
4
|
+
signalHash: string;
|
|
5
|
+
signalPointerHash: string;
|
|
6
|
+
keyboxHash: string;
|
|
7
|
+
keyboxPointerHash: string;
|
|
8
|
+
createdAt: number;
|
|
9
|
+
};
|
|
10
|
+
export type RecordSignalInstruction = {
|
|
11
|
+
programId: string;
|
|
12
|
+
accounts: {
|
|
13
|
+
signalPda: string;
|
|
14
|
+
stream: string;
|
|
15
|
+
payer: string;
|
|
16
|
+
systemProgram: string;
|
|
17
|
+
};
|
|
18
|
+
data: RecordSignalParams;
|
|
19
|
+
pdaSeeds: string[];
|
|
20
|
+
};
|
|
21
|
+
export declare function buildRecordSignalInstruction(params: RecordSignalParams): RecordSignalInstruction;
|
|
22
|
+
export declare function recordSignalStub(params: RecordSignalParams): RecordSignalInstruction;
|
|
23
|
+
//# sourceMappingURL=recordSignal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recordSignal.d.ts","sourceRoot":"","sources":["../../src/solana/recordSignal.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE;QACR,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAGF,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,kBAAkB,GAAG,uBAAuB,CAYhG;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,kBAAkB,2BAK1D"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// This is a stub. It outlines what needs to be sent on-chain without binding to a specific Solana client.
|
|
2
|
+
export function buildRecordSignalInstruction(params) {
|
|
3
|
+
return {
|
|
4
|
+
programId: "TODO:subscription_royalty_program_id",
|
|
5
|
+
accounts: {
|
|
6
|
+
signalPda: "TODO:derive_pda('signal_latest', stream)",
|
|
7
|
+
stream: params.streamPubkey,
|
|
8
|
+
payer: params.payerPubkey,
|
|
9
|
+
systemProgram: "11111111111111111111111111111111",
|
|
10
|
+
},
|
|
11
|
+
data: params,
|
|
12
|
+
pdaSeeds: ["signal_latest", params.streamPubkey],
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export function recordSignalStub(params) {
|
|
16
|
+
const ix = buildRecordSignalInstruction(params);
|
|
17
|
+
// eslint-disable-next-line no-console
|
|
18
|
+
console.log("RecordSignal stub", ix);
|
|
19
|
+
return ix;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=recordSignal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recordSignal.js","sourceRoot":"","sources":["../../src/solana/recordSignal.ts"],"names":[],"mappings":"AAsBA,0GAA0G;AAC1G,MAAM,UAAU,4BAA4B,CAAC,MAA0B;IACrE,OAAO;QACL,SAAS,EAAE,sCAAsC;QACjD,QAAQ,EAAE;YACR,SAAS,EAAE,0CAA0C;YACrD,MAAM,EAAE,MAAM,CAAC,YAAY;YAC3B,KAAK,EAAE,MAAM,CAAC,WAAW;YACzB,aAAa,EAAE,kCAAkC;SAClD;QACD,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,CAAC,eAAe,EAAE,MAAM,CAAC,YAAY,CAAC;KACjD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAA0B;IACzD,MAAM,EAAE,GAAG,4BAA4B,CAAC,MAAM,CAAC,CAAC;IAChD,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IACrC,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function sha256Bytes(input: string): Promise<Uint8Array>;
|
|
2
|
+
export declare function writeBigInt64LE(buffer: Uint8Array, value: bigint, offset: number): void;
|
|
3
|
+
export declare function writeUint32LE(buffer: Uint8Array, value: number, offset: number): void;
|
|
4
|
+
export declare function toHex(bytes: Uint8Array): string;
|
|
5
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/solana/shared.ts"],"names":[],"mappings":"AAAA,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAOpE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAMhF;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAK9E;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAI/C"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export async function sha256Bytes(input) {
|
|
2
|
+
const bytes = new TextEncoder().encode(input);
|
|
3
|
+
if (!globalThis.crypto?.subtle) {
|
|
4
|
+
throw new Error("WebCrypto not available for SHA-256");
|
|
5
|
+
}
|
|
6
|
+
const hash = await globalThis.crypto.subtle.digest("SHA-256", bytes.buffer);
|
|
7
|
+
return new Uint8Array(hash);
|
|
8
|
+
}
|
|
9
|
+
export function writeBigInt64LE(buffer, value, offset) {
|
|
10
|
+
let v = value;
|
|
11
|
+
for (let i = 0; i < 8; i += 1) {
|
|
12
|
+
buffer[offset + i] = Number(v & 0xffn);
|
|
13
|
+
v >>= 8n;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export function writeUint32LE(buffer, value, offset) {
|
|
17
|
+
buffer[offset] = value & 0xff;
|
|
18
|
+
buffer[offset + 1] = (value >> 8) & 0xff;
|
|
19
|
+
buffer[offset + 2] = (value >> 16) & 0xff;
|
|
20
|
+
buffer[offset + 3] = (value >> 24) & 0xff;
|
|
21
|
+
}
|
|
22
|
+
export function toHex(bytes) {
|
|
23
|
+
return Array.from(bytes)
|
|
24
|
+
.map((b) => b.toString(16).padStart(2, "0"))
|
|
25
|
+
.join("");
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/solana/shared.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAa;IAC7C,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,MAAqB,CAAC,CAAC;IAC3F,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAkB,EAAE,KAAa,EAAE,MAAc;IAC/E,IAAI,CAAC,GAAG,KAAK,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;QACvC,CAAC,KAAK,EAAE,CAAC;IACX,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAkB,EAAE,KAAa,EAAE,MAAc;IAC7E,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;IAC9B,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IACzC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IAC1C,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,KAAiB;IACrC,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;SACrB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC3C,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { PublicKey, TransactionInstruction } from "@solana/web3.js";
|
|
2
|
+
import { type TierInput } from "./tiers";
|
|
3
|
+
export declare function deriveStreamIdBytes(streamId: string): Promise<Uint8Array>;
|
|
4
|
+
export declare function deriveStreamPda(programId: PublicKey, streamId: string): Promise<PublicKey>;
|
|
5
|
+
export declare function buildTiersHash(tiers: TierInput[]): Promise<Uint8Array>;
|
|
6
|
+
export declare function deriveTierConfigPda(programId: PublicKey, stream: PublicKey, tierId: string): Promise<PublicKey>;
|
|
7
|
+
export declare function derivePublisherDelegatePda(programId: PublicKey, stream: PublicKey, agent: PublicKey): PublicKey;
|
|
8
|
+
export declare function buildCreateStreamInstruction(params: {
|
|
9
|
+
programId: PublicKey;
|
|
10
|
+
authority: PublicKey;
|
|
11
|
+
streamId: string;
|
|
12
|
+
tiers: TierInput[];
|
|
13
|
+
dao?: string;
|
|
14
|
+
visibility: "public" | "private";
|
|
15
|
+
}): Promise<{
|
|
16
|
+
instruction: TransactionInstruction;
|
|
17
|
+
streamPda: PublicKey;
|
|
18
|
+
tiersHash: Uint8Array;
|
|
19
|
+
}>;
|
|
20
|
+
export declare function buildUpsertTierInstruction(params: {
|
|
21
|
+
programId: PublicKey;
|
|
22
|
+
authority: PublicKey;
|
|
23
|
+
stream: PublicKey;
|
|
24
|
+
tier: TierInput;
|
|
25
|
+
priceLamports: number;
|
|
26
|
+
quota: number;
|
|
27
|
+
status?: number;
|
|
28
|
+
}): Promise<TransactionInstruction>;
|
|
29
|
+
export declare function buildGrantPublisherInstruction(params: {
|
|
30
|
+
programId: PublicKey;
|
|
31
|
+
stream: PublicKey;
|
|
32
|
+
authority: PublicKey;
|
|
33
|
+
agent: PublicKey;
|
|
34
|
+
}): Promise<TransactionInstruction>;
|
|
35
|
+
export declare function buildRevokePublisherInstruction(params: {
|
|
36
|
+
programId: PublicKey;
|
|
37
|
+
stream: PublicKey;
|
|
38
|
+
authority: PublicKey;
|
|
39
|
+
agent: PublicKey;
|
|
40
|
+
}): Promise<TransactionInstruction>;
|
|
41
|
+
//# sourceMappingURL=streamRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streamRegistry.d.ts","sourceRoot":"","sources":["../../src/solana/streamRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAiB,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEnF,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,SAAS,CAAC;AAMzD,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAE/E;AAED,wBAAsB,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAGhG;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAG5E;AAED,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,SAAS,CAAC,CAMpB;AAED,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,SAAS,GACf,SAAS,CAKX;AAED,wBAAsB,4BAA4B,CAAC,MAAM,EAAE;IACzD,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,QAAQ,GAAG,SAAS,CAAC;CAClC,GAAG,OAAO,CAAC;IAAE,WAAW,EAAE,sBAAsB,CAAC;IAAC,SAAS,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,UAAU,CAAA;CAAE,CAAC,CAyBhG;AAED,wBAAsB,0BAA0B,CAAC,MAAM,EAAE;IACvD,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAwBlC;AAED,wBAAsB,8BAA8B,CAAC,MAAM,EAAE;IAC3D,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,SAAS,CAAC;CAClB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAclC;AAED,wBAAsB,+BAA+B,CAAC,MAAM,EAAE;IAC5D,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,SAAS,CAAC;CAClB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAalC"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { PublicKey, SystemProgram, TransactionInstruction } from "@solana/web3.js";
|
|
2
|
+
import { Buffer } from "buffer";
|
|
3
|
+
import { buildTiersSeed } from "./tiers";
|
|
4
|
+
import { sha256Bytes, writeBigInt64LE, writeUint32LE } from "./shared";
|
|
5
|
+
const CREATE_STREAM_DISCRIMINATOR = new Uint8Array([71, 188, 111, 127, 108, 40, 229, 158]);
|
|
6
|
+
const UPSERT_TIER_DISCRIMINATOR = new Uint8Array([238, 232, 181, 0, 157, 149, 0, 202]);
|
|
7
|
+
export async function deriveStreamIdBytes(streamId) {
|
|
8
|
+
return sha256Bytes(streamId);
|
|
9
|
+
}
|
|
10
|
+
export async function deriveStreamPda(programId, streamId) {
|
|
11
|
+
const streamIdBytes = await deriveStreamIdBytes(streamId);
|
|
12
|
+
return PublicKey.findProgramAddressSync([Buffer.from("stream"), Buffer.from(streamIdBytes)], programId)[0];
|
|
13
|
+
}
|
|
14
|
+
export async function buildTiersHash(tiers) {
|
|
15
|
+
const seed = buildTiersSeed(tiers);
|
|
16
|
+
return sha256Bytes(seed);
|
|
17
|
+
}
|
|
18
|
+
export async function deriveTierConfigPda(programId, stream, tierId) {
|
|
19
|
+
const tierHash = await sha256Bytes(tierId);
|
|
20
|
+
return PublicKey.findProgramAddressSync([Buffer.from("tier"), stream.toBuffer(), Buffer.from(tierHash)], programId)[0];
|
|
21
|
+
}
|
|
22
|
+
export function derivePublisherDelegatePda(programId, stream, agent) {
|
|
23
|
+
return PublicKey.findProgramAddressSync([Buffer.from("publisher"), stream.toBuffer(), agent.toBuffer()], programId)[0];
|
|
24
|
+
}
|
|
25
|
+
export async function buildCreateStreamInstruction(params) {
|
|
26
|
+
const streamIdBytes = await deriveStreamIdBytes(params.streamId);
|
|
27
|
+
const tiersHash = await buildTiersHash(params.tiers);
|
|
28
|
+
const daoPubkey = params.dao ? new PublicKey(params.dao) : params.authority;
|
|
29
|
+
const visibility = params.visibility === "public" ? 0 : 1;
|
|
30
|
+
const streamPda = PublicKey.findProgramAddressSync([Buffer.from("stream"), Buffer.from(streamIdBytes)], params.programId)[0];
|
|
31
|
+
const data = new Uint8Array(8 + 32 + 32 + 32 + 1);
|
|
32
|
+
data.set(CREATE_STREAM_DISCRIMINATOR, 0);
|
|
33
|
+
data.set(streamIdBytes, 8);
|
|
34
|
+
data.set(tiersHash, 40);
|
|
35
|
+
data.set(daoPubkey.toBytes(), 72);
|
|
36
|
+
data[104] = visibility;
|
|
37
|
+
const instruction = new TransactionInstruction({
|
|
38
|
+
programId: params.programId,
|
|
39
|
+
keys: [
|
|
40
|
+
{ pubkey: streamPda, isSigner: false, isWritable: true },
|
|
41
|
+
{ pubkey: params.authority, isSigner: true, isWritable: true },
|
|
42
|
+
{ pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
|
|
43
|
+
],
|
|
44
|
+
data: Buffer.from(data),
|
|
45
|
+
});
|
|
46
|
+
return { instruction, streamPda, tiersHash };
|
|
47
|
+
}
|
|
48
|
+
export async function buildUpsertTierInstruction(params) {
|
|
49
|
+
const tierHash = await sha256Bytes(params.tier.tierId);
|
|
50
|
+
const tierPda = PublicKey.findProgramAddressSync([Buffer.from("tier"), params.stream.toBuffer(), Buffer.from(tierHash)], params.programId)[0];
|
|
51
|
+
const data = new Uint8Array(8 + 32 + 1 + 1 + 8 + 4 + 1);
|
|
52
|
+
data.set(UPSERT_TIER_DISCRIMINATOR, 0);
|
|
53
|
+
data.set(tierHash, 8);
|
|
54
|
+
data[40] = 1;
|
|
55
|
+
data[41] = params.tier.evidenceLevel === "trust" ? 0 : 1;
|
|
56
|
+
writeBigInt64LE(data, BigInt(params.priceLamports), 42);
|
|
57
|
+
writeUint32LE(data, params.quota, 50);
|
|
58
|
+
data[54] = params.status ?? 1;
|
|
59
|
+
return new TransactionInstruction({
|
|
60
|
+
programId: params.programId,
|
|
61
|
+
keys: [
|
|
62
|
+
{ pubkey: params.stream, isSigner: false, isWritable: true },
|
|
63
|
+
{ pubkey: tierPda, isSigner: false, isWritable: true },
|
|
64
|
+
{ pubkey: params.authority, isSigner: true, isWritable: true },
|
|
65
|
+
{ pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
|
|
66
|
+
],
|
|
67
|
+
data: Buffer.from(data),
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
export async function buildGrantPublisherInstruction(params) {
|
|
71
|
+
const discriminator = await anchorDiscriminator("grant_publisher");
|
|
72
|
+
const delegatePda = derivePublisherDelegatePda(params.programId, params.stream, params.agent);
|
|
73
|
+
return new TransactionInstruction({
|
|
74
|
+
programId: params.programId,
|
|
75
|
+
keys: [
|
|
76
|
+
{ pubkey: params.stream, isSigner: false, isWritable: true },
|
|
77
|
+
{ pubkey: params.agent, isSigner: false, isWritable: false },
|
|
78
|
+
{ pubkey: delegatePda, isSigner: false, isWritable: true },
|
|
79
|
+
{ pubkey: params.authority, isSigner: true, isWritable: true },
|
|
80
|
+
{ pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
|
|
81
|
+
],
|
|
82
|
+
data: Buffer.from(discriminator),
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
export async function buildRevokePublisherInstruction(params) {
|
|
86
|
+
const discriminator = await anchorDiscriminator("revoke_publisher");
|
|
87
|
+
const delegatePda = derivePublisherDelegatePda(params.programId, params.stream, params.agent);
|
|
88
|
+
return new TransactionInstruction({
|
|
89
|
+
programId: params.programId,
|
|
90
|
+
keys: [
|
|
91
|
+
{ pubkey: params.stream, isSigner: false, isWritable: true },
|
|
92
|
+
{ pubkey: params.agent, isSigner: false, isWritable: false },
|
|
93
|
+
{ pubkey: delegatePda, isSigner: false, isWritable: true },
|
|
94
|
+
{ pubkey: params.authority, isSigner: true, isWritable: false },
|
|
95
|
+
],
|
|
96
|
+
data: Buffer.from(discriminator),
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
async function anchorDiscriminator(ixName) {
|
|
100
|
+
const hash = await sha256Bytes(`global:${ixName}`);
|
|
101
|
+
return hash.slice(0, 8);
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=streamRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streamRegistry.js","sourceRoot":"","sources":["../../src/solana/streamRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { Connection, type Commitment, PublicKey, TransactionInstruction } from "@solana/web3.js";
|
|
2
|
+
import { Buffer } from "buffer";
|
|
3
|
+
export declare function resolvePricingType(value: string): number;
|
|
4
|
+
export declare function resolveEvidenceLevel(value: string): number;
|
|
5
|
+
export declare function defaultExpiryMs(): number;
|
|
6
|
+
export declare function encodeSubscribeData(params: {
|
|
7
|
+
tierId: string;
|
|
8
|
+
pricingType: number;
|
|
9
|
+
evidenceLevel: number;
|
|
10
|
+
expiresAtMs: number;
|
|
11
|
+
quotaRemaining: number;
|
|
12
|
+
priceLamports: number;
|
|
13
|
+
}): Promise<Uint8Array>;
|
|
14
|
+
export declare function deriveSubscriptionPda(programId: PublicKey, stream: PublicKey, subscriber: PublicKey): PublicKey;
|
|
15
|
+
export declare function deriveSubscriptionMint(programId: PublicKey, stream: PublicKey, subscriber: PublicKey): PublicKey;
|
|
16
|
+
export declare function deriveSubscriberKeyPda(programId: PublicKey, subscription: PublicKey): PublicKey;
|
|
17
|
+
export declare function deriveWalletKeyPda(programId: PublicKey, subscriber: PublicKey): PublicKey;
|
|
18
|
+
export declare function deriveSubscriptionKeyPda(programId: PublicKey, stream: PublicKey, subscriber: PublicKey): PublicKey;
|
|
19
|
+
export declare function hasRegisteredWalletKey(connection: Connection, programId: PublicKey, subscriber: PublicKey, commitment?: Commitment): Promise<boolean>;
|
|
20
|
+
export declare function hasRegisteredSubscriptionKey(connection: Connection, programId: PublicKey, stream: PublicKey, subscriber: PublicKey, commitment?: Commitment): Promise<boolean>;
|
|
21
|
+
export declare function deriveTierConfigPda(streamRegistryProgramId: PublicKey, stream: PublicKey, tierHash: Uint8Array): PublicKey;
|
|
22
|
+
export declare function deriveStreamState(programId: PublicKey, stream: PublicKey): PublicKey;
|
|
23
|
+
export declare function buildSubscribeInstruction(params: {
|
|
24
|
+
programId: PublicKey;
|
|
25
|
+
streamRegistryProgramId: PublicKey;
|
|
26
|
+
stream: PublicKey;
|
|
27
|
+
subscriber: PublicKey;
|
|
28
|
+
tierId: string;
|
|
29
|
+
pricingType: number;
|
|
30
|
+
evidenceLevel: number;
|
|
31
|
+
expiresAtMs: number;
|
|
32
|
+
quotaRemaining: number;
|
|
33
|
+
priceLamports: number;
|
|
34
|
+
maker: PublicKey;
|
|
35
|
+
treasury: PublicKey;
|
|
36
|
+
}): Promise<TransactionInstruction>;
|
|
37
|
+
export declare function buildRegisterKeyInstruction(params: {
|
|
38
|
+
programId: PublicKey;
|
|
39
|
+
stream: PublicKey;
|
|
40
|
+
subscriber: PublicKey;
|
|
41
|
+
encPubKeyBase64: string;
|
|
42
|
+
}): TransactionInstruction;
|
|
43
|
+
export declare function buildRegisterWalletKeyInstruction(params: {
|
|
44
|
+
programId: PublicKey;
|
|
45
|
+
subscriber: PublicKey;
|
|
46
|
+
encPubKeyBase64: string;
|
|
47
|
+
}): TransactionInstruction;
|
|
48
|
+
export declare function buildRegisterSubscriptionKeyInstruction(params: {
|
|
49
|
+
programId: PublicKey;
|
|
50
|
+
stream: PublicKey;
|
|
51
|
+
subscriber: PublicKey;
|
|
52
|
+
encPubKeyBase64: string;
|
|
53
|
+
}): TransactionInstruction;
|
|
54
|
+
export type DecodedSubscription = {
|
|
55
|
+
subscription: string;
|
|
56
|
+
subscriber: string;
|
|
57
|
+
stream: string;
|
|
58
|
+
tierIdHex: string;
|
|
59
|
+
pricingType: number;
|
|
60
|
+
evidenceLevel: number;
|
|
61
|
+
expiresAt: number;
|
|
62
|
+
quotaRemaining: number;
|
|
63
|
+
status: number;
|
|
64
|
+
nftMint: string;
|
|
65
|
+
};
|
|
66
|
+
export type DecodedSubscriptionKey = {
|
|
67
|
+
subscriptionKey: string;
|
|
68
|
+
subscriber: string;
|
|
69
|
+
stream: string;
|
|
70
|
+
encPubkeyRawBase64: string;
|
|
71
|
+
encPubkeyDerBase64: string;
|
|
72
|
+
updatedAt: number;
|
|
73
|
+
bump: number;
|
|
74
|
+
};
|
|
75
|
+
export declare function decodeSubscriptionAccount(pubkey: PublicKey, data: Buffer): DecodedSubscription | null;
|
|
76
|
+
export declare function decodeSubscriptionKeyAccount(pubkey: PublicKey, data: Buffer): DecodedSubscriptionKey | null;
|
|
77
|
+
//# sourceMappingURL=subscription.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscription.d.ts","sourceRoot":"","sources":["../../src/solana/subscription.ts"],"names":[],"mappings":"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"}
|