@socialproof/sub-agents 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/dist/action-registry/canonical.d.ts +6 -0
  2. package/dist/action-registry/canonical.d.ts.map +1 -0
  3. package/dist/action-registry/canonical.js +50 -0
  4. package/dist/action-registry/canonical.js.map +1 -0
  5. package/dist/action-registry/index.d.ts +6 -0
  6. package/dist/action-registry/index.d.ts.map +1 -0
  7. package/dist/action-registry/index.js +6 -0
  8. package/dist/action-registry/index.js.map +1 -0
  9. package/dist/action-registry/production-catalog.d.ts +20 -0
  10. package/dist/action-registry/production-catalog.d.ts.map +1 -0
  11. package/dist/action-registry/production-catalog.js +205 -0
  12. package/dist/action-registry/production-catalog.js.map +1 -0
  13. package/dist/action-registry/production-catalog.test.d.ts +2 -0
  14. package/dist/action-registry/production-catalog.test.d.ts.map +1 -0
  15. package/dist/action-registry/production-catalog.test.js +50 -0
  16. package/dist/action-registry/production-catalog.test.js.map +1 -0
  17. package/dist/action-registry/registry.d.ts +23 -0
  18. package/dist/action-registry/registry.d.ts.map +1 -0
  19. package/dist/action-registry/registry.js +642 -0
  20. package/dist/action-registry/registry.js.map +1 -0
  21. package/dist/action-registry/registry.test.d.ts +2 -0
  22. package/dist/action-registry/registry.test.d.ts.map +1 -0
  23. package/dist/action-registry/registry.test.js +336 -0
  24. package/dist/action-registry/registry.test.js.map +1 -0
  25. package/dist/action-registry/types.d.ts +142 -0
  26. package/dist/action-registry/types.d.ts.map +1 -0
  27. package/dist/action-registry/types.js +38 -0
  28. package/dist/action-registry/types.js.map +1 -0
  29. package/dist/action-registry/validation.d.ts +3 -0
  30. package/dist/action-registry/validation.d.ts.map +1 -0
  31. package/dist/action-registry/validation.js +108 -0
  32. package/dist/action-registry/validation.js.map +1 -0
  33. package/dist/client.d.ts +51 -0
  34. package/dist/client.d.ts.map +1 -0
  35. package/dist/client.js +412 -0
  36. package/dist/client.js.map +1 -0
  37. package/dist/client.test.d.ts +2 -0
  38. package/dist/client.test.d.ts.map +1 -0
  39. package/dist/client.test.js +203 -0
  40. package/dist/client.test.js.map +1 -0
  41. package/dist/contract.d.ts +23 -0
  42. package/dist/contract.d.ts.map +1 -0
  43. package/dist/contract.js +27 -0
  44. package/dist/contract.js.map +1 -0
  45. package/dist/effects.d.ts +11 -0
  46. package/dist/effects.d.ts.map +1 -0
  47. package/dist/effects.js +73 -0
  48. package/dist/effects.js.map +1 -0
  49. package/dist/index.d.ts +7 -0
  50. package/dist/index.d.ts.map +1 -0
  51. package/dist/index.js +7 -0
  52. package/dist/index.js.map +1 -0
  53. package/dist/ptb/helpers.d.ts +11 -0
  54. package/dist/ptb/helpers.d.ts.map +1 -0
  55. package/dist/ptb/helpers.js +26 -0
  56. package/dist/ptb/helpers.js.map +1 -0
  57. package/dist/ptb/index.d.ts +5 -0
  58. package/dist/ptb/index.d.ts.map +1 -0
  59. package/dist/ptb/index.js +5 -0
  60. package/dist/ptb/index.js.map +1 -0
  61. package/dist/ptb/organization.d.ts +22 -0
  62. package/dist/ptb/organization.d.ts.map +1 -0
  63. package/dist/ptb/organization.js +326 -0
  64. package/dist/ptb/organization.js.map +1 -0
  65. package/dist/ptb/post.d.ts +26 -0
  66. package/dist/ptb/post.d.ts.map +1 -0
  67. package/dist/ptb/post.js +233 -0
  68. package/dist/ptb/post.js.map +1 -0
  69. package/dist/ptb/post.test.d.ts +2 -0
  70. package/dist/ptb/post.test.d.ts.map +1 -0
  71. package/dist/ptb/post.test.js +188 -0
  72. package/dist/ptb/post.test.js.map +1 -0
  73. package/dist/ptb/tier1.d.ts +14 -0
  74. package/dist/ptb/tier1.d.ts.map +1 -0
  75. package/dist/ptb/tier1.js +189 -0
  76. package/dist/ptb/tier1.js.map +1 -0
  77. package/dist/signing.d.ts +5 -0
  78. package/dist/signing.d.ts.map +1 -0
  79. package/dist/signing.js +31 -0
  80. package/dist/signing.js.map +1 -0
  81. package/dist/types.d.ts +261 -0
  82. package/dist/types.d.ts.map +1 -0
  83. package/dist/types.js +2 -0
  84. package/dist/types.js.map +1 -0
  85. package/package.json +48 -0
@@ -0,0 +1,203 @@
1
+ import assert from "node:assert/strict";
2
+ import { afterEach, test } from "node:test";
3
+ import { SocialClient } from "./client.js";
4
+ const SUB_AGENT_KEY = "9d61b45de2660bce5d053bd15f8fb0f31c39d45b9b877ebb3d59bb39845de173";
5
+ const OWNER_KEY = "c5b174fb4639c391193a396f8968ae67c08cc90396a40366ed25128cc2fc932c";
6
+ const originalFetch = globalThis.fetch;
7
+ afterEach(() => {
8
+ globalThis.fetch = originalFetch;
9
+ });
10
+ function client() {
11
+ return SocialClient.create({
12
+ key: SUB_AGENT_KEY,
13
+ accountId: "0xabc",
14
+ serverUrl: "http://127.0.0.1:8000",
15
+ });
16
+ }
17
+ test("legacy owner private-key configuration is rejected", () => {
18
+ assert.throws(() => SocialClient.create({
19
+ key: SUB_AGENT_KEY,
20
+ accountId: "0xabc",
21
+ ownerCoSignKey: OWNER_KEY,
22
+ }), /wallet approval flow/);
23
+ });
24
+ test("signed HTTP authentication never forwards private keys", async () => {
25
+ let headers = {};
26
+ globalThis.fetch = (async (_input, init) => {
27
+ headers = Object.fromEntries(Object.entries(init?.headers ?? {}).map(([key, value]) => [
28
+ key.toLowerCase(),
29
+ String(value),
30
+ ]));
31
+ return new Response(JSON.stringify({ ok: true }), { status: 200 });
32
+ });
33
+ await client().signedRequest("GET", "/api/agent/context", {});
34
+ assert.ok(headers["x-public-key"]);
35
+ assert.ok(headers["x-signature"]);
36
+ assert.equal(headers["x-delegate-key"], undefined);
37
+ assert.equal(headers["x-owner-delegate-key"], undefined);
38
+ });
39
+ test("owner-only deletes fail closed without making a request", async () => {
40
+ let called = false;
41
+ globalThis.fetch = (async () => {
42
+ called = true;
43
+ return new Response("{}", { status: 200 });
44
+ });
45
+ await assert.rejects(client().deletePost("0xpost"), /wallet approval flow/);
46
+ assert.equal(called, false);
47
+ });
48
+ test("registered action preparation is authenticated, idempotent, and locally signed", async () => {
49
+ const { Ed25519Keypair } = await import("@socialproof/myso/keypairs/ed25519");
50
+ const signer = Ed25519Keypair.fromSecretKey(Uint8Array.from(Buffer.from(SUB_AGENT_KEY, "hex")));
51
+ const sender = signer.toMySoAddress();
52
+ const digest = "1".repeat(43);
53
+ const requests = [];
54
+ const chain = {
55
+ packageId: "0x50c1",
56
+ usernameRegistryId: "0x1",
57
+ platformRegistryId: "0x2",
58
+ platformObjectId: "0x3",
59
+ blockListRegistryId: "0x4",
60
+ postConfigId: "0x5",
61
+ memoryConfigId: "0x6",
62
+ mydataRegistryId: "0x7",
63
+ clockId: "0x6",
64
+ };
65
+ globalThis.fetch = (async (input, init) => {
66
+ const path = new URL(String(input)).pathname;
67
+ const headers = Object.fromEntries(Object.entries(init?.headers ?? {}).map(([key, value]) => [
68
+ key.toLowerCase(),
69
+ String(value),
70
+ ]));
71
+ requests.push({ path, headers, body: init?.body });
72
+ if (path === "/config") {
73
+ return new Response(JSON.stringify({
74
+ network: "localnet",
75
+ mysoRpcUrl: "http://127.0.0.1:9000",
76
+ socialChain: chain,
77
+ }), { status: 200 });
78
+ }
79
+ if (path === "/api/agent/context") {
80
+ return new Response(JSON.stringify({
81
+ memoryAccountId: "0xabc",
82
+ derivedAddress: sender,
83
+ capabilities: 1024,
84
+ approvalRequiredCapabilities: 0,
85
+ platformScope: null,
86
+ network: "localnet",
87
+ rpcUrl: "http://127.0.0.1:9000",
88
+ packageId: "0x50c1",
89
+ socialChain: chain,
90
+ permittedRegistryActions: ["social.react_to_post.v1"],
91
+ }), { status: 200 });
92
+ }
93
+ if (path === "/api/chain/actions/prepare") {
94
+ const body = JSON.parse(String(init?.body));
95
+ assert.equal(body.registryAction, "social.react_to_post.v1");
96
+ assert.equal(body.idempotencyKey, "reaction-0001");
97
+ return new Response(JSON.stringify({
98
+ registryAction: body.registryAction,
99
+ registryVersion: "1.3.0",
100
+ idempotencyKey: body.idempotencyKey,
101
+ bytes: Buffer.from(Uint8Array.from({ length: 48 }, (_, index) => index + 1)).toString("base64"),
102
+ digest,
103
+ expiresAtMs: Date.now() + 300_000,
104
+ }), { status: 200 });
105
+ }
106
+ if (path === "/api/chain/actions/submit") {
107
+ const body = JSON.parse(String(init?.body));
108
+ assert.equal(body.digest, digest);
109
+ assert.equal(body.idempotencyKey, "reaction-0001");
110
+ assert.equal(typeof body.signature, "string");
111
+ return new Response(JSON.stringify({ digest }), { status: 200 });
112
+ }
113
+ return new Response("not found", { status: 404 });
114
+ });
115
+ const result = await client().reactToPost({ postId: "0xpost", reaction: "like" }, { idempotencyKey: "reaction-0001" });
116
+ assert.equal(result.digest, digest);
117
+ assert.deepEqual(requests.map((request) => request.path), [
118
+ "/config",
119
+ "/api/agent/context",
120
+ "/api/chain/actions/prepare",
121
+ "/api/chain/actions/submit",
122
+ ]);
123
+ for (const request of requests) {
124
+ assert.equal(request.headers["x-delegate-key"], undefined);
125
+ assert.equal(request.headers["x-owner-delegate-key"], undefined);
126
+ }
127
+ assert.equal(requests[2].headers["x-platform-id"], "0x3");
128
+ assert.equal(requests[3].headers["x-platform-id"], "0x3");
129
+ });
130
+ test("Tier 3 delete uses personal-message approval and owner wallet transaction signing", async () => {
131
+ const digest = "2".repeat(43);
132
+ const approvalId = "11111111-1111-4111-8111-111111111111";
133
+ const owner = "0x999";
134
+ const paths = [];
135
+ const chain = {
136
+ packageId: "0x50c1", usernameRegistryId: "0x1", platformRegistryId: "0x2",
137
+ platformObjectId: "0x3", blockListRegistryId: "0x4", postConfigId: "0x5",
138
+ memoryConfigId: "0x6", mydataRegistryId: "0x7", clockId: "0x6",
139
+ };
140
+ globalThis.fetch = (async (input, init) => {
141
+ const path = new URL(String(input)).pathname;
142
+ paths.push(path);
143
+ if (path === "/config") {
144
+ return new Response(JSON.stringify({ network: "localnet", mysoRpcUrl: "http://127.0.0.1:9000", socialChain: chain }));
145
+ }
146
+ if (path === "/api/agent/context") {
147
+ return new Response(JSON.stringify({
148
+ owner, memoryAccountId: "0xabc", derivedAddress: "0x123", capabilities: 16,
149
+ approvalRequiredCapabilities: 0, platformScope: null, network: "localnet",
150
+ rpcUrl: "http://127.0.0.1:9000", packageId: "0x50c1", socialChain: chain,
151
+ permittedRegistryActions: ["social.delete_post.v1"],
152
+ }));
153
+ }
154
+ if (path === "/api/chain/approvals/request") {
155
+ const body = JSON.parse(String(init?.body));
156
+ return new Response(JSON.stringify({
157
+ approvalId, registryAction: body.registryAction, registryVersion: "1.3.0",
158
+ idempotencyKey: body.idempotencyKey, parameterHash: `sha256:${"3".repeat(64)}`,
159
+ approvalIntent: `mysocial-action-approval-v1|${approvalId}|binding`, status: "pending",
160
+ expiresAtMs: Date.now() + 600_000,
161
+ }));
162
+ }
163
+ if (path.endsWith("/approve")) {
164
+ assert.equal(JSON.parse(String(init?.body)).walletSignature, "wallet-personal-message-signature");
165
+ return new Response(JSON.stringify({ status: "approved" }));
166
+ }
167
+ if (path === "/api/chain/actions/prepare") {
168
+ const body = JSON.parse(String(init?.body));
169
+ assert.equal(body.approvalId, approvalId);
170
+ return new Response(JSON.stringify({
171
+ registryAction: body.registryAction, registryVersion: "1.3.0",
172
+ idempotencyKey: body.idempotencyKey,
173
+ bytes: Buffer.from(new Uint8Array(48).fill(7)).toString("base64"),
174
+ digest, expiresAtMs: Date.now() + 300_000,
175
+ }));
176
+ }
177
+ if (path === "/api/chain/actions/submit") {
178
+ const body = JSON.parse(String(init?.body));
179
+ assert.equal(body.approvalId, approvalId);
180
+ assert.equal(body.signature, "wallet-transaction-signature");
181
+ return new Response(JSON.stringify({ digest }));
182
+ }
183
+ return new Response("not found", { status: 404 });
184
+ });
185
+ const social = SocialClient.create({
186
+ key: SUB_AGENT_KEY,
187
+ accountId: "0xabc",
188
+ serverUrl: "http://127.0.0.1:8000",
189
+ ownerWallet: {
190
+ getAddress: () => owner,
191
+ signPersonalMessage: async () => ({ signature: "wallet-personal-message-signature" }),
192
+ signTransaction: async () => ({ signature: "wallet-transaction-signature" }),
193
+ },
194
+ });
195
+ const result = await social.deletePost("0xpost", { idempotencyKey: "delete-post-0001" });
196
+ assert.deepEqual(result, { digest, deleted: true });
197
+ assert.deepEqual(paths, [
198
+ "/config", "/api/agent/context", "/api/chain/approvals/request",
199
+ `/api/chain/approvals/${approvalId}/approve`, "/api/chain/actions/prepare",
200
+ "/api/chain/actions/submit",
201
+ ]);
202
+ });
203
+ //# sourceMappingURL=client.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.test.js","sourceRoot":"","sources":["../src/client.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /** Mirrors `social_contracts::memory` capability bits (subset used by social SDK). */
2
+ export declare const CAP_MEMORY_READ = 1;
3
+ export declare const CAP_MEMORY_WRITE = 2;
4
+ export declare const CAP_MYDATA_READ = 4;
5
+ export declare const CAP_POST_PUBLISH = 16;
6
+ export declare const CAP_COMMENT = 512;
7
+ export declare const CAP_REACT = 1024;
8
+ export declare const CAP_MESSAGE_READ = 32;
9
+ export declare const CAP_MESSAGE_SEND = 64;
10
+ export declare const CAP_TRADE_MONITOR = 128;
11
+ export declare const CAP_TRADE_EXECUTE = 256;
12
+ export declare const CAP_AGENT_REVOKE = 2048;
13
+ export declare const CAP_AGENT_UPDATE = 4096;
14
+ export declare const CAP_AGENT_REGISTER = 8192;
15
+ export declare const CAP_BUDGET_MANAGE = 32768;
16
+ export declare const CAP_SOCIAL_GRAPH = 65536;
17
+ /** Mirrors `post::POST_ACCESS_*`. */
18
+ export declare const POST_ACCESS_PUBLIC = 1;
19
+ export declare const POST_ACCESS_PROFILE_SUBSCRIPTION = 2;
20
+ export declare const POST_ACCESS_MARKETPLACE_ONE_TIME = 3;
21
+ export declare function hasCap(capabilities: number, required: number): boolean;
22
+ export declare function capRequiresApproval(approvalRequiredCaps: number, cap: number): boolean;
23
+ //# sourceMappingURL=contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAEtF,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,WAAW,MAAM,CAAC;AAC/B,eAAO,MAAM,SAAS,OAAO,CAAC;AAC9B,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,iBAAiB,MAAM,CAAC;AACrC,eAAO,MAAM,iBAAiB,MAAM,CAAC;AACrC,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,eAAO,MAAM,kBAAkB,OAAO,CAAC;AACvC,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AACvC,eAAO,MAAM,gBAAgB,QAAQ,CAAC;AAEtC,qCAAqC;AACrC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAClD,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAElD,wBAAgB,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEtE;AAED,wBAAgB,mBAAmB,CAAC,oBAAoB,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAEtF"}
@@ -0,0 +1,27 @@
1
+ /** Mirrors `social_contracts::memory` capability bits (subset used by social SDK). */
2
+ export const CAP_MEMORY_READ = 1;
3
+ export const CAP_MEMORY_WRITE = 2;
4
+ export const CAP_MYDATA_READ = 4;
5
+ export const CAP_POST_PUBLISH = 16;
6
+ export const CAP_COMMENT = 512;
7
+ export const CAP_REACT = 1024;
8
+ export const CAP_MESSAGE_READ = 32;
9
+ export const CAP_MESSAGE_SEND = 64;
10
+ export const CAP_TRADE_MONITOR = 128;
11
+ export const CAP_TRADE_EXECUTE = 256;
12
+ export const CAP_AGENT_REVOKE = 2048;
13
+ export const CAP_AGENT_UPDATE = 4096;
14
+ export const CAP_AGENT_REGISTER = 8192;
15
+ export const CAP_BUDGET_MANAGE = 32768;
16
+ export const CAP_SOCIAL_GRAPH = 65536;
17
+ /** Mirrors `post::POST_ACCESS_*`. */
18
+ export const POST_ACCESS_PUBLIC = 1;
19
+ export const POST_ACCESS_PROFILE_SUBSCRIPTION = 2;
20
+ export const POST_ACCESS_MARKETPLACE_ONE_TIME = 3;
21
+ export function hasCap(capabilities, required) {
22
+ return (capabilities & required) === required;
23
+ }
24
+ export function capRequiresApproval(approvalRequiredCaps, cap) {
25
+ return (approvalRequiredCaps & cap) === cap;
26
+ }
27
+ //# sourceMappingURL=contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAEtF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AACjC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAClC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AACjC,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AACnC,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC;AAC/B,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC;AAC9B,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AACnC,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AACnC,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AACrC,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AACrC,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AACrC,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AACrC,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AACvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC;AACvC,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAEtC,qCAAqC;AACrC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AACpC,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC;AAElD,MAAM,UAAU,MAAM,CAAC,YAAoB,EAAE,QAAgB;IACzD,OAAO,CAAC,YAAY,GAAG,QAAQ,CAAC,KAAK,QAAQ,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,oBAA4B,EAAE,GAAW;IACzE,OAAO,CAAC,oBAAoB,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC;AAChD,CAAC"}
@@ -0,0 +1,11 @@
1
+ export interface ParsedTxEffects {
2
+ digest: string;
3
+ postId?: string;
4
+ commentId?: string;
5
+ repostId?: string;
6
+ deleted?: boolean;
7
+ messageGroupId?: string;
8
+ messageSeq?: number;
9
+ }
10
+ export declare function parseSocialTxEffects(digest: string, txResult: any): ParsedTxEffects;
11
+ //# sourceMappingURL=effects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effects.d.ts","sourceRoot":"","sources":["../src/effects.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,oBAAoB,CAChC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,GAAG,GACd,eAAe,CA+DjB"}
@@ -0,0 +1,73 @@
1
+ export function parseSocialTxEffects(digest, txResult) {
2
+ const out = { digest };
3
+ const objectChanges = txResult?.objectChanges ?? txResult?.effects?.objectChanges ?? [];
4
+ for (const change of objectChanges) {
5
+ const type = change.objectType;
6
+ if (!type)
7
+ continue;
8
+ if (change.type === "created") {
9
+ if (type.includes("::post::Post") && !type.includes("Repost")) {
10
+ out.postId = change.objectId;
11
+ }
12
+ else if (type.includes("::post::Comment")) {
13
+ out.commentId = change.objectId;
14
+ }
15
+ else if (type.includes("::post::Repost")) {
16
+ out.repostId = change.objectId;
17
+ }
18
+ }
19
+ if (change.type === "deleted") {
20
+ if (type.includes("::post::Post")) {
21
+ out.deleted = true;
22
+ out.postId = change.objectId;
23
+ }
24
+ else if (type.includes("::post::Comment")) {
25
+ out.deleted = true;
26
+ out.commentId = change.objectId;
27
+ }
28
+ else if (type.includes("::post::Repost")) {
29
+ out.deleted = true;
30
+ out.repostId = change.objectId;
31
+ }
32
+ }
33
+ }
34
+ const events = txResult?.events ?? txResult?.effects?.events ?? [];
35
+ for (const event of events) {
36
+ const type = event.type;
37
+ const parsed = event.parsedJson ?? event.parsed_json;
38
+ if (!type || !parsed)
39
+ continue;
40
+ if (type.includes("PostCreatedEvent") && parsed.post_id) {
41
+ out.postId = parsed.post_id;
42
+ }
43
+ if (type.includes("CommentCreatedEvent") && parsed.comment_id) {
44
+ out.commentId = parsed.comment_id;
45
+ }
46
+ if (type.includes("RepostEvent") && parsed.repost_id) {
47
+ out.repostId = parsed.repost_id;
48
+ }
49
+ if (type.includes("PostDeletedEvent")) {
50
+ out.deleted = true;
51
+ if (parsed.post_id)
52
+ out.postId = parsed.post_id;
53
+ }
54
+ if (type.includes("CommentDeletedEvent")) {
55
+ out.deleted = true;
56
+ if (parsed.comment_id)
57
+ out.commentId = parsed.comment_id;
58
+ }
59
+ if (type.includes("RepostRemovedEvent")) {
60
+ out.deleted = true;
61
+ if (parsed.repost_id)
62
+ out.repostId = parsed.repost_id;
63
+ }
64
+ if (type.includes("MessageDigestSent")) {
65
+ if (parsed.group_id)
66
+ out.messageGroupId = parsed.group_id;
67
+ if (typeof parsed.seq === "number")
68
+ out.messageSeq = parsed.seq;
69
+ }
70
+ }
71
+ return out;
72
+ }
73
+ //# sourceMappingURL=effects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effects.js","sourceRoot":"","sources":["../src/effects.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export { SocialClient } from "./client.js";
2
+ export * from "./types.js";
3
+ export * from "./contract.js";
4
+ export * from "./effects.js";
5
+ export * from "./action-registry/index.js";
6
+ export * as ptb from "./ptb/index.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,4BAA4B,CAAC;AAC3C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,7 @@
1
+ export { SocialClient } from "./client.js";
2
+ export * from "./types.js";
3
+ export * from "./contract.js";
4
+ export * from "./effects.js";
5
+ export * from "./action-registry/index.js";
6
+ export * as ptb from "./ptb/index.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,4BAA4B,CAAC;AAC3C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { SocialChainConfig } from "../types.js";
2
+ export declare const MYSO_CLOCK = "0x0000000000000000000000000000000000000000000000000000000000000006";
3
+ export declare function postModuleTarget(config: SocialChainConfig, fn: string): string;
4
+ export declare function resolvePlatformObjectId(config: SocialChainConfig, override?: string): string;
5
+ export declare function optBool(tx: any, value: boolean | undefined): unknown;
6
+ export declare function optString(tx: any, value: string | undefined): unknown;
7
+ export declare function optAddress(tx: any, value: string | undefined): unknown;
8
+ export declare function optAddressVec(tx: any, values: string[] | undefined): unknown;
9
+ export declare function optStringVec(tx: any, values: string[] | undefined): unknown;
10
+ export declare function optU64(tx: any, value: number | undefined): unknown;
11
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/ptb/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,eAAO,MAAM,UAAU,uEACiD,CAAC;AAEzE,wBAAgB,gBAAgB,CAC5B,MAAM,EAAE,iBAAiB,EACzB,EAAE,EAAE,MAAM,GACX,MAAM,CAER;AAED,wBAAgB,uBAAuB,CACnC,MAAM,EAAE,iBAAiB,EACzB,QAAQ,CAAC,EAAE,MAAM,GAClB,MAAM,CAER;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAEpE;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAErE;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEtE;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,OAAO,CAK5E;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,OAAO,CAK3E;AAED,wBAAgB,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAElE"}
@@ -0,0 +1,26 @@
1
+ export const MYSO_CLOCK = "0x0000000000000000000000000000000000000000000000000000000000000006";
2
+ export function postModuleTarget(config, fn) {
3
+ return `${config.packageId}::post::${fn}`;
4
+ }
5
+ export function resolvePlatformObjectId(config, override) {
6
+ return override ?? config.platformObjectId;
7
+ }
8
+ export function optBool(tx, value) {
9
+ return tx.pure("option<bool>", value ?? null);
10
+ }
11
+ export function optString(tx, value) {
12
+ return tx.pure("option<string>", value ?? null);
13
+ }
14
+ export function optAddress(tx, value) {
15
+ return tx.pure("option<address>", value ?? null);
16
+ }
17
+ export function optAddressVec(tx, values) {
18
+ return tx.pure("option<vector<address>>", values && values.length > 0 ? values : null);
19
+ }
20
+ export function optStringVec(tx, values) {
21
+ return tx.pure("option<vector<string>>", values && values.length > 0 ? values : null);
22
+ }
23
+ export function optU64(tx, value) {
24
+ return tx.pure("option<u64>", value ?? null);
25
+ }
26
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/ptb/helpers.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GACnB,oEAAoE,CAAC;AAEzE,MAAM,UAAU,gBAAgB,CAC5B,MAAyB,EACzB,EAAU;IAEV,OAAO,GAAG,MAAM,CAAC,SAAS,WAAW,EAAE,EAAE,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,uBAAuB,CACnC,MAAyB,EACzB,QAAiB;IAEjB,OAAO,QAAQ,IAAI,MAAM,CAAC,gBAAgB,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,EAAO,EAAE,KAA0B;IACvD,OAAO,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EAAO,EAAE,KAAyB;IACxD,OAAO,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,EAAO,EAAE,KAAyB;IACzD,OAAO,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAAO,EAAE,MAA4B;IAC/D,OAAO,EAAE,CAAC,IAAI,CACV,yBAAyB,EACzB,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAC9C,CAAC;AACN,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAAO,EAAE,MAA4B;IAC9D,OAAO,EAAE,CAAC,IAAI,CACV,wBAAwB,EACxB,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAC9C,CAAC;AACN,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,EAAO,EAAE,KAAyB;IACrD,OAAO,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC;AACjD,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from "./post.js";
2
+ export * from "./helpers.js";
3
+ export * from "./tier1.js";
4
+ export * from "./organization.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ptb/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from "./post.js";
2
+ export * from "./helpers.js";
3
+ export * from "./tier1.js";
4
+ export * from "./organization.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ptb/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { AgentPolicyParams, CreateMessagingGroupParams, CreateOrganizationInvitationParams, CreateOrganizationParams, DefineOrganizationRoleParams, ManagedAgentParams, OrganizationInvitationDecisionParams, OrganizationObjectParams, OrganizationRoleParams, RegisterChildAgentParams, RegisterRootAgentParams, UpdateManagedAgentParams, UpdateOrganizationCategoryParams, UpdateOrganizationMetadataParams } from "../types.js";
2
+ import type { BuildTxContext } from "./post.js";
3
+ export declare function deriveAgentAddress(publicKeyHex: string): string;
4
+ export declare function validateAgentPolicy(params: AgentPolicyParams): void;
5
+ export declare function buildCreateOrganizationTx(ctx: BuildTxContext, params: CreateOrganizationParams): any;
6
+ export declare function buildUpdateOrganizationMetadataTx(ctx: BuildTxContext, params: UpdateOrganizationMetadataParams): any;
7
+ export declare function buildUpdateOrganizationCategoryTx(ctx: BuildTxContext, params: UpdateOrganizationCategoryParams): any;
8
+ export declare const buildDeactivateOrganizationTx: (ctx: BuildTxContext, params: OrganizationObjectParams) => any;
9
+ export declare const buildEnsureOrganizationMemoryGroupTx: (ctx: BuildTxContext, params: OrganizationObjectParams) => any;
10
+ export declare function buildDefineOrganizationRoleTx(ctx: BuildTxContext, params: DefineOrganizationRoleParams): any;
11
+ export declare const buildAssignOrganizationRoleTx: (ctx: BuildTxContext, params: OrganizationRoleParams) => any;
12
+ export declare const buildRevokeOrganizationRoleTx: (ctx: BuildTxContext, params: OrganizationRoleParams) => any;
13
+ export declare function buildCreateOrganizationInvitationTx(ctx: BuildTxContext, params: CreateOrganizationInvitationParams): any;
14
+ export declare function buildAcceptOrganizationInvitationTx(ctx: BuildTxContext, params: OrganizationInvitationDecisionParams): any;
15
+ export declare function buildDeclineOrganizationInvitationTx(ctx: BuildTxContext, params: OrganizationInvitationDecisionParams): any;
16
+ export declare function buildRegisterRootAgentTx(ctx: BuildTxContext, params: RegisterRootAgentParams): any;
17
+ export declare function buildRegisterChildAgentTx(ctx: BuildTxContext, params: RegisterChildAgentParams): any;
18
+ export declare function buildUpdateManagedAgentTx(ctx: BuildTxContext, params: UpdateManagedAgentParams): any;
19
+ export declare const buildDeactivateManagedAgentTx: (ctx: BuildTxContext, params: ManagedAgentParams) => any;
20
+ export declare const buildRevokeManagedAgentTx: (ctx: BuildTxContext, params: ManagedAgentParams) => any;
21
+ export declare function buildCreateMessagingGroupTx(ctx: BuildTxContext, params: CreateMessagingGroupParams): any;
22
+ //# sourceMappingURL=organization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization.d.ts","sourceRoot":"","sources":["../../src/ptb/organization.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,iBAAiB,EACjB,0BAA0B,EAC1B,kCAAkC,EAClC,wBAAwB,EACxB,4BAA4B,EAC5B,kBAAkB,EAClB,oCAAoC,EACpC,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EAEvB,wBAAwB,EACxB,gCAAgC,EAChC,gCAAgC,EACnC,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAoDhD,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAQ/D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAcnE;AAoBD,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,wBAAwB,GAAG,GAAG,CAcpG;AAED,wBAAgB,iCAAiC,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,gCAAgC,GAAG,GAAG,CAapH;AAED,wBAAgB,iCAAiC,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,gCAAgC,GAAG,GAAG,CAapH;AAiBD,eAAO,MAAM,6BAA6B,QAdzB,cAAc,UAAU,wBAAwB,KAAG,GAcoC,CAAC;AACzG,eAAO,MAAM,oCAAoC,QAfhC,cAAc,UAAU,wBAAwB,KAAG,GAemC,CAAC;AAExG,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,4BAA4B,GAAG,GAAG,CAe5G;AAoBD,eAAO,MAAM,6BAA6B,QAjBzB,cAAc,UAAU,sBAAsB,KAAG,GAiBoB,CAAC;AACvF,eAAO,MAAM,6BAA6B,QAlBzB,cAAc,UAAU,sBAAsB,KAAG,GAkBoB,CAAC;AAEvF,wBAAgB,mCAAmC,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,kCAAkC,GAAG,GAAG,CAgBxH;AAED,wBAAgB,mCAAmC,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,oCAAoC,GAAG,GAAG,CAc1H;AAED,wBAAgB,oCAAoC,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,oCAAoC,GAAG,GAAG,CAY3H;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,uBAAuB,GAAG,GAAG,CAalG;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,wBAAwB,GAAG,GAAG,CAcpG;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,wBAAwB,GAAG,GAAG,CAoBpG;AAiBD,eAAO,MAAM,6BAA6B,QAdzB,cAAc,UAAU,kBAAkB,KAAG,GAcyB,CAAC;AACxF,eAAO,MAAM,yBAAyB,QAfrB,cAAc,UAAU,kBAAkB,KAAG,GAeiB,CAAC;AAEhF,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,0BAA0B,GAAG,GAAG,CAiCxG"}