@mycelium-ip/core-sdk 0.1.0-alpha.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 (203) hide show
  1. package/README.md +176 -0
  2. package/dist/accounts/entity/entity.d.ts +24 -0
  3. package/dist/accounts/entity/entity.js +24 -0
  4. package/dist/accounts/entity/entityTreasury.d.ts +22 -0
  5. package/dist/accounts/entity/entityTreasury.js +25 -0
  6. package/dist/accounts/entity/index.d.ts +2 -0
  7. package/dist/accounts/entity/index.js +2 -0
  8. package/dist/accounts/index.d.ts +3 -0
  9. package/dist/accounts/index.js +3 -0
  10. package/dist/accounts/ipcore/derivativeLink.d.ts +21 -0
  11. package/dist/accounts/ipcore/derivativeLink.js +22 -0
  12. package/dist/accounts/ipcore/index.d.ts +7 -0
  13. package/dist/accounts/ipcore/index.js +7 -0
  14. package/dist/accounts/ipcore/ipAsset.d.ts +25 -0
  15. package/dist/accounts/ipcore/ipAsset.js +26 -0
  16. package/dist/accounts/ipcore/ipRegistry.d.ts +21 -0
  17. package/dist/accounts/ipcore/ipRegistry.js +22 -0
  18. package/dist/accounts/ipcore/moduleConfig.d.ts +21 -0
  19. package/dist/accounts/ipcore/moduleConfig.js +22 -0
  20. package/dist/accounts/ipcore/provenanceClaim.d.ts +25 -0
  21. package/dist/accounts/ipcore/provenanceClaim.js +26 -0
  22. package/dist/accounts/ipcore/registryConfig.d.ts +21 -0
  23. package/dist/accounts/ipcore/registryConfig.js +22 -0
  24. package/dist/accounts/ipcore/registryConfigTreasury.d.ts +18 -0
  25. package/dist/accounts/ipcore/registryConfigTreasury.js +21 -0
  26. package/dist/accounts/metadata/entityMetadata.d.ts +23 -0
  27. package/dist/accounts/metadata/entityMetadata.js +24 -0
  28. package/dist/accounts/metadata/index.d.ts +3 -0
  29. package/dist/accounts/metadata/index.js +3 -0
  30. package/dist/accounts/metadata/ipMetadata.d.ts +23 -0
  31. package/dist/accounts/metadata/ipMetadata.js +24 -0
  32. package/dist/accounts/metadata/schemaRegistry.d.ts +21 -0
  33. package/dist/accounts/metadata/schemaRegistry.js +22 -0
  34. package/dist/constants/index.d.ts +4 -0
  35. package/dist/constants/index.js +4 -0
  36. package/dist/constants/programIds.d.ts +5 -0
  37. package/dist/constants/programIds.js +8 -0
  38. package/dist/constants/schema.d.ts +3 -0
  39. package/dist/constants/schema.js +3 -0
  40. package/dist/constants/seeds.d.ts +17 -0
  41. package/dist/constants/seeds.js +17 -0
  42. package/dist/constants/status.d.ts +24 -0
  43. package/dist/constants/status.js +33 -0
  44. package/dist/helper/index.d.ts +1 -0
  45. package/dist/helper/index.js +1 -0
  46. package/dist/helper/schema.d.ts +3 -0
  47. package/dist/helper/schema.js +28 -0
  48. package/dist/idl/entity.json +373 -0
  49. package/dist/idl/index.d.ts +4 -0
  50. package/dist/idl/index.js +4 -0
  51. package/dist/idl/ipcore.json +916 -0
  52. package/dist/idl/metadata.json +682 -0
  53. package/dist/index.d.ts +8 -0
  54. package/dist/index.js +9 -0
  55. package/dist/instructions/entity/assertControllerThreshold.d.ts +13 -0
  56. package/dist/instructions/entity/assertControllerThreshold.js +29 -0
  57. package/dist/instructions/entity/index.d.ts +5 -0
  58. package/dist/instructions/entity/index.js +5 -0
  59. package/dist/instructions/entity/initEntityCounter.d.ts +8 -0
  60. package/dist/instructions/entity/initEntityCounter.js +12 -0
  61. package/dist/instructions/entity/initEntityTreasury.d.ts +12 -0
  62. package/dist/instructions/entity/initEntityTreasury.js +20 -0
  63. package/dist/instructions/entity/registerEntity.d.ts +10 -0
  64. package/dist/instructions/entity/registerEntity.js +12 -0
  65. package/dist/instructions/entity/updateControllers.d.ts +15 -0
  66. package/dist/instructions/entity/updateControllers.js +29 -0
  67. package/dist/instructions/index.d.ts +3 -0
  68. package/dist/instructions/index.js +3 -0
  69. package/dist/instructions/ipcore/addDerivativeLink.d.ts +9 -0
  70. package/dist/instructions/ipcore/addDerivativeLink.js +10 -0
  71. package/dist/instructions/ipcore/addIpAsset.d.ts +7 -0
  72. package/dist/instructions/ipcore/addIpAsset.js +9 -0
  73. package/dist/instructions/ipcore/createDerivativeLink.d.ts +13 -0
  74. package/dist/instructions/ipcore/createDerivativeLink.js +22 -0
  75. package/dist/instructions/ipcore/createProvenanceClaim.d.ts +15 -0
  76. package/dist/instructions/ipcore/createProvenanceClaim.js +25 -0
  77. package/dist/instructions/ipcore/index.d.ts +11 -0
  78. package/dist/instructions/ipcore/index.js +11 -0
  79. package/dist/instructions/ipcore/initIpCounter.d.ts +8 -0
  80. package/dist/instructions/ipcore/initIpCounter.js +12 -0
  81. package/dist/instructions/ipcore/initIpRegistry.d.ts +8 -0
  82. package/dist/instructions/ipcore/initIpRegistry.js +20 -0
  83. package/dist/instructions/ipcore/initModuleConfig.d.ts +8 -0
  84. package/dist/instructions/ipcore/initModuleConfig.js +10 -0
  85. package/dist/instructions/ipcore/initRegistryConfig.d.ts +8 -0
  86. package/dist/instructions/ipcore/initRegistryConfig.js +9 -0
  87. package/dist/instructions/ipcore/initRegistryConfigTreasury.d.ts +8 -0
  88. package/dist/instructions/ipcore/initRegistryConfigTreasury.js +10 -0
  89. package/dist/instructions/ipcore/registerIpAsset.d.ts +14 -0
  90. package/dist/instructions/ipcore/registerIpAsset.js +21 -0
  91. package/dist/instructions/ipcore/resolveParent.d.ts +12 -0
  92. package/dist/instructions/ipcore/resolveParent.js +12 -0
  93. package/dist/instructions/ipcore/updateRegistryConfig.d.ts +9 -0
  94. package/dist/instructions/ipcore/updateRegistryConfig.js +9 -0
  95. package/dist/instructions/metadata/createEntityMetadata.d.ts +15 -0
  96. package/dist/instructions/metadata/createEntityMetadata.js +22 -0
  97. package/dist/instructions/metadata/createIpMetadata.d.ts +16 -0
  98. package/dist/instructions/metadata/createIpMetadata.js +23 -0
  99. package/dist/instructions/metadata/index.d.ts +7 -0
  100. package/dist/instructions/metadata/index.js +7 -0
  101. package/dist/instructions/metadata/lockEntityMetadata.d.ts +13 -0
  102. package/dist/instructions/metadata/lockEntityMetadata.js +19 -0
  103. package/dist/instructions/metadata/lockIpMetadata.d.ts +14 -0
  104. package/dist/instructions/metadata/lockIpMetadata.js +20 -0
  105. package/dist/instructions/metadata/registerSchema.d.ts +14 -0
  106. package/dist/instructions/metadata/registerSchema.js +18 -0
  107. package/dist/instructions/metadata/updateEntityMetadata.d.ts +16 -0
  108. package/dist/instructions/metadata/updateEntityMetadata.js +23 -0
  109. package/dist/instructions/metadata/updateIpMetadata.d.ts +17 -0
  110. package/dist/instructions/metadata/updateIpMetadata.js +24 -0
  111. package/dist/pda/entity.d.ts +5 -0
  112. package/dist/pda/entity.js +15 -0
  113. package/dist/pda/index.d.ts +4 -0
  114. package/dist/pda/index.js +4 -0
  115. package/dist/pda/ip.d.ts +9 -0
  116. package/dist/pda/ip.js +31 -0
  117. package/dist/pda/metadata.d.ts +3 -0
  118. package/dist/pda/metadata.js +19 -0
  119. package/dist/pda/schema.d.ts +2 -0
  120. package/dist/pda/schema.js +12 -0
  121. package/dist/programs/programIds.d.ts +18 -0
  122. package/dist/programs/programIds.js +16 -0
  123. package/dist/sdk/MyceliumSDK.d.ts +15 -0
  124. package/dist/sdk/MyceliumSDK.js +15 -0
  125. package/dist/sdk/MyceliumSDK.types.d.ts +3 -0
  126. package/dist/sdk/MyceliumSDK.types.js +1 -0
  127. package/dist/sdk/namespaces/admin.d.ts +23 -0
  128. package/dist/sdk/namespaces/admin.js +9 -0
  129. package/dist/sdk/namespaces/entity.d.ts +53 -0
  130. package/dist/sdk/namespaces/entity.js +21 -0
  131. package/dist/sdk/namespaces/ipcore.d.ts +111 -0
  132. package/dist/sdk/namespaces/ipcore.js +42 -0
  133. package/dist/sdk/namespaces/metadata.d.ts +86 -0
  134. package/dist/sdk/namespaces/metadata.js +27 -0
  135. package/dist/transactions/admin/adminTransaction.d.ts +18 -0
  136. package/dist/transactions/admin/adminTransaction.js +43 -0
  137. package/dist/transactions/admin/index.d.ts +1 -0
  138. package/dist/transactions/admin/index.js +1 -0
  139. package/dist/transactions/entity/assertControllerThreshold.d.ts +17 -0
  140. package/dist/transactions/entity/assertControllerThreshold.js +18 -0
  141. package/dist/transactions/entity/index.d.ts +5 -0
  142. package/dist/transactions/entity/index.js +5 -0
  143. package/dist/transactions/entity/initEntityCounter.d.ts +14 -0
  144. package/dist/transactions/entity/initEntityCounter.js +16 -0
  145. package/dist/transactions/entity/initEntityTreasury.d.ts +16 -0
  146. package/dist/transactions/entity/initEntityTreasury.js +18 -0
  147. package/dist/transactions/entity/registerEntity.d.ts +19 -0
  148. package/dist/transactions/entity/registerEntity.js +44 -0
  149. package/dist/transactions/entity/updateControllers.d.ts +19 -0
  150. package/dist/transactions/entity/updateControllers.js +20 -0
  151. package/dist/transactions/index.d.ts +4 -0
  152. package/dist/transactions/index.js +4 -0
  153. package/dist/transactions/ipcore/addDerivativeLink.d.ts +14 -0
  154. package/dist/transactions/ipcore/addDerivativeLink.js +15 -0
  155. package/dist/transactions/ipcore/addIpAsset.d.ts +15 -0
  156. package/dist/transactions/ipcore/addIpAsset.js +13 -0
  157. package/dist/transactions/ipcore/createDerivativeLink.d.ts +19 -0
  158. package/dist/transactions/ipcore/createDerivativeLink.js +18 -0
  159. package/dist/transactions/ipcore/createProvenanceClaim.d.ts +20 -0
  160. package/dist/transactions/ipcore/createProvenanceClaim.js +20 -0
  161. package/dist/transactions/ipcore/index.d.ts +12 -0
  162. package/dist/transactions/ipcore/index.js +12 -0
  163. package/dist/transactions/ipcore/initIpCounter.d.ts +14 -0
  164. package/dist/transactions/ipcore/initIpCounter.js +16 -0
  165. package/dist/transactions/ipcore/initIpRegistry.d.ts +10 -0
  166. package/dist/transactions/ipcore/initIpRegistry.js +17 -0
  167. package/dist/transactions/ipcore/initModuleConfig.d.ts +11 -0
  168. package/dist/transactions/ipcore/initModuleConfig.js +26 -0
  169. package/dist/transactions/ipcore/initializeRegistryConfig.d.ts +11 -0
  170. package/dist/transactions/ipcore/initializeRegistryConfig.js +18 -0
  171. package/dist/transactions/ipcore/initializeRegistryConfigTreasury.d.ts +10 -0
  172. package/dist/transactions/ipcore/initializeRegistryConfigTreasury.js +18 -0
  173. package/dist/transactions/ipcore/registerIpAsset.d.ts +16 -0
  174. package/dist/transactions/ipcore/registerIpAsset.js +64 -0
  175. package/dist/transactions/ipcore/resolveParent.d.ts +15 -0
  176. package/dist/transactions/ipcore/resolveParent.js +22 -0
  177. package/dist/transactions/ipcore/updateRegistryConfig.d.ts +11 -0
  178. package/dist/transactions/ipcore/updateRegistryConfig.js +19 -0
  179. package/dist/transactions/metadata/createEntityMetadata.d.ts +14 -0
  180. package/dist/transactions/metadata/createEntityMetadata.js +22 -0
  181. package/dist/transactions/metadata/createIpMetadata.d.ts +15 -0
  182. package/dist/transactions/metadata/createIpMetadata.js +23 -0
  183. package/dist/transactions/metadata/index.d.ts +7 -0
  184. package/dist/transactions/metadata/index.js +7 -0
  185. package/dist/transactions/metadata/lockEntityMetadata.d.ts +12 -0
  186. package/dist/transactions/metadata/lockEntityMetadata.js +20 -0
  187. package/dist/transactions/metadata/lockIpMetadata.d.ts +13 -0
  188. package/dist/transactions/metadata/lockIpMetadata.js +21 -0
  189. package/dist/transactions/metadata/registerSchema.d.ts +13 -0
  190. package/dist/transactions/metadata/registerSchema.js +21 -0
  191. package/dist/transactions/metadata/updateEntityMetadata.d.ts +13 -0
  192. package/dist/transactions/metadata/updateEntityMetadata.js +32 -0
  193. package/dist/transactions/metadata/updateIpMetadata.d.ts +17 -0
  194. package/dist/transactions/metadata/updateIpMetadata.js +24 -0
  195. package/dist/types/entity.d.ts +416 -0
  196. package/dist/types/entity.js +1 -0
  197. package/dist/types/index.d.ts +3 -0
  198. package/dist/types/index.js +3 -0
  199. package/dist/types/ipcore.d.ts +1008 -0
  200. package/dist/types/ipcore.js +1 -0
  201. package/dist/types/metadata.d.ts +714 -0
  202. package/dist/types/metadata.js +1 -0
  203. package/package.json +42 -0
@@ -0,0 +1,42 @@
1
+ import { addDerivativeLinkTransaction, addIpAssetTransaction, createDerivativeLinkTransaction, createProvenanceClaimTransaction, createInitIpRegistryTransaction, createInitializeRegistryConfigTransaction, createInitializeRegistryConfigTreasuryTransaction, createInitModuleConfigTransaction, createRegisterIpAssetTransaction, createResolveParentTransaction, createUpdateRegistryConfigTransaction, initIpCounterTransaction, } from "../../transactions/ipcore";
2
+ export class IpcoreNamespace {
3
+ constructor(programIds) {
4
+ this.programIds = programIds;
5
+ }
6
+ async generateAddDerivativeLinkTransaction(params) {
7
+ return addDerivativeLinkTransaction(params);
8
+ }
9
+ async generateAddIpAssetTransaction(params) {
10
+ return addIpAssetTransaction(params);
11
+ }
12
+ async generateCreateDerivativeLinkTransaction(params) {
13
+ return createDerivativeLinkTransaction(params);
14
+ }
15
+ async generateCreateProvenanceClaimTransaction(params) {
16
+ return createProvenanceClaimTransaction(params);
17
+ }
18
+ async generateInitIpRegistryTransaction(params) {
19
+ return createInitIpRegistryTransaction(params);
20
+ }
21
+ async generateInitializeRegistryConfigTransaction(params) {
22
+ return createInitializeRegistryConfigTransaction(params);
23
+ }
24
+ async generateInitializeRegistryConfigTreasuryTransaction(params) {
25
+ return createInitializeRegistryConfigTreasuryTransaction(params);
26
+ }
27
+ async generateInitModuleConfigTransaction(params) {
28
+ return createInitModuleConfigTransaction(params);
29
+ }
30
+ async generateRegisterIpAssetTransaction(params) {
31
+ return createRegisterIpAssetTransaction(params);
32
+ }
33
+ async generateResolveParentTransaction(params) {
34
+ return createResolveParentTransaction(params);
35
+ }
36
+ async generateUpdateRegistryConfigTransaction(params) {
37
+ return createUpdateRegistryConfigTransaction(params);
38
+ }
39
+ async generateInitIpCounterTransaction(params) {
40
+ return initIpCounterTransaction(params);
41
+ }
42
+ }
@@ -0,0 +1,86 @@
1
+ import type { Program } from "@coral-xyz/anchor";
2
+ import { type PublicKey, Transaction } from "@solana/web3.js";
3
+ import type { ProgramIds } from "../../programs/programIds";
4
+ import type { Metadata } from "../../types/metadata";
5
+ import { BN } from "@coral-xyz/anchor";
6
+ export declare class MetadataNamespace {
7
+ private readonly programIds;
8
+ constructor(programIds: ProgramIds);
9
+ generateCreateEntityMetadataTransaction(params: {
10
+ program: Program<Metadata>;
11
+ entityPda: PublicKey;
12
+ schemaPda: PublicKey;
13
+ version: BN;
14
+ metadataUri: string;
15
+ payer: PublicKey;
16
+ controllers: PublicKey[];
17
+ }): Promise<{
18
+ transaction: Transaction;
19
+ }>;
20
+ generateCreateIpMetadataTransaction(params: {
21
+ program: Program<Metadata>;
22
+ ipAssetPda: PublicKey;
23
+ schemaPda: PublicKey;
24
+ entityPda: PublicKey;
25
+ version: BN;
26
+ metadataUri: string;
27
+ payer: PublicKey;
28
+ controllers: PublicKey[];
29
+ }): Promise<{
30
+ transaction: Transaction;
31
+ }>;
32
+ generateLockEntityMetadataTransaction(params: {
33
+ program: Program<Metadata>;
34
+ metadataPda: PublicKey;
35
+ entityPda: PublicKey;
36
+ authority: PublicKey;
37
+ controllers: PublicKey[];
38
+ }): Promise<{
39
+ transaction: Transaction;
40
+ }>;
41
+ generateLockIpMetadataTransaction(params: {
42
+ program: Program<Metadata>;
43
+ metadataPda: PublicKey;
44
+ ipAssetPda: PublicKey;
45
+ entityPda: PublicKey;
46
+ authority: PublicKey;
47
+ controllers: PublicKey[];
48
+ }): Promise<{
49
+ transaction: Transaction;
50
+ }>;
51
+ generateRegisterSchemaTransaction(params: {
52
+ program: Program<Metadata>;
53
+ schemaUri: string;
54
+ version: string;
55
+ schemaJson: string;
56
+ schemaId: string;
57
+ creator: PublicKey;
58
+ }): Promise<{
59
+ transaction: Transaction;
60
+ }>;
61
+ generateUpdateEntityMetadataTransaction(params: {
62
+ program: Program<Metadata>;
63
+ entityPda: PublicKey;
64
+ previousMetadataPda: PublicKey;
65
+ payer: PublicKey;
66
+ metadataUri: string;
67
+ controllers: PublicKey[];
68
+ }): Promise<{
69
+ transaction: Transaction;
70
+ }>;
71
+ generateUpdateIpMetadataTransaction(params: {
72
+ program: Program<Metadata>;
73
+ ipAssetPda: PublicKey;
74
+ entityPda: PublicKey;
75
+ previousMetadataPda: PublicKey;
76
+ newMetadataPda: PublicKey;
77
+ schemaPda: PublicKey;
78
+ authority: PublicKey;
79
+ payer: PublicKey;
80
+ version: BN;
81
+ metadataUri: string;
82
+ controllers: PublicKey[];
83
+ }): Promise<{
84
+ transaction: Transaction;
85
+ }>;
86
+ }
@@ -0,0 +1,27 @@
1
+ import { createEntityMetadataTransaction, createIpMetadataTransaction, createLockEntityMetadataTransaction, createLockIpMetadataTransaction, createRegisterSchemaTransaction, createUpdateEntityMetadataTransaction, createUpdateIpMetadataTransaction, } from "../../transactions/metadata";
2
+ export class MetadataNamespace {
3
+ constructor(programIds) {
4
+ this.programIds = programIds;
5
+ }
6
+ async generateCreateEntityMetadataTransaction(params) {
7
+ return createEntityMetadataTransaction(params);
8
+ }
9
+ async generateCreateIpMetadataTransaction(params) {
10
+ return createIpMetadataTransaction(params);
11
+ }
12
+ async generateLockEntityMetadataTransaction(params) {
13
+ return createLockEntityMetadataTransaction(params);
14
+ }
15
+ async generateLockIpMetadataTransaction(params) {
16
+ return createLockIpMetadataTransaction(params);
17
+ }
18
+ async generateRegisterSchemaTransaction(params) {
19
+ return createRegisterSchemaTransaction(params);
20
+ }
21
+ async generateUpdateEntityMetadataTransaction(params) {
22
+ return createUpdateEntityMetadataTransaction(params);
23
+ }
24
+ async generateUpdateIpMetadataTransaction(params) {
25
+ return createUpdateIpMetadataTransaction(params);
26
+ }
27
+ }
@@ -0,0 +1,18 @@
1
+ import type { Program } from "@coral-xyz/anchor";
2
+ import * as anchor from "@coral-xyz/anchor";
3
+ import { Entity, Ipcore, Metadata } from "../../types";
4
+ import { PublicKey } from "@solana/web3.js";
5
+ export type AdminTransactionParams = {
6
+ schemaUri: string;
7
+ entityProgram: Program<Entity>;
8
+ metadataProgram: Program<Metadata>;
9
+ ipcoreProgram: Program<Ipcore>;
10
+ payer: PublicKey;
11
+ registrationFee: number;
12
+ schemaVersion: string;
13
+ schemaJson: string;
14
+ schemaId: string;
15
+ };
16
+ export declare function initAdminInstructions({ schemaUri, schemaId, schemaJson, schemaVersion, entityProgram, metadataProgram, ipcoreProgram, payer, registrationFee, }: AdminTransactionParams): Promise<{
17
+ transaction: anchor.web3.Transaction;
18
+ }>;
@@ -0,0 +1,43 @@
1
+ import * as anchor from "@coral-xyz/anchor";
2
+ import { deriveRegistryConfigPda } from "../../pda";
3
+ import { buildInitEntityCounterInstruction, buildInitializeRegistryConfigIx, buildInitializeRegistryConfigTreasuryIx, buildInitIpRegistryInstruction, buildRegisterSchemaIx, } from "../../instructions";
4
+ import { LAMPORTS_PER_SOL } from "@solana/web3.js";
5
+ import { buildInitIpCounterInstruction } from "../../instructions/ipcore/initIpCounter";
6
+ export async function initAdminInstructions({ schemaUri, schemaId, schemaJson, schemaVersion, entityProgram, metadataProgram, ipcoreProgram, payer, registrationFee, }) {
7
+ const [registryConfigPda] = deriveRegistryConfigPda();
8
+ const schemaInstruction = await buildRegisterSchemaIx({
9
+ program: metadataProgram,
10
+ version: schemaVersion,
11
+ creator: payer,
12
+ schemaUri: schemaUri,
13
+ schemaJson,
14
+ schemaId,
15
+ });
16
+ const registryConfigIx = await buildInitializeRegistryConfigIx({
17
+ program: ipcoreProgram,
18
+ authority: payer,
19
+ feeLamports: new anchor.BN(registrationFee * LAMPORTS_PER_SOL),
20
+ });
21
+ const registryConfigTreasuryIx = await buildInitializeRegistryConfigTreasuryIx({
22
+ program: ipcoreProgram,
23
+ registryConfig: registryConfigPda,
24
+ authority: payer,
25
+ });
26
+ const entityCounterIx = await buildInitEntityCounterInstruction({
27
+ program: entityProgram,
28
+ payer,
29
+ });
30
+ const ipCounterIx = await buildInitIpCounterInstruction({
31
+ program: ipcoreProgram,
32
+ payer,
33
+ });
34
+ const { instruction: ipRegistryInstruction } = await buildInitIpRegistryInstruction(ipcoreProgram, payer);
35
+ const transaction = new anchor.web3.Transaction()
36
+ .add(schemaInstruction)
37
+ .add(registryConfigIx)
38
+ .add(registryConfigTreasuryIx)
39
+ .add(entityCounterIx)
40
+ .add(ipCounterIx)
41
+ .add(ipRegistryInstruction);
42
+ return { transaction };
43
+ }
@@ -0,0 +1 @@
1
+ export * from "./adminTransaction";
@@ -0,0 +1 @@
1
+ export * from "./adminTransaction";
@@ -0,0 +1,17 @@
1
+ import type { Program } from "@coral-xyz/anchor";
2
+ import * as anchor from "@coral-xyz/anchor";
3
+ import type { Entity } from "../../types/entity";
4
+ export type AssertControllerThresholdTransactionParams = {
5
+ program: Program<Entity>;
6
+ owner: anchor.web3.PublicKey;
7
+ entityIndex: anchor.BN;
8
+ controllers: anchor.web3.PublicKey[];
9
+ };
10
+ /**
11
+ * Returns a Transaction containing an AssertControllerThreshold instruction.
12
+ * Does NOT sign or send the transaction.
13
+ */
14
+ export declare function assertControllerThresholdTransaction({ program, owner, entityIndex, controllers, }: AssertControllerThresholdTransactionParams): Promise<{
15
+ transaction: anchor.web3.Transaction;
16
+ entityPda: anchor.web3.PublicKey;
17
+ }>;
@@ -0,0 +1,18 @@
1
+ import * as anchor from "@coral-xyz/anchor";
2
+ import { buildAssertControllerThresholdInstruction } from "../../instructions";
3
+ /**
4
+ * Returns a Transaction containing an AssertControllerThreshold instruction.
5
+ * Does NOT sign or send the transaction.
6
+ */
7
+ export async function assertControllerThresholdTransaction({ program, owner, entityIndex, controllers, }) {
8
+ // Build the instruction
9
+ const { instruction, entityPda } = buildAssertControllerThresholdInstruction({
10
+ program,
11
+ owner,
12
+ controllers,
13
+ entityIndex,
14
+ });
15
+ // Create a transaction and add the instruction
16
+ const transaction = new anchor.web3.Transaction().add(await instruction);
17
+ return { transaction, entityPda };
18
+ }
@@ -0,0 +1,5 @@
1
+ export * from "./assertControllerThreshold";
2
+ export * from "./initEntityTreasury";
3
+ export * from "./registerEntity";
4
+ export * from "./updateControllers";
5
+ export * from "./initEntityCounter";
@@ -0,0 +1,5 @@
1
+ export * from "./assertControllerThreshold";
2
+ export * from "./initEntityTreasury";
3
+ export * from "./registerEntity";
4
+ export * from "./updateControllers";
5
+ export * from "./initEntityCounter";
@@ -0,0 +1,14 @@
1
+ import type { Program } from "@coral-xyz/anchor";
2
+ import * as anchor from "@coral-xyz/anchor";
3
+ import type { Entity } from "../../types/entity";
4
+ export type InitEntityCounterTransactionParams = {
5
+ program: Program<Entity>;
6
+ payer: anchor.web3.PublicKey;
7
+ };
8
+ /**
9
+ * Returns a Transaction containing an InitEntityCounter instruction.
10
+ * Does NOT sign or send the transaction.
11
+ */
12
+ export declare function initEntityCounterTransaction({ program, payer, }: InitEntityCounterTransactionParams): Promise<{
13
+ transaction: anchor.web3.Transaction;
14
+ }>;
@@ -0,0 +1,16 @@
1
+ import * as anchor from "@coral-xyz/anchor";
2
+ import { buildInitEntityCounterInstruction } from "../../instructions";
3
+ /**
4
+ * Returns a Transaction containing an InitEntityCounter instruction.
5
+ * Does NOT sign or send the transaction.
6
+ */
7
+ export async function initEntityCounterTransaction({ program, payer, }) {
8
+ // Build the instruction
9
+ const instruction = await buildInitEntityCounterInstruction({
10
+ program,
11
+ payer,
12
+ });
13
+ // Create a transaction and add the instruction
14
+ const transaction = new anchor.web3.Transaction().add(instruction);
15
+ return { transaction };
16
+ }
@@ -0,0 +1,16 @@
1
+ import type { Program } from "@coral-xyz/anchor";
2
+ import * as anchor from "@coral-xyz/anchor";
3
+ import type { Entity } from "../../types/entity";
4
+ export type InitEntityTreasuryTransactionParams = {
5
+ program: Program<Entity>;
6
+ entityPda: anchor.web3.PublicKey;
7
+ payer: anchor.web3.PublicKey;
8
+ controllers: anchor.web3.PublicKey[];
9
+ };
10
+ /**
11
+ * Returns a Transaction containing an InitEntityTreasury instruction.
12
+ * Does NOT sign or send the transaction.
13
+ */
14
+ export declare function initEntityTreasuryTransaction({ program, entityPda, payer, controllers, }: InitEntityTreasuryTransactionParams): Promise<{
15
+ transaction: anchor.web3.Transaction;
16
+ }>;
@@ -0,0 +1,18 @@
1
+ import * as anchor from "@coral-xyz/anchor";
2
+ import { buildInitEntityTreasuryInstruction } from "../../instructions";
3
+ /**
4
+ * Returns a Transaction containing an InitEntityTreasury instruction.
5
+ * Does NOT sign or send the transaction.
6
+ */
7
+ export async function initEntityTreasuryTransaction({ program, entityPda, payer, controllers, }) {
8
+ // Build the instruction
9
+ const { instruction } = buildInitEntityTreasuryInstruction({
10
+ program,
11
+ entityPda,
12
+ payer,
13
+ controllers,
14
+ });
15
+ // Create a transaction and add the instruction
16
+ const transaction = new anchor.web3.Transaction().add(await instruction);
17
+ return { transaction };
18
+ }
@@ -0,0 +1,19 @@
1
+ import type { Program } from "@coral-xyz/anchor";
2
+ import * as anchor from "@coral-xyz/anchor";
3
+ import type { Entity } from "../../types/entity";
4
+ import { Metadata } from "../../types";
5
+ export type CreateEntityTransactionParams = {
6
+ program: Program<Entity>;
7
+ metadataProgram: Program<Metadata>;
8
+ controllers: anchor.web3.PublicKey[];
9
+ threshold: number;
10
+ metadataUri: string;
11
+ payer: anchor.web3.PublicKey;
12
+ };
13
+ /**
14
+ * Returns a Transaction containing a RegisterEntity instruction
15
+ * Does NOT sign or send the transaction
16
+ */
17
+ export declare function createEntityTransaction({ program, metadataProgram, controllers, threshold, metadataUri, payer, }: CreateEntityTransactionParams): Promise<{
18
+ transaction: anchor.web3.Transaction;
19
+ }>;
@@ -0,0 +1,44 @@
1
+ import * as anchor from "@coral-xyz/anchor";
2
+ import { buildCreateEntityMetadataIx, buildRegisterEntityInstruction, } from "../../instructions";
3
+ import { deriveEntityCounterPda, deriveEntityPda, deriveSchemaPda, } from "../../pda";
4
+ /**
5
+ * Returns a Transaction containing a RegisterEntity instruction
6
+ * Does NOT sign or send the transaction
7
+ */
8
+ export async function createEntityTransaction({ program, metadataProgram, controllers, threshold, metadataUri, payer, }) {
9
+ let entityIndex = new anchor.BN(0);
10
+ const [entityCounterPda] = deriveEntityCounterPda();
11
+ const currentCounter = await program.account.entityCounter.fetchNullable(entityCounterPda);
12
+ if (currentCounter) {
13
+ entityIndex = currentCounter.nextEntityIndex;
14
+ }
15
+ // Build the instruction using our reusable helper
16
+ const instruction = await buildRegisterEntityInstruction({
17
+ program,
18
+ controllers,
19
+ threshold,
20
+ payer,
21
+ });
22
+ const [entityPda] = deriveEntityPda(payer, entityIndex);
23
+ const schemaId = "metadata.registry";
24
+ const schemaVersion = "1.0.0";
25
+ const [schemaPda] = deriveSchemaPda(schemaId, schemaVersion);
26
+ const currentSchema = await metadataProgram.account.schemaRegistry.fetchNullable(schemaPda);
27
+ if (!currentSchema) {
28
+ throw new Error(`Schema not registered: version=${schemaVersion.toString()}`);
29
+ }
30
+ const metadataInstruction = await buildCreateEntityMetadataIx({
31
+ program: metadataProgram,
32
+ entityPda: entityPda,
33
+ schemaPda: schemaPda,
34
+ version: new anchor.BN(1),
35
+ metadataUri,
36
+ payer,
37
+ controllers,
38
+ });
39
+ // Create a transaction and add the instruction
40
+ const transaction = new anchor.web3.Transaction();
41
+ transaction.add(instruction);
42
+ transaction.add(metadataInstruction);
43
+ return { transaction };
44
+ }
@@ -0,0 +1,19 @@
1
+ import type { Program } from "@coral-xyz/anchor";
2
+ import * as anchor from "@coral-xyz/anchor";
3
+ import type { Entity } from "../../types/entity";
4
+ export type UpdateControllersTransactionParams = {
5
+ program: Program<Entity>;
6
+ owner: anchor.web3.PublicKey;
7
+ entityIndex: anchor.BN;
8
+ newControllers: anchor.web3.PublicKey[];
9
+ newThreshold: number;
10
+ controllers: anchor.web3.PublicKey[];
11
+ };
12
+ /**
13
+ * Returns a Transaction containing an UpdateControllers instruction.
14
+ * Does NOT sign or send the transaction.
15
+ */
16
+ export declare function updateControllersTransaction({ program, owner, entityIndex, newControllers, newThreshold, controllers, }: UpdateControllersTransactionParams): Promise<{
17
+ transaction: anchor.web3.Transaction;
18
+ entityPda: anchor.web3.PublicKey;
19
+ }>;
@@ -0,0 +1,20 @@
1
+ import * as anchor from "@coral-xyz/anchor";
2
+ import { buildUpdateControllersInstruction } from "../../instructions";
3
+ /**
4
+ * Returns a Transaction containing an UpdateControllers instruction.
5
+ * Does NOT sign or send the transaction.
6
+ */
7
+ export async function updateControllersTransaction({ program, owner, entityIndex, newControllers, newThreshold, controllers, }) {
8
+ // Build the instruction
9
+ const { instruction, entityPda } = buildUpdateControllersInstruction({
10
+ program,
11
+ owner,
12
+ entityIndex,
13
+ newControllers,
14
+ newThreshold,
15
+ controllers,
16
+ });
17
+ // Create a transaction and add the instruction
18
+ const transaction = new anchor.web3.Transaction().add(await instruction);
19
+ return { transaction, entityPda };
20
+ }
@@ -0,0 +1,4 @@
1
+ export * from "./entity";
2
+ export * from "./ipcore";
3
+ export * from "./metadata";
4
+ export * from "./admin";
@@ -0,0 +1,4 @@
1
+ export * from "./entity";
2
+ export * from "./ipcore";
3
+ export * from "./metadata";
4
+ export * from "./admin";
@@ -0,0 +1,14 @@
1
+ import type { Program } from "@coral-xyz/anchor";
2
+ import { type PublicKey, Transaction } from "@solana/web3.js";
3
+ import type { Ipcore } from "../../types/ipcore";
4
+ export type AddDerivativeLinkTransactionParams = {
5
+ program: Program<Ipcore>;
6
+ derivativeLink: PublicKey;
7
+ };
8
+ /**
9
+ * Returns a Transaction containing the addDerivativeLink instruction.
10
+ * Does NOT sign or send the transaction.
11
+ */
12
+ export declare function addDerivativeLinkTransaction({ program, derivativeLink, }: AddDerivativeLinkTransactionParams): Promise<{
13
+ transaction: Transaction;
14
+ }>;
@@ -0,0 +1,15 @@
1
+ import { Transaction } from "@solana/web3.js";
2
+ import { buildAddDerivativeLinkInstruction } from "../../instructions";
3
+ /**
4
+ * Returns a Transaction containing the addDerivativeLink instruction.
5
+ * Does NOT sign or send the transaction.
6
+ */
7
+ export async function addDerivativeLinkTransaction({ program, derivativeLink, }) {
8
+ // Build the instruction
9
+ const { instruction } = await buildAddDerivativeLinkInstruction(program, {
10
+ derivativeLink,
11
+ });
12
+ // Create a transaction and add the instruction
13
+ const transaction = new Transaction().add(instruction);
14
+ return { transaction };
15
+ }
@@ -0,0 +1,15 @@
1
+ import type * as anchor from "@coral-xyz/anchor";
2
+ import type { Program } from "@coral-xyz/anchor";
3
+ import { Transaction } from "@solana/web3.js";
4
+ import type { Ipcore } from "../../types/ipcore";
5
+ export type AddIpAssetTransactionParams = {
6
+ program: Program<Ipcore>;
7
+ ipAsset: anchor.web3.PublicKey;
8
+ };
9
+ /**
10
+ * Returns a Transaction containing the addIpAsset instruction.
11
+ * Does NOT sign or send the transaction.
12
+ */
13
+ export declare function addIpAssetTransaction({ program, ipAsset, }: AddIpAssetTransactionParams): Promise<{
14
+ transaction: Transaction;
15
+ }>;
@@ -0,0 +1,13 @@
1
+ import { Transaction } from "@solana/web3.js";
2
+ import { buildAddIpAssetInstruction } from "../../instructions";
3
+ /**
4
+ * Returns a Transaction containing the addIpAsset instruction.
5
+ * Does NOT sign or send the transaction.
6
+ */
7
+ export async function addIpAssetTransaction({ program, ipAsset, }) {
8
+ // Build the instruction
9
+ const instruction = await buildAddIpAssetInstruction({ program, ipAsset });
10
+ // Create a transaction and add the instruction
11
+ const transaction = new Transaction().add(instruction);
12
+ return { transaction };
13
+ }
@@ -0,0 +1,19 @@
1
+ import type * as anchor from "@coral-xyz/anchor";
2
+ import type { BN, Program } from "@coral-xyz/anchor";
3
+ import { Transaction } from "@solana/web3.js";
4
+ import type { Ipcore } from "../../types/ipcore";
5
+ export type CreateDerivativeLinkTransactionParams = {
6
+ program: Program<Ipcore>;
7
+ parentIpId: BN;
8
+ childIpId: BN;
9
+ authority: anchor.web3.PublicKey;
10
+ entityPda: anchor.web3.PublicKey;
11
+ };
12
+ /**
13
+ * Returns a Transaction containing the createDerivativeLink instruction.
14
+ * Does NOT sign or send the transaction.
15
+ */
16
+ export declare function createDerivativeLinkTransaction({ program, parentIpId, childIpId, authority, entityPda, }: CreateDerivativeLinkTransactionParams): Promise<{
17
+ transaction: Transaction;
18
+ derivativeLinkPda: anchor.web3.PublicKey;
19
+ }>;
@@ -0,0 +1,18 @@
1
+ import { Transaction } from "@solana/web3.js";
2
+ import { buildCreateDerivativeLinkInstruction } from "../../instructions";
3
+ /**
4
+ * Returns a Transaction containing the createDerivativeLink instruction.
5
+ * Does NOT sign or send the transaction.
6
+ */
7
+ export async function createDerivativeLinkTransaction({ program, parentIpId, childIpId, authority, entityPda, }) {
8
+ // Build the instruction
9
+ const { instruction, derivativeLinkPda } = await buildCreateDerivativeLinkInstruction(program, {
10
+ parentIpId,
11
+ childIpId,
12
+ authority,
13
+ entityPda,
14
+ });
15
+ // Create a transaction and add the instruction
16
+ const transaction = new Transaction().add(instruction);
17
+ return { transaction, derivativeLinkPda };
18
+ }
@@ -0,0 +1,20 @@
1
+ import type { Program } from "@coral-xyz/anchor";
2
+ import { type PublicKey, Transaction } from "@solana/web3.js";
3
+ import type { Ipcore } from "../../types/ipcore";
4
+ export type CreateProvenanceClaimTransactionParams = {
5
+ program: Program<Ipcore>;
6
+ ipAssetPda: PublicKey;
7
+ entity: PublicKey;
8
+ payer: PublicKey;
9
+ evidenceHash: Buffer;
10
+ uri: string;
11
+ controllers: PublicKey[];
12
+ };
13
+ /**
14
+ * Returns a Transaction containing the createProvenanceClaim instruction.
15
+ * Does NOT sign or send the transaction.
16
+ */
17
+ export declare function createProvenanceClaimTransaction({ program, ipAssetPda, entity, payer, evidenceHash, uri, controllers, }: CreateProvenanceClaimTransactionParams): Promise<{
18
+ transaction: Transaction;
19
+ provenancePda: PublicKey;
20
+ }>;
@@ -0,0 +1,20 @@
1
+ import { Transaction } from "@solana/web3.js";
2
+ import { buildCreateProvenanceClaimInstruction } from "../../instructions";
3
+ /**
4
+ * Returns a Transaction containing the createProvenanceClaim instruction.
5
+ * Does NOT sign or send the transaction.
6
+ */
7
+ export async function createProvenanceClaimTransaction({ program, ipAssetPda, entity, payer, evidenceHash, uri, controllers, }) {
8
+ // Build the instruction
9
+ const { instruction, provenancePda } = await buildCreateProvenanceClaimInstruction(program, {
10
+ ipAssetPda,
11
+ entity,
12
+ payer,
13
+ evidenceHash,
14
+ uri,
15
+ controllers,
16
+ });
17
+ // Create a transaction and add the instruction
18
+ const transaction = new Transaction().add(instruction);
19
+ return { transaction, provenancePda };
20
+ }
@@ -0,0 +1,12 @@
1
+ export * from "./addDerivativeLink";
2
+ export * from "./addIpAsset";
3
+ export * from "./createDerivativeLink";
4
+ export * from "./createProvenanceClaim";
5
+ export * from "./initIpRegistry";
6
+ export * from "./initializeRegistryConfig";
7
+ export * from "./initializeRegistryConfigTreasury";
8
+ export * from "./initModuleConfig";
9
+ export * from "./registerIpAsset";
10
+ export * from "./resolveParent";
11
+ export * from "./updateRegistryConfig";
12
+ export * from "./initIpCounter";
@@ -0,0 +1,12 @@
1
+ export * from "./addDerivativeLink";
2
+ export * from "./addIpAsset";
3
+ export * from "./createDerivativeLink";
4
+ export * from "./createProvenanceClaim";
5
+ export * from "./initIpRegistry";
6
+ export * from "./initializeRegistryConfig";
7
+ export * from "./initializeRegistryConfigTreasury";
8
+ export * from "./initModuleConfig";
9
+ export * from "./registerIpAsset";
10
+ export * from "./resolveParent";
11
+ export * from "./updateRegistryConfig";
12
+ export * from "./initIpCounter";