Update to use published packages. Update types. Update readme. Fix tests.

This commit is contained in:
2026-05-04 04:45:31 +00:00
parent 531e53d2ae
commit ccfaf3fd70
7 changed files with 1352 additions and 1381 deletions

View File

@@ -2,7 +2,7 @@ import type {
AcceptInvitationParameters,
AppendInvitationParameters,
Engine,
FindSuitableResourcesParameters,
GetSpendableResourcesParameters,
} from "@xo-cash/engine";
import { hasInvitationExpired, mergeInvitationCommits } from "@xo-cash/engine";
import type {
@@ -483,12 +483,27 @@ export class Invitation extends EventEmitter<InvitationEventMap> {
}
async findSuitableResources(
options: Partial<FindSuitableResourcesParameters> = {},
options: Partial<GetSpendableResourcesParameters> = {},
): Promise<UnspentOutputData[]> {
const templateIdentifier =
options.templateIdentifier ?? this.data.templateIdentifier;
const template = await this.engine.getTemplate(templateIdentifier);
const fallbackOutputIdentifier = Object.keys(template?.outputs ?? {})[0];
if (!fallbackOutputIdentifier && !options.outputIdentifier) {
throw new Error(
`No output identifiers found for template: ${templateIdentifier}`,
);
}
const resolvedOptions: GetSpendableResourcesParameters = {
templateIdentifier,
outputIdentifier: options.outputIdentifier ?? fallbackOutputIdentifier ?? "",
};
// Find the suitable resources
const { unspentOutputs } = await this.engine.findSuitableResources(
const { unspentOutputs } = await this.engine.getSpendableResources(
this.data,
options,
resolvedOptions,
);
// Update the status of the invitation

View File

@@ -132,13 +132,12 @@ export const resolveProvidedLockingBytecodeHex = (
variableValues: Record<string, string>,
): string | undefined => {
const outputDefinition = template.outputs?.[outputIdentifier];
if (!outputDefinition || typeof outputDefinition.lockscript !== "string")
if (!outputDefinition || typeof outputDefinition.lockingScript !== "string") {
return undefined;
}
const lockingScriptDefinition = (
template.lockingScripts as Record<string, unknown> | undefined
)?.[outputDefinition.lockscript] as { lockingScript?: string } | undefined;
const scriptIdentifier = lockingScriptDefinition?.lockingScript;
const lockingScriptDefinition = template.lockingScripts?.[outputDefinition.lockingScript];
const scriptIdentifier = lockingScriptDefinition?.lockingBytecode;
if (!scriptIdentifier) return undefined;
const scriptExpression = (