@codama/nodes-from-anchor
Advanced tools
+63
-13
@@ -258,8 +258,32 @@ 'use strict'; | ||
| } | ||
| function instructionAccountNodesFromAnchorV00(idl) { | ||
| function hasDuplicateAccountNames(idl) { | ||
| const seenNames = /* @__PURE__ */ new Set(); | ||
| function checkDuplicates(items) { | ||
| for (const item of items) { | ||
| if ("accounts" in item) { | ||
| if (checkDuplicates(item.accounts)) { | ||
| return true; | ||
| } | ||
| } else { | ||
| const name = nodes.camelCase(item.name ?? ""); | ||
| if (seenNames.has(name)) { | ||
| return true; | ||
| } | ||
| seenNames.add(name); | ||
| } | ||
| } | ||
| return false; | ||
| } | ||
| return checkDuplicates(idl); | ||
| } | ||
| function instructionAccountNodesFromAnchorV00(idl, prefix) { | ||
| const shouldPrefix = prefix !== void 0 || hasDuplicateAccountNames(idl); | ||
| return idl.flatMap( | ||
| (account) => "accounts" in account ? instructionAccountNodesFromAnchorV00(account.accounts) : [instructionAccountNodeFromAnchorV00(account)] | ||
| (account) => "accounts" in account ? instructionAccountNodesFromAnchorV00( | ||
| account.accounts, | ||
| shouldPrefix ? prefix ? `${prefix}_${account.name}` : account.name : void 0 | ||
| ) : [instructionAccountNodeFromAnchorV00(account, shouldPrefix ? prefix : void 0)] | ||
| ); | ||
| } | ||
| function instructionAccountNodeFromAnchorV00(idl) { | ||
| function instructionAccountNodeFromAnchorV00(idl, prefix) { | ||
| const isOptional = idl.optional ?? idl.isOptional ?? false; | ||
@@ -272,3 +296,3 @@ const desc = idl.desc ? [idl.desc] : void 0; | ||
| isWritable: idl.isMut ?? false, | ||
| name: idl.name ?? "" | ||
| name: prefix ? `${prefix}_${idl.name ?? ""}` : idl.name ?? "" | ||
| }); | ||
@@ -617,3 +641,3 @@ } | ||
| } | ||
| function pdaSeedNodeFromAnchorV01(seed, instructionArguments) { | ||
| function pdaSeedNodeFromAnchorV01(seed, instructionArguments, prefix) { | ||
| const kind = seed.kind; | ||
@@ -627,5 +651,6 @@ switch (kind) { | ||
| const [accountName] = seed.path.split("."); | ||
| const prefixedAccountName = prefix ? `${prefix}_${accountName}` : accountName; | ||
| return { | ||
| definition: nodes.variablePdaSeedNode(accountName, nodes.publicKeyTypeNode()), | ||
| value: nodes.pdaSeedValueNode(accountName, nodes.accountValueNode(accountName)) | ||
| definition: nodes.variablePdaSeedNode(prefixedAccountName, nodes.publicKeyTypeNode()), | ||
| value: nodes.pdaSeedValueNode(prefixedAccountName, nodes.accountValueNode(prefixedAccountName)) | ||
| }; | ||
@@ -653,8 +678,33 @@ } | ||
| // src/v01/InstructionAccountNode.ts | ||
| function instructionAccountNodesFromAnchorV01(idl, instructionArguments) { | ||
| function hasDuplicateAccountNames2(idl) { | ||
| const seenNames = /* @__PURE__ */ new Set(); | ||
| function checkDuplicates(items) { | ||
| for (const item of items) { | ||
| if ("accounts" in item) { | ||
| if (checkDuplicates(item.accounts)) { | ||
| return true; | ||
| } | ||
| } else { | ||
| const name = nodes.camelCase(item.name ?? ""); | ||
| if (seenNames.has(name)) { | ||
| return true; | ||
| } | ||
| seenNames.add(name); | ||
| } | ||
| } | ||
| return false; | ||
| } | ||
| return checkDuplicates(idl); | ||
| } | ||
| function instructionAccountNodesFromAnchorV01(idl, instructionArguments, prefix) { | ||
| const shouldPrefix = prefix !== void 0 || hasDuplicateAccountNames2(idl); | ||
| return idl.flatMap( | ||
| (account) => "accounts" in account ? instructionAccountNodesFromAnchorV01(account.accounts, instructionArguments) : [instructionAccountNodeFromAnchorV01(account, instructionArguments)] | ||
| (account) => "accounts" in account ? instructionAccountNodesFromAnchorV01( | ||
| account.accounts, | ||
| instructionArguments, | ||
| shouldPrefix ? prefix ? `${prefix}_${account.name}` : account.name : void 0 | ||
| ) : [instructionAccountNodeFromAnchorV01(account, instructionArguments, shouldPrefix ? prefix : void 0)] | ||
| ); | ||
| } | ||
| function instructionAccountNodeFromAnchorV01(idl, instructionArguments) { | ||
| function instructionAccountNodeFromAnchorV01(idl, instructionArguments, prefix) { | ||
| const isOptional = idl.optional ?? false; | ||
@@ -664,3 +714,3 @@ const docs = idl.docs ?? []; | ||
| const isWritable = idl.writable ?? false; | ||
| const name = idl.name ?? ""; | ||
| const name = prefix ? `${prefix}_${idl.name ?? ""}` : idl.name ?? ""; | ||
| let defaultValue; | ||
@@ -674,3 +724,3 @@ if (idl.address) { | ||
| ([seeds, lookups], seed) => { | ||
| const { definition, value } = pdaSeedNodeFromAnchorV01(seed, instructionArguments); | ||
| const { definition, value } = pdaSeedNodeFromAnchorV01(seed, instructionArguments, prefix); | ||
| return [[...seeds, definition], value ? [...lookups, value] : lookups]; | ||
@@ -683,3 +733,3 @@ }, | ||
| if (idl.pda.program !== void 0) { | ||
| const { definition, value } = pdaSeedNodeFromAnchorV01(idl.pda.program, instructionArguments); | ||
| const { definition, value } = pdaSeedNodeFromAnchorV01(idl.pda.program, instructionArguments, prefix); | ||
| if (nodes.isNode(definition, "constantPdaSeedNode") && nodes.isNode(definition.value, "bytesValueNode") && definition.value.encoding === "base58") { | ||
@@ -686,0 +736,0 @@ programId = definition.value.data; |
+63
-13
@@ -256,8 +256,32 @@ import { rootNodeVisitor, deduplicateIdenticalDefinedTypesVisitor, setFixedAccountSizesVisitor, setInstructionAccountDefaultValuesVisitor, getCommonInstructionAccountDefaultRules, unwrapInstructionArgsDefinedTypesVisitor, flattenInstructionDataArgumentsVisitor, transformU8ArraysToBytesVisitor, visit } from '@codama/visitors'; | ||
| } | ||
| function instructionAccountNodesFromAnchorV00(idl) { | ||
| function hasDuplicateAccountNames(idl) { | ||
| const seenNames = /* @__PURE__ */ new Set(); | ||
| function checkDuplicates(items) { | ||
| for (const item of items) { | ||
| if ("accounts" in item) { | ||
| if (checkDuplicates(item.accounts)) { | ||
| return true; | ||
| } | ||
| } else { | ||
| const name = camelCase(item.name ?? ""); | ||
| if (seenNames.has(name)) { | ||
| return true; | ||
| } | ||
| seenNames.add(name); | ||
| } | ||
| } | ||
| return false; | ||
| } | ||
| return checkDuplicates(idl); | ||
| } | ||
| function instructionAccountNodesFromAnchorV00(idl, prefix) { | ||
| const shouldPrefix = prefix !== void 0 || hasDuplicateAccountNames(idl); | ||
| return idl.flatMap( | ||
| (account) => "accounts" in account ? instructionAccountNodesFromAnchorV00(account.accounts) : [instructionAccountNodeFromAnchorV00(account)] | ||
| (account) => "accounts" in account ? instructionAccountNodesFromAnchorV00( | ||
| account.accounts, | ||
| shouldPrefix ? prefix ? `${prefix}_${account.name}` : account.name : void 0 | ||
| ) : [instructionAccountNodeFromAnchorV00(account, shouldPrefix ? prefix : void 0)] | ||
| ); | ||
| } | ||
| function instructionAccountNodeFromAnchorV00(idl) { | ||
| function instructionAccountNodeFromAnchorV00(idl, prefix) { | ||
| const isOptional = idl.optional ?? idl.isOptional ?? false; | ||
@@ -270,3 +294,3 @@ const desc = idl.desc ? [idl.desc] : void 0; | ||
| isWritable: idl.isMut ?? false, | ||
| name: idl.name ?? "" | ||
| name: prefix ? `${prefix}_${idl.name ?? ""}` : idl.name ?? "" | ||
| }); | ||
@@ -615,3 +639,3 @@ } | ||
| } | ||
| function pdaSeedNodeFromAnchorV01(seed, instructionArguments) { | ||
| function pdaSeedNodeFromAnchorV01(seed, instructionArguments, prefix) { | ||
| const kind = seed.kind; | ||
@@ -625,5 +649,6 @@ switch (kind) { | ||
| const [accountName] = seed.path.split("."); | ||
| const prefixedAccountName = prefix ? `${prefix}_${accountName}` : accountName; | ||
| return { | ||
| definition: variablePdaSeedNode(accountName, publicKeyTypeNode()), | ||
| value: pdaSeedValueNode(accountName, accountValueNode(accountName)) | ||
| definition: variablePdaSeedNode(prefixedAccountName, publicKeyTypeNode()), | ||
| value: pdaSeedValueNode(prefixedAccountName, accountValueNode(prefixedAccountName)) | ||
| }; | ||
@@ -651,8 +676,33 @@ } | ||
| // src/v01/InstructionAccountNode.ts | ||
| function instructionAccountNodesFromAnchorV01(idl, instructionArguments) { | ||
| function hasDuplicateAccountNames2(idl) { | ||
| const seenNames = /* @__PURE__ */ new Set(); | ||
| function checkDuplicates(items) { | ||
| for (const item of items) { | ||
| if ("accounts" in item) { | ||
| if (checkDuplicates(item.accounts)) { | ||
| return true; | ||
| } | ||
| } else { | ||
| const name = camelCase(item.name ?? ""); | ||
| if (seenNames.has(name)) { | ||
| return true; | ||
| } | ||
| seenNames.add(name); | ||
| } | ||
| } | ||
| return false; | ||
| } | ||
| return checkDuplicates(idl); | ||
| } | ||
| function instructionAccountNodesFromAnchorV01(idl, instructionArguments, prefix) { | ||
| const shouldPrefix = prefix !== void 0 || hasDuplicateAccountNames2(idl); | ||
| return idl.flatMap( | ||
| (account) => "accounts" in account ? instructionAccountNodesFromAnchorV01(account.accounts, instructionArguments) : [instructionAccountNodeFromAnchorV01(account, instructionArguments)] | ||
| (account) => "accounts" in account ? instructionAccountNodesFromAnchorV01( | ||
| account.accounts, | ||
| instructionArguments, | ||
| shouldPrefix ? prefix ? `${prefix}_${account.name}` : account.name : void 0 | ||
| ) : [instructionAccountNodeFromAnchorV01(account, instructionArguments, shouldPrefix ? prefix : void 0)] | ||
| ); | ||
| } | ||
| function instructionAccountNodeFromAnchorV01(idl, instructionArguments) { | ||
| function instructionAccountNodeFromAnchorV01(idl, instructionArguments, prefix) { | ||
| const isOptional = idl.optional ?? false; | ||
@@ -662,3 +712,3 @@ const docs = idl.docs ?? []; | ||
| const isWritable = idl.writable ?? false; | ||
| const name = idl.name ?? ""; | ||
| const name = prefix ? `${prefix}_${idl.name ?? ""}` : idl.name ?? ""; | ||
| let defaultValue; | ||
@@ -672,3 +722,3 @@ if (idl.address) { | ||
| ([seeds, lookups], seed) => { | ||
| const { definition, value } = pdaSeedNodeFromAnchorV01(seed, instructionArguments); | ||
| const { definition, value } = pdaSeedNodeFromAnchorV01(seed, instructionArguments, prefix); | ||
| return [[...seeds, definition], value ? [...lookups, value] : lookups]; | ||
@@ -681,3 +731,3 @@ }, | ||
| if (idl.pda.program !== void 0) { | ||
| const { definition, value } = pdaSeedNodeFromAnchorV01(idl.pda.program, instructionArguments); | ||
| const { definition, value } = pdaSeedNodeFromAnchorV01(idl.pda.program, instructionArguments, prefix); | ||
| if (isNode(definition, "constantPdaSeedNode") && isNode(definition.value, "bytesValueNode") && definition.value.encoding === "base58") { | ||
@@ -684,0 +734,0 @@ programId = definition.value.data; |
+63
-13
@@ -258,8 +258,32 @@ 'use strict'; | ||
| } | ||
| function instructionAccountNodesFromAnchorV00(idl) { | ||
| function hasDuplicateAccountNames(idl) { | ||
| const seenNames = /* @__PURE__ */ new Set(); | ||
| function checkDuplicates(items) { | ||
| for (const item of items) { | ||
| if ("accounts" in item) { | ||
| if (checkDuplicates(item.accounts)) { | ||
| return true; | ||
| } | ||
| } else { | ||
| const name = nodes.camelCase(item.name ?? ""); | ||
| if (seenNames.has(name)) { | ||
| return true; | ||
| } | ||
| seenNames.add(name); | ||
| } | ||
| } | ||
| return false; | ||
| } | ||
| return checkDuplicates(idl); | ||
| } | ||
| function instructionAccountNodesFromAnchorV00(idl, prefix) { | ||
| const shouldPrefix = prefix !== void 0 || hasDuplicateAccountNames(idl); | ||
| return idl.flatMap( | ||
| (account) => "accounts" in account ? instructionAccountNodesFromAnchorV00(account.accounts) : [instructionAccountNodeFromAnchorV00(account)] | ||
| (account) => "accounts" in account ? instructionAccountNodesFromAnchorV00( | ||
| account.accounts, | ||
| shouldPrefix ? prefix ? `${prefix}_${account.name}` : account.name : void 0 | ||
| ) : [instructionAccountNodeFromAnchorV00(account, shouldPrefix ? prefix : void 0)] | ||
| ); | ||
| } | ||
| function instructionAccountNodeFromAnchorV00(idl) { | ||
| function instructionAccountNodeFromAnchorV00(idl, prefix) { | ||
| const isOptional = idl.optional ?? idl.isOptional ?? false; | ||
@@ -272,3 +296,3 @@ const desc = idl.desc ? [idl.desc] : void 0; | ||
| isWritable: idl.isMut ?? false, | ||
| name: idl.name ?? "" | ||
| name: prefix ? `${prefix}_${idl.name ?? ""}` : idl.name ?? "" | ||
| }); | ||
@@ -617,3 +641,3 @@ } | ||
| } | ||
| function pdaSeedNodeFromAnchorV01(seed, instructionArguments) { | ||
| function pdaSeedNodeFromAnchorV01(seed, instructionArguments, prefix) { | ||
| const kind = seed.kind; | ||
@@ -627,5 +651,6 @@ switch (kind) { | ||
| const [accountName] = seed.path.split("."); | ||
| const prefixedAccountName = prefix ? `${prefix}_${accountName}` : accountName; | ||
| return { | ||
| definition: nodes.variablePdaSeedNode(accountName, nodes.publicKeyTypeNode()), | ||
| value: nodes.pdaSeedValueNode(accountName, nodes.accountValueNode(accountName)) | ||
| definition: nodes.variablePdaSeedNode(prefixedAccountName, nodes.publicKeyTypeNode()), | ||
| value: nodes.pdaSeedValueNode(prefixedAccountName, nodes.accountValueNode(prefixedAccountName)) | ||
| }; | ||
@@ -653,8 +678,33 @@ } | ||
| // src/v01/InstructionAccountNode.ts | ||
| function instructionAccountNodesFromAnchorV01(idl, instructionArguments) { | ||
| function hasDuplicateAccountNames2(idl) { | ||
| const seenNames = /* @__PURE__ */ new Set(); | ||
| function checkDuplicates(items) { | ||
| for (const item of items) { | ||
| if ("accounts" in item) { | ||
| if (checkDuplicates(item.accounts)) { | ||
| return true; | ||
| } | ||
| } else { | ||
| const name = nodes.camelCase(item.name ?? ""); | ||
| if (seenNames.has(name)) { | ||
| return true; | ||
| } | ||
| seenNames.add(name); | ||
| } | ||
| } | ||
| return false; | ||
| } | ||
| return checkDuplicates(idl); | ||
| } | ||
| function instructionAccountNodesFromAnchorV01(idl, instructionArguments, prefix) { | ||
| const shouldPrefix = prefix !== void 0 || hasDuplicateAccountNames2(idl); | ||
| return idl.flatMap( | ||
| (account) => "accounts" in account ? instructionAccountNodesFromAnchorV01(account.accounts, instructionArguments) : [instructionAccountNodeFromAnchorV01(account, instructionArguments)] | ||
| (account) => "accounts" in account ? instructionAccountNodesFromAnchorV01( | ||
| account.accounts, | ||
| instructionArguments, | ||
| shouldPrefix ? prefix ? `${prefix}_${account.name}` : account.name : void 0 | ||
| ) : [instructionAccountNodeFromAnchorV01(account, instructionArguments, shouldPrefix ? prefix : void 0)] | ||
| ); | ||
| } | ||
| function instructionAccountNodeFromAnchorV01(idl, instructionArguments) { | ||
| function instructionAccountNodeFromAnchorV01(idl, instructionArguments, prefix) { | ||
| const isOptional = idl.optional ?? false; | ||
@@ -664,3 +714,3 @@ const docs = idl.docs ?? []; | ||
| const isWritable = idl.writable ?? false; | ||
| const name = idl.name ?? ""; | ||
| const name = prefix ? `${prefix}_${idl.name ?? ""}` : idl.name ?? ""; | ||
| let defaultValue; | ||
@@ -674,3 +724,3 @@ if (idl.address) { | ||
| ([seeds, lookups], seed) => { | ||
| const { definition, value } = pdaSeedNodeFromAnchorV01(seed, instructionArguments); | ||
| const { definition, value } = pdaSeedNodeFromAnchorV01(seed, instructionArguments, prefix); | ||
| return [[...seeds, definition], value ? [...lookups, value] : lookups]; | ||
@@ -683,3 +733,3 @@ }, | ||
| if (idl.pda.program !== void 0) { | ||
| const { definition, value } = pdaSeedNodeFromAnchorV01(idl.pda.program, instructionArguments); | ||
| const { definition, value } = pdaSeedNodeFromAnchorV01(idl.pda.program, instructionArguments, prefix); | ||
| if (nodes.isNode(definition, "constantPdaSeedNode") && nodes.isNode(definition.value, "bytesValueNode") && definition.value.encoding === "base58") { | ||
@@ -686,0 +736,0 @@ programId = definition.value.data; |
+63
-13
@@ -256,8 +256,32 @@ import { rootNodeVisitor, deduplicateIdenticalDefinedTypesVisitor, setFixedAccountSizesVisitor, setInstructionAccountDefaultValuesVisitor, getCommonInstructionAccountDefaultRules, unwrapInstructionArgsDefinedTypesVisitor, flattenInstructionDataArgumentsVisitor, transformU8ArraysToBytesVisitor, visit } from '@codama/visitors'; | ||
| } | ||
| function instructionAccountNodesFromAnchorV00(idl) { | ||
| function hasDuplicateAccountNames(idl) { | ||
| const seenNames = /* @__PURE__ */ new Set(); | ||
| function checkDuplicates(items) { | ||
| for (const item of items) { | ||
| if ("accounts" in item) { | ||
| if (checkDuplicates(item.accounts)) { | ||
| return true; | ||
| } | ||
| } else { | ||
| const name = camelCase(item.name ?? ""); | ||
| if (seenNames.has(name)) { | ||
| return true; | ||
| } | ||
| seenNames.add(name); | ||
| } | ||
| } | ||
| return false; | ||
| } | ||
| return checkDuplicates(idl); | ||
| } | ||
| function instructionAccountNodesFromAnchorV00(idl, prefix) { | ||
| const shouldPrefix = prefix !== void 0 || hasDuplicateAccountNames(idl); | ||
| return idl.flatMap( | ||
| (account) => "accounts" in account ? instructionAccountNodesFromAnchorV00(account.accounts) : [instructionAccountNodeFromAnchorV00(account)] | ||
| (account) => "accounts" in account ? instructionAccountNodesFromAnchorV00( | ||
| account.accounts, | ||
| shouldPrefix ? prefix ? `${prefix}_${account.name}` : account.name : void 0 | ||
| ) : [instructionAccountNodeFromAnchorV00(account, shouldPrefix ? prefix : void 0)] | ||
| ); | ||
| } | ||
| function instructionAccountNodeFromAnchorV00(idl) { | ||
| function instructionAccountNodeFromAnchorV00(idl, prefix) { | ||
| const isOptional = idl.optional ?? idl.isOptional ?? false; | ||
@@ -270,3 +294,3 @@ const desc = idl.desc ? [idl.desc] : void 0; | ||
| isWritable: idl.isMut ?? false, | ||
| name: idl.name ?? "" | ||
| name: prefix ? `${prefix}_${idl.name ?? ""}` : idl.name ?? "" | ||
| }); | ||
@@ -615,3 +639,3 @@ } | ||
| } | ||
| function pdaSeedNodeFromAnchorV01(seed, instructionArguments) { | ||
| function pdaSeedNodeFromAnchorV01(seed, instructionArguments, prefix) { | ||
| const kind = seed.kind; | ||
@@ -625,5 +649,6 @@ switch (kind) { | ||
| const [accountName] = seed.path.split("."); | ||
| const prefixedAccountName = prefix ? `${prefix}_${accountName}` : accountName; | ||
| return { | ||
| definition: variablePdaSeedNode(accountName, publicKeyTypeNode()), | ||
| value: pdaSeedValueNode(accountName, accountValueNode(accountName)) | ||
| definition: variablePdaSeedNode(prefixedAccountName, publicKeyTypeNode()), | ||
| value: pdaSeedValueNode(prefixedAccountName, accountValueNode(prefixedAccountName)) | ||
| }; | ||
@@ -651,8 +676,33 @@ } | ||
| // src/v01/InstructionAccountNode.ts | ||
| function instructionAccountNodesFromAnchorV01(idl, instructionArguments) { | ||
| function hasDuplicateAccountNames2(idl) { | ||
| const seenNames = /* @__PURE__ */ new Set(); | ||
| function checkDuplicates(items) { | ||
| for (const item of items) { | ||
| if ("accounts" in item) { | ||
| if (checkDuplicates(item.accounts)) { | ||
| return true; | ||
| } | ||
| } else { | ||
| const name = camelCase(item.name ?? ""); | ||
| if (seenNames.has(name)) { | ||
| return true; | ||
| } | ||
| seenNames.add(name); | ||
| } | ||
| } | ||
| return false; | ||
| } | ||
| return checkDuplicates(idl); | ||
| } | ||
| function instructionAccountNodesFromAnchorV01(idl, instructionArguments, prefix) { | ||
| const shouldPrefix = prefix !== void 0 || hasDuplicateAccountNames2(idl); | ||
| return idl.flatMap( | ||
| (account) => "accounts" in account ? instructionAccountNodesFromAnchorV01(account.accounts, instructionArguments) : [instructionAccountNodeFromAnchorV01(account, instructionArguments)] | ||
| (account) => "accounts" in account ? instructionAccountNodesFromAnchorV01( | ||
| account.accounts, | ||
| instructionArguments, | ||
| shouldPrefix ? prefix ? `${prefix}_${account.name}` : account.name : void 0 | ||
| ) : [instructionAccountNodeFromAnchorV01(account, instructionArguments, shouldPrefix ? prefix : void 0)] | ||
| ); | ||
| } | ||
| function instructionAccountNodeFromAnchorV01(idl, instructionArguments) { | ||
| function instructionAccountNodeFromAnchorV01(idl, instructionArguments, prefix) { | ||
| const isOptional = idl.optional ?? false; | ||
@@ -662,3 +712,3 @@ const docs = idl.docs ?? []; | ||
| const isWritable = idl.writable ?? false; | ||
| const name = idl.name ?? ""; | ||
| const name = prefix ? `${prefix}_${idl.name ?? ""}` : idl.name ?? ""; | ||
| let defaultValue; | ||
@@ -672,3 +722,3 @@ if (idl.address) { | ||
| ([seeds, lookups], seed) => { | ||
| const { definition, value } = pdaSeedNodeFromAnchorV01(seed, instructionArguments); | ||
| const { definition, value } = pdaSeedNodeFromAnchorV01(seed, instructionArguments, prefix); | ||
| return [[...seeds, definition], value ? [...lookups, value] : lookups]; | ||
@@ -681,3 +731,3 @@ }, | ||
| if (idl.pda.program !== void 0) { | ||
| const { definition, value } = pdaSeedNodeFromAnchorV01(idl.pda.program, instructionArguments); | ||
| const { definition, value } = pdaSeedNodeFromAnchorV01(idl.pda.program, instructionArguments, prefix); | ||
| if (isNode(definition, "constantPdaSeedNode") && isNode(definition.value, "bytesValueNode") && definition.value.encoding === "base58") { | ||
@@ -684,0 +734,0 @@ programId = definition.value.data; |
@@ -256,8 +256,32 @@ import { rootNodeVisitor, deduplicateIdenticalDefinedTypesVisitor, setFixedAccountSizesVisitor, setInstructionAccountDefaultValuesVisitor, getCommonInstructionAccountDefaultRules, unwrapInstructionArgsDefinedTypesVisitor, flattenInstructionDataArgumentsVisitor, transformU8ArraysToBytesVisitor, visit } from '@codama/visitors'; | ||
| } | ||
| function instructionAccountNodesFromAnchorV00(idl) { | ||
| function hasDuplicateAccountNames(idl) { | ||
| const seenNames = /* @__PURE__ */ new Set(); | ||
| function checkDuplicates(items) { | ||
| for (const item of items) { | ||
| if ("accounts" in item) { | ||
| if (checkDuplicates(item.accounts)) { | ||
| return true; | ||
| } | ||
| } else { | ||
| const name = camelCase(item.name ?? ""); | ||
| if (seenNames.has(name)) { | ||
| return true; | ||
| } | ||
| seenNames.add(name); | ||
| } | ||
| } | ||
| return false; | ||
| } | ||
| return checkDuplicates(idl); | ||
| } | ||
| function instructionAccountNodesFromAnchorV00(idl, prefix) { | ||
| const shouldPrefix = prefix !== void 0 || hasDuplicateAccountNames(idl); | ||
| return idl.flatMap( | ||
| (account) => "accounts" in account ? instructionAccountNodesFromAnchorV00(account.accounts) : [instructionAccountNodeFromAnchorV00(account)] | ||
| (account) => "accounts" in account ? instructionAccountNodesFromAnchorV00( | ||
| account.accounts, | ||
| shouldPrefix ? prefix ? `${prefix}_${account.name}` : account.name : void 0 | ||
| ) : [instructionAccountNodeFromAnchorV00(account, shouldPrefix ? prefix : void 0)] | ||
| ); | ||
| } | ||
| function instructionAccountNodeFromAnchorV00(idl) { | ||
| function instructionAccountNodeFromAnchorV00(idl, prefix) { | ||
| const isOptional = idl.optional ?? idl.isOptional ?? false; | ||
@@ -270,3 +294,3 @@ const desc = idl.desc ? [idl.desc] : void 0; | ||
| isWritable: idl.isMut ?? false, | ||
| name: idl.name ?? "" | ||
| name: prefix ? `${prefix}_${idl.name ?? ""}` : idl.name ?? "" | ||
| }); | ||
@@ -615,3 +639,3 @@ } | ||
| } | ||
| function pdaSeedNodeFromAnchorV01(seed, instructionArguments) { | ||
| function pdaSeedNodeFromAnchorV01(seed, instructionArguments, prefix) { | ||
| const kind = seed.kind; | ||
@@ -625,5 +649,6 @@ switch (kind) { | ||
| const [accountName] = seed.path.split("."); | ||
| const prefixedAccountName = prefix ? `${prefix}_${accountName}` : accountName; | ||
| return { | ||
| definition: variablePdaSeedNode(accountName, publicKeyTypeNode()), | ||
| value: pdaSeedValueNode(accountName, accountValueNode(accountName)) | ||
| definition: variablePdaSeedNode(prefixedAccountName, publicKeyTypeNode()), | ||
| value: pdaSeedValueNode(prefixedAccountName, accountValueNode(prefixedAccountName)) | ||
| }; | ||
@@ -651,8 +676,33 @@ } | ||
| // src/v01/InstructionAccountNode.ts | ||
| function instructionAccountNodesFromAnchorV01(idl, instructionArguments) { | ||
| function hasDuplicateAccountNames2(idl) { | ||
| const seenNames = /* @__PURE__ */ new Set(); | ||
| function checkDuplicates(items) { | ||
| for (const item of items) { | ||
| if ("accounts" in item) { | ||
| if (checkDuplicates(item.accounts)) { | ||
| return true; | ||
| } | ||
| } else { | ||
| const name = camelCase(item.name ?? ""); | ||
| if (seenNames.has(name)) { | ||
| return true; | ||
| } | ||
| seenNames.add(name); | ||
| } | ||
| } | ||
| return false; | ||
| } | ||
| return checkDuplicates(idl); | ||
| } | ||
| function instructionAccountNodesFromAnchorV01(idl, instructionArguments, prefix) { | ||
| const shouldPrefix = prefix !== void 0 || hasDuplicateAccountNames2(idl); | ||
| return idl.flatMap( | ||
| (account) => "accounts" in account ? instructionAccountNodesFromAnchorV01(account.accounts, instructionArguments) : [instructionAccountNodeFromAnchorV01(account, instructionArguments)] | ||
| (account) => "accounts" in account ? instructionAccountNodesFromAnchorV01( | ||
| account.accounts, | ||
| instructionArguments, | ||
| shouldPrefix ? prefix ? `${prefix}_${account.name}` : account.name : void 0 | ||
| ) : [instructionAccountNodeFromAnchorV01(account, instructionArguments, shouldPrefix ? prefix : void 0)] | ||
| ); | ||
| } | ||
| function instructionAccountNodeFromAnchorV01(idl, instructionArguments) { | ||
| function instructionAccountNodeFromAnchorV01(idl, instructionArguments, prefix) { | ||
| const isOptional = idl.optional ?? false; | ||
@@ -662,3 +712,3 @@ const docs = idl.docs ?? []; | ||
| const isWritable = idl.writable ?? false; | ||
| const name = idl.name ?? ""; | ||
| const name = prefix ? `${prefix}_${idl.name ?? ""}` : idl.name ?? ""; | ||
| let defaultValue; | ||
@@ -672,3 +722,3 @@ if (idl.address) { | ||
| ([seeds, lookups], seed) => { | ||
| const { definition, value } = pdaSeedNodeFromAnchorV01(seed, instructionArguments); | ||
| const { definition, value } = pdaSeedNodeFromAnchorV01(seed, instructionArguments, prefix); | ||
| return [[...seeds, definition], value ? [...lookups, value] : lookups]; | ||
@@ -681,3 +731,3 @@ }, | ||
| if (idl.pda.program !== void 0) { | ||
| const { definition, value } = pdaSeedNodeFromAnchorV01(idl.pda.program, instructionArguments); | ||
| const { definition, value } = pdaSeedNodeFromAnchorV01(idl.pda.program, instructionArguments, prefix); | ||
| if (isNode(definition, "constantPdaSeedNode") && isNode(definition.value, "bytesValueNode") && definition.value.encoding === "base58") { | ||
@@ -684,0 +734,0 @@ programId = definition.value.data; |
| import { InstructionAccountNode } from '@codama/nodes'; | ||
| import { IdlV00Account, IdlV00AccountItem } from './idl'; | ||
| export declare function instructionAccountNodesFromAnchorV00(idl: IdlV00AccountItem[]): InstructionAccountNode[]; | ||
| export declare function instructionAccountNodeFromAnchorV00(idl: IdlV00Account): InstructionAccountNode; | ||
| export declare function instructionAccountNodesFromAnchorV00(idl: IdlV00AccountItem[], prefix?: string): InstructionAccountNode[]; | ||
| export declare function instructionAccountNodeFromAnchorV00(idl: IdlV00Account, prefix?: string): InstructionAccountNode; | ||
| //# sourceMappingURL=InstructionAccountNode.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"InstructionAccountNode.d.ts","sourceRoot":"","sources":["../../../src/v00/InstructionAccountNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAA0B,MAAM,eAAe,CAAC;AAE/E,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAEzD,wBAAgB,oCAAoC,CAAC,GAAG,EAAE,iBAAiB,EAAE,GAAG,sBAAsB,EAAE,CAMvG;AAED,wBAAgB,mCAAmC,CAAC,GAAG,EAAE,aAAa,GAAG,sBAAsB,CAU9F"} | ||
| {"version":3,"file":"InstructionAccountNode.d.ts","sourceRoot":"","sources":["../../../src/v00/InstructionAccountNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,sBAAsB,EAA0B,MAAM,eAAe,CAAC;AAE1F,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAyBzD,wBAAgB,oCAAoC,CAChD,GAAG,EAAE,iBAAiB,EAAE,EACxB,MAAM,CAAC,EAAE,MAAM,GAChB,sBAAsB,EAAE,CAW1B;AAED,wBAAgB,mCAAmC,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,CAU/G"} |
| import { InstructionAccountNode, InstructionArgumentNode } from '@codama/nodes'; | ||
| import { IdlV01InstructionAccount, IdlV01InstructionAccountItem } from './idl'; | ||
| export declare function instructionAccountNodesFromAnchorV01(idl: IdlV01InstructionAccountItem[], instructionArguments: InstructionArgumentNode[]): InstructionAccountNode[]; | ||
| export declare function instructionAccountNodeFromAnchorV01(idl: IdlV01InstructionAccount, instructionArguments: InstructionArgumentNode[]): InstructionAccountNode; | ||
| export declare function instructionAccountNodesFromAnchorV01(idl: IdlV01InstructionAccountItem[], instructionArguments: InstructionArgumentNode[], prefix?: string): InstructionAccountNode[]; | ||
| export declare function instructionAccountNodeFromAnchorV01(idl: IdlV01InstructionAccount, instructionArguments: InstructionArgumentNode[], prefix?: string): InstructionAccountNode; | ||
| //# sourceMappingURL=InstructionAccountNode.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"InstructionAccountNode.d.ts","sourceRoot":"","sources":["../../../src/v01/InstructionAccountNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,sBAAsB,EAEtB,uBAAuB,EAS1B,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAc,MAAM,OAAO,CAAC;AAG3F,wBAAgB,oCAAoC,CAChD,GAAG,EAAE,4BAA4B,EAAE,EACnC,oBAAoB,EAAE,uBAAuB,EAAE,GAChD,sBAAsB,EAAE,CAM1B;AAED,wBAAgB,mCAAmC,CAC/C,GAAG,EAAE,wBAAwB,EAC7B,oBAAoB,EAAE,uBAAuB,EAAE,GAChD,sBAAsB,CAsDxB"} | ||
| {"version":3,"file":"InstructionAccountNode.d.ts","sourceRoot":"","sources":["../../../src/v01/InstructionAccountNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,sBAAsB,EAEtB,uBAAuB,EAS1B,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAc,MAAM,OAAO,CAAC;AA0B3F,wBAAgB,oCAAoC,CAChD,GAAG,EAAE,4BAA4B,EAAE,EACnC,oBAAoB,EAAE,uBAAuB,EAAE,EAC/C,MAAM,CAAC,EAAE,MAAM,GAChB,sBAAsB,EAAE,CAY1B;AAED,wBAAgB,mCAAmC,CAC/C,GAAG,EAAE,wBAAwB,EAC7B,oBAAoB,EAAE,uBAAuB,EAAE,EAC/C,MAAM,CAAC,EAAE,MAAM,GAChB,sBAAsB,CAsDxB"} |
| import { InstructionArgumentNode, PdaSeedNode, PdaSeedValueNode } from '@codama/nodes'; | ||
| import { IdlV01Seed } from './idl'; | ||
| export declare function pdaSeedNodeFromAnchorV01(seed: IdlV01Seed, instructionArguments: InstructionArgumentNode[]): Readonly<{ | ||
| export declare function pdaSeedNodeFromAnchorV01(seed: IdlV01Seed, instructionArguments: InstructionArgumentNode[], prefix?: string): Readonly<{ | ||
| definition: PdaSeedNode; | ||
@@ -5,0 +5,0 @@ value?: PdaSeedValueNode; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"PdaSeedNode.d.ts","sourceRoot":"","sources":["../../../src/v01/PdaSeedNode.ts"],"names":[],"mappings":"AAKA,OAAO,EAKH,uBAAuB,EAEvB,WAAW,EACX,gBAAgB,EAKnB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,wBAAgB,wBAAwB,CACpC,IAAI,EAAE,UAAU,EAChB,oBAAoB,EAAE,uBAAuB,EAAE,GAChD,QAAQ,CAAC;IAAE,UAAU,EAAE,WAAW,CAAC;IAAC,KAAK,CAAC,EAAE,gBAAgB,CAAA;CAAE,CAAC,CA4CjE"} | ||
| {"version":3,"file":"PdaSeedNode.d.ts","sourceRoot":"","sources":["../../../src/v01/PdaSeedNode.ts"],"names":[],"mappings":"AAKA,OAAO,EAKH,uBAAuB,EAEvB,WAAW,EACX,gBAAgB,EAKnB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,wBAAgB,wBAAwB,CACpC,IAAI,EAAE,UAAU,EAChB,oBAAoB,EAAE,uBAAuB,EAAE,EAC/C,MAAM,CAAC,EAAE,MAAM,GAChB,QAAQ,CAAC;IAAE,UAAU,EAAE,WAAW,CAAC;IAAC,KAAK,CAAC,EAAE,gBAAgB,CAAA;CAAE,CAAC,CA6CjE"} |
+2
-2
| { | ||
| "name": "@codama/nodes-from-anchor", | ||
| "version": "1.3.7", | ||
| "version": "1.3.8", | ||
| "description": "Node specifications and helpers for the Codama standard", | ||
@@ -38,3 +38,3 @@ "exports": { | ||
| "dependencies": { | ||
| "@solana/codecs": "^5.0.0", | ||
| "@solana/codecs": "^5.1.0", | ||
| "@noble/hashes": "^2.0.1", | ||
@@ -41,0 +41,0 @@ "@codama/errors": "1.5.0", |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
671868
4.53%4792
5.5%Updated