@dotdm/cdm 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cdm.d.ts ADDED
@@ -0,0 +1,21 @@
1
+ import type { PolkadotClient, HexString } from "polkadot-api";
2
+ import type { InkSdk } from "@polkadot-api/sdk-ink";
3
+ import type { CdmContract, CdmContracts, CdmOptions } from "./types";
4
+ export declare class Cdm {
5
+ private cdmJson;
6
+ private cdmJsonPath;
7
+ private targetHash;
8
+ private _client;
9
+ private _inkSdk;
10
+ private ownsClient;
11
+ private defaultOrigin?;
12
+ private defaultSigner?;
13
+ constructor(options?: CdmOptions);
14
+ get client(): PolkadotClient;
15
+ get inkSdk(): InkSdk;
16
+ getContract<K extends string & keyof CdmContracts>(library: K): CdmContract<CdmContracts[K]>;
17
+ getAddress(library: string): HexString;
18
+ destroy(): void;
19
+ }
20
+ export declare function createCdm(options?: CdmOptions): Cdm;
21
+ //# sourceMappingURL=cdm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cdm.d.ts","sourceRoot":"","sources":["../src/cdm.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAA8B,SAAS,EAAE,MAAM,cAAc,CAAC;AAC1F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAKpD,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErE,qBAAa,GAAG;IACZ,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,aAAa,CAAC,CAAa;IACnC,OAAO,CAAC,aAAa,CAAC,CAAiB;gBAE3B,OAAO,CAAC,EAAE,UAAU;IA4BhC,IAAI,MAAM,IAAI,cAAc,CAQ3B;IAED,IAAI,MAAM,IAAI,MAAM,CAKnB;IAED,WAAW,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,YAAY,EAAE,OAAO,EAAE,CAAC,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAsB5F,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS;IAUtC,OAAO,IAAI,IAAI;CAOlB;AAED,wBAAgB,SAAS,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,GAAG,CAEnD"}
package/dist/cdm.js ADDED
@@ -0,0 +1,93 @@
1
+ import { createClient } from "polkadot-api";
2
+ import { getWsProvider } from "polkadot-api/ws-provider/node";
3
+ import { withPolkadotSdkCompat } from "polkadot-api/polkadot-sdk-compat";
4
+ import { createInkSdk } from "@polkadot-api/sdk-ink";
5
+ import { readCdmJson } from "@dotdm/contracts";
6
+ import { resolveContract } from "./resolver";
7
+ import { wrapContract } from "./wrap";
8
+ export class Cdm {
9
+ cdmJson;
10
+ cdmJsonPath;
11
+ targetHash;
12
+ _client = null;
13
+ _inkSdk = null;
14
+ ownsClient = false;
15
+ defaultOrigin;
16
+ defaultSigner;
17
+ constructor(options) {
18
+ // Read cdm.json
19
+ const result = readCdmJson(options?.cdmJsonPath);
20
+ if (!result) {
21
+ throw new Error("cdm.json not found. Run 'cdm install' first.");
22
+ }
23
+ this.cdmJson = result.cdmJson;
24
+ this.cdmJsonPath = result.cdmJsonPath;
25
+ // Determine target hash
26
+ if (options?.targetHash) {
27
+ this.targetHash = options.targetHash;
28
+ }
29
+ else {
30
+ // Use first target in cdm.json
31
+ const targets = Object.keys(this.cdmJson.targets);
32
+ if (targets.length === 0)
33
+ throw new Error("No targets found in cdm.json");
34
+ this.targetHash = targets[0];
35
+ }
36
+ if (options?.client) {
37
+ this._client = options.client;
38
+ this.ownsClient = false;
39
+ }
40
+ this.defaultOrigin = options?.defaultOrigin;
41
+ this.defaultSigner = options?.defaultSigner;
42
+ }
43
+ get client() {
44
+ if (!this._client) {
45
+ const target = this.cdmJson.targets[this.targetHash];
46
+ if (!target)
47
+ throw new Error(`Target ${this.targetHash} not found in cdm.json`);
48
+ this._client = createClient(withPolkadotSdkCompat(getWsProvider(target["asset-hub"])));
49
+ this.ownsClient = true;
50
+ }
51
+ return this._client;
52
+ }
53
+ get inkSdk() {
54
+ if (!this._inkSdk) {
55
+ this._inkSdk = createInkSdk(this.client);
56
+ }
57
+ return this._inkSdk;
58
+ }
59
+ getContract(library) {
60
+ const deps = this.cdmJson.dependencies[this.targetHash];
61
+ if (!deps || !(library in deps)) {
62
+ throw new Error(`Contract "${library}" not found in cdm.json dependencies for target ${this.targetHash}`);
63
+ }
64
+ const version = deps[library];
65
+ const resolved = resolveContract(this.targetHash, library, version);
66
+ const descriptor = { abi: resolved.abi };
67
+ const papiContract = this.inkSdk.getContract(descriptor, resolved.address);
68
+ return wrapContract(papiContract, resolved.abi, {
69
+ origin: this.defaultOrigin,
70
+ signer: this.defaultSigner,
71
+ });
72
+ }
73
+ getAddress(library) {
74
+ const deps = this.cdmJson.dependencies[this.targetHash];
75
+ if (!deps || !(library in deps)) {
76
+ throw new Error(`Contract "${library}" not found in cdm.json dependencies`);
77
+ }
78
+ const version = deps[library];
79
+ const resolved = resolveContract(this.targetHash, library, version);
80
+ return resolved.address;
81
+ }
82
+ destroy() {
83
+ if (this.ownsClient && this._client) {
84
+ this._client.destroy();
85
+ this._client = null;
86
+ }
87
+ this._inkSdk = null;
88
+ }
89
+ }
90
+ export function createCdm(options) {
91
+ return new Cdm(options);
92
+ }
93
+ //# sourceMappingURL=cdm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cdm.js","sourceRoot":"","sources":["../src/cdm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { AbiEntry } from "./types";
2
+ export declare function generateContractTypes(contracts: {
3
+ library: string;
4
+ abi: AbiEntry[];
5
+ }[]): string;
6
+ //# sourceMappingURL=codegen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../src/codegen.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAY,MAAM,SAAS,CAAC;AAmElD,wBAAgB,qBAAqB,CAAC,SAAS,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,QAAQ,EAAE,CAAA;CAAE,EAAE,GAAG,MAAM,CA6B/F"}
@@ -0,0 +1,90 @@
1
+ function mapSolidityType(param) {
2
+ const t = param.type;
3
+ // Array types
4
+ if (t.endsWith("[]")) {
5
+ const inner = { ...param, type: t.slice(0, -2) };
6
+ return `${mapSolidityType(inner)}[]`;
7
+ }
8
+ // Fixed-size arrays like uint256[3]
9
+ const fixedArrayMatch = t.match(/^(.+)\[(\d+)\]$/);
10
+ if (fixedArrayMatch) {
11
+ const inner = { ...param, type: fixedArrayMatch[1] };
12
+ return `${mapSolidityType(inner)}[]`;
13
+ }
14
+ // Tuple
15
+ if (t === "tuple" && param.components) {
16
+ const fields = param.components.map((c) => `${c.name}: ${mapSolidityType(c)}`);
17
+ return `{ ${fields.join("; ")} }`;
18
+ }
19
+ // Unsigned integers
20
+ if (/^uint(8|16|32)$/.test(t))
21
+ return "number";
22
+ if (/^uint\d*$/.test(t))
23
+ return "bigint"; // uint64, uint128, uint256, uint (=uint256)
24
+ // Signed integers
25
+ if (/^int(8|16|32)$/.test(t))
26
+ return "number";
27
+ if (/^int\d*$/.test(t))
28
+ return "bigint";
29
+ // Address
30
+ if (t === "address")
31
+ return "HexString";
32
+ // Bytes
33
+ if (t === "bytes")
34
+ return "Binary";
35
+ const bytesMatch = t.match(/^bytes(\d+)$/);
36
+ if (bytesMatch)
37
+ return `FixedSizeBinary<${bytesMatch[1]}>`;
38
+ // Boolean
39
+ if (t === "bool")
40
+ return "boolean";
41
+ // String
42
+ if (t === "string")
43
+ return "string";
44
+ // Fallback
45
+ return "unknown";
46
+ }
47
+ function generateMethodResponseType(outputs) {
48
+ if (!outputs || outputs.length === 0)
49
+ return "undefined";
50
+ if (outputs.length === 1)
51
+ return mapSolidityType(outputs[0]);
52
+ // Multiple outputs -> tuple-like object
53
+ const fields = outputs.map((o, i) => {
54
+ const name = o.name || `_${i}`;
55
+ return `${name}: ${mapSolidityType(o)}`;
56
+ });
57
+ return `{ ${fields.join("; ")} }`;
58
+ }
59
+ function generateMethodArgsType(inputs) {
60
+ if (inputs.length === 0)
61
+ return "[]";
62
+ const parts = inputs.map((p) => `${p.name}: ${mapSolidityType(p)}`);
63
+ return `[${parts.join(", ")}]`;
64
+ }
65
+ export function generateContractTypes(contracts) {
66
+ const lines = [
67
+ "// Auto-generated by cdm install -- do not edit",
68
+ 'import type { HexString, Binary, FixedSizeBinary } from "polkadot-api";',
69
+ "",
70
+ 'declare module "@dotdm/cdm" {',
71
+ " interface CdmContracts {",
72
+ ];
73
+ for (const contract of contracts) {
74
+ const methods = contract.abi.filter((e) => e.type === "function" && e.name);
75
+ lines.push(` "${contract.library}": {`);
76
+ lines.push(" methods: {");
77
+ for (const method of methods) {
78
+ const args = generateMethodArgsType(method.inputs);
79
+ const response = generateMethodResponseType(method.outputs);
80
+ lines.push(` ${method.name}: { args: ${args}; response: ${response} };`);
81
+ }
82
+ lines.push(" };");
83
+ lines.push(" };");
84
+ }
85
+ lines.push(" }");
86
+ lines.push("}");
87
+ lines.push("");
88
+ return lines.join("\n");
89
+ }
90
+ //# sourceMappingURL=codegen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codegen.js","sourceRoot":"","sources":["../src/codegen.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { Cdm, createCdm } from "./cdm";
2
+ export { resolveContract } from "./resolver";
3
+ export { generateContractTypes } from "./codegen";
4
+ export type { CdmContract, CdmContracts, CdmContractDef, CdmOptions, QueryResult, TxOpts, TxResult, ResolvedContract, AbiEntry, AbiParam, } from "./types";
5
+ //# 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,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAClD,YAAY,EACR,WAAW,EACX,YAAY,EACZ,cAAc,EACd,UAAU,EACV,WAAW,EACX,MAAM,EACN,QAAQ,EACR,gBAAgB,EAChB,QAAQ,EACR,QAAQ,GACX,MAAM,SAAS,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ export { Cdm, createCdm } from "./cdm";
2
+ export { resolveContract } from "./resolver";
3
+ export { generateContractTypes } from "./codegen";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ResolvedContract } from "./types";
2
+ export declare function resolveContract(targetHash: string, library: string, version: number | "latest"): ResolvedContract;
3
+ //# sourceMappingURL=resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAY,MAAM,SAAS,CAAC;AAE1D,wBAAgB,eAAe,CAC3B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GAAG,QAAQ,GAC3B,gBAAgB,CAiClB"}
@@ -0,0 +1,35 @@
1
+ import { readFileSync, existsSync, realpathSync } from "fs";
2
+ import { resolve } from "path";
3
+ import { getCdmRoot, getContractDir, resolveContractAbiPath } from "@dotdm/contracts";
4
+ export function resolveContract(targetHash, library, version) {
5
+ // If version is "latest", resolve the symlink
6
+ let resolvedVersion;
7
+ if (version === "latest") {
8
+ const latestLink = resolve(getCdmRoot(), targetHash, "contracts", library, "latest");
9
+ if (!existsSync(latestLink)) {
10
+ throw new Error(`No "latest" symlink found for ${library} in target ${targetHash}`);
11
+ }
12
+ const realPath = realpathSync(latestLink);
13
+ resolvedVersion = parseInt(realPath.split("/").pop(), 10);
14
+ }
15
+ else {
16
+ resolvedVersion = version;
17
+ }
18
+ const contractDir = getContractDir(targetHash, library, resolvedVersion);
19
+ if (!existsSync(contractDir)) {
20
+ throw new Error(`Contract ${library}@${resolvedVersion} not found in ${contractDir}`);
21
+ }
22
+ const infoPath = resolve(contractDir, "info.json");
23
+ const info = JSON.parse(readFileSync(infoPath, "utf-8"));
24
+ const abiPath = resolveContractAbiPath(targetHash, library, resolvedVersion);
25
+ const abi = JSON.parse(readFileSync(abiPath, "utf-8"));
26
+ return {
27
+ name: info.name,
28
+ address: info.address,
29
+ abi,
30
+ abiPath,
31
+ version: info.version,
32
+ metadataCid: info.metadataCid,
33
+ };
34
+ }
35
+ //# sourceMappingURL=resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAGtF,MAAM,UAAU,eAAe,CAC3B,UAAkB,EAClB,OAAe,EACf,OAA0B;IAE1B,8CAA8C;IAC9C,IAAI,eAAuB,CAAC;IAC5B,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACvB,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QACrF,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,iCAAiC,OAAO,cAAc,UAAU,EAAE,CAAC,CAAC;QACxF,CAAC;QACD,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;QAC1C,eAAe,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG,EAAE,EAAE,CAAC,CAAC;IAC/D,CAAC;SAAM,CAAC;QACJ,eAAe,GAAG,OAAO,CAAC;IAC9B,CAAC;IAED,MAAM,WAAW,GAAG,cAAc,CAAC,UAAU,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;IACzE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,YAAY,OAAO,IAAI,eAAe,iBAAiB,WAAW,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAEzD,MAAM,OAAO,GAAG,sBAAsB,CAAC,UAAU,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;IAC7E,MAAM,GAAG,GAAe,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAEnE,OAAO;QACH,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,GAAG;QACH,OAAO;QACP,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,WAAW,EAAE,IAAI,CAAC,WAAW;KAChC,CAAC;AACN,CAAC"}
@@ -0,0 +1,57 @@
1
+ import type { PolkadotSigner, SS58String } from "polkadot-api";
2
+ export interface CdmContractDef {
3
+ methods: Record<string, {
4
+ args: any[];
5
+ response: any;
6
+ }>;
7
+ }
8
+ export interface CdmContracts {
9
+ }
10
+ export interface QueryResult<T> {
11
+ success: boolean;
12
+ value: T;
13
+ gasRequired?: bigint;
14
+ }
15
+ export interface TxOpts {
16
+ signer?: PolkadotSigner;
17
+ }
18
+ export interface TxResult {
19
+ txHash: string;
20
+ blockHash: string;
21
+ ok: boolean;
22
+ events: unknown[];
23
+ }
24
+ export type CdmContract<C extends CdmContractDef> = {
25
+ [K in keyof C["methods"]]: {
26
+ query: (...args: C["methods"][K]["args"]) => Promise<QueryResult<C["methods"][K]["response"]>>;
27
+ tx: (...args: [...C["methods"][K]["args"], opts?: TxOpts]) => Promise<TxResult>;
28
+ };
29
+ };
30
+ export interface CdmOptions {
31
+ cdmJsonPath?: string;
32
+ targetHash?: string;
33
+ client?: import("polkadot-api").PolkadotClient;
34
+ defaultOrigin?: SS58String;
35
+ defaultSigner?: PolkadotSigner;
36
+ }
37
+ export interface ResolvedContract {
38
+ name: string;
39
+ address: string;
40
+ abi: AbiEntry[];
41
+ abiPath: string;
42
+ version: number;
43
+ metadataCid: string;
44
+ }
45
+ export interface AbiParam {
46
+ name: string;
47
+ type: string;
48
+ components?: AbiParam[];
49
+ }
50
+ export interface AbiEntry {
51
+ type: string;
52
+ name?: string;
53
+ inputs: AbiParam[];
54
+ outputs?: AbiParam[];
55
+ stateMutability?: string;
56
+ }
57
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAsC,UAAU,EAAE,MAAM,cAAc,CAAC;AAGnG,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,GAAG,EAAE,CAAC;QAAC,QAAQ,EAAE,GAAG,CAAA;KAAE,CAAC,CAAC;CAC3D;AAID,MAAM,WAAW,YAAY;CAAG;AAGhC,MAAM,WAAW,WAAW,CAAC,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,CAAC,CAAC;IACT,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAGD,MAAM,WAAW,MAAM;IACnB,MAAM,CAAC,EAAE,cAAc,CAAC;CAC3B;AAGD,MAAM,WAAW,QAAQ;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,OAAO,EAAE,CAAC;CACrB;AAGD,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,cAAc,IAAI;KAC/C,CAAC,IAAI,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG;QACvB,KAAK,EAAE,CACH,GAAG,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAC/B,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACvD,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;KACnF;CACJ,CAAC;AAGF,MAAM,WAAW,UAAU;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,cAAc,EAAE,cAAc,CAAC;IAC/C,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,aAAa,CAAC,EAAE,cAAc,CAAC;CAClC;AAGD,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,QAAQ,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACvB;AAGD,MAAM,WAAW,QAAQ;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,QAAQ;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/dist/wrap.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ import type { SS58String, PolkadotSigner } from "polkadot-api";
2
+ import type { AbiEntry, QueryResult, TxResult } from "./types";
3
+ type PapiInkContract = any;
4
+ export declare function wrapContract(papiContract: PapiInkContract, abi: AbiEntry[], defaults: {
5
+ origin?: SS58String;
6
+ signer?: PolkadotSigner;
7
+ }): Record<string, {
8
+ query: (...args: any[]) => Promise<QueryResult<any>>;
9
+ tx: (...args: any[]) => Promise<TxResult>;
10
+ }>;
11
+ export {};
12
+ //# sourceMappingURL=wrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../src/wrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAU,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEvE,KAAK,eAAe,GAAG,GAAG,CAAC;AAkC3B,wBAAgB,YAAY,CACxB,YAAY,EAAE,eAAe,EAC7B,GAAG,EAAE,QAAQ,EAAE,EACf,QAAQ,EAAE;IAAE,MAAM,CAAC,EAAE,UAAU,CAAC;IAAC,MAAM,CAAC,EAAE,cAAc,CAAA;CAAE,GAC3D,MAAM,CACL,MAAM,EACN;IACI,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC7C,CACJ,CAmDA"}
package/dist/wrap.js ADDED
@@ -0,0 +1,70 @@
1
+ function buildMethodArgMap(abi) {
2
+ const map = {};
3
+ for (const entry of abi) {
4
+ if (entry.type === "function" && entry.name) {
5
+ map[entry.name] = entry.inputs.map((p) => p.name);
6
+ }
7
+ }
8
+ return map;
9
+ }
10
+ function positionalToNamed(argNames, values) {
11
+ const data = {};
12
+ for (let i = 0; i < argNames.length; i++) {
13
+ data[argNames[i]] = values[i];
14
+ }
15
+ return data;
16
+ }
17
+ // Check if last arg is an overrides object (not a regular positional arg)
18
+ function extractOverrides(argNames, args) {
19
+ if (args.length > argNames.length && args.length > 0) {
20
+ const last = args[args.length - 1];
21
+ if (last && typeof last === "object" && !Array.isArray(last)) {
22
+ return { positionalArgs: args.slice(0, -1), overrides: last };
23
+ }
24
+ }
25
+ return { positionalArgs: args };
26
+ }
27
+ export function wrapContract(papiContract, abi, defaults) {
28
+ const methodArgs = buildMethodArgMap(abi);
29
+ return new Proxy({}, {
30
+ get(_, methodName) {
31
+ if (typeof methodName !== "string")
32
+ return undefined;
33
+ const argNames = methodArgs[methodName];
34
+ if (!argNames)
35
+ return undefined;
36
+ return {
37
+ query: async (...args) => {
38
+ const { positionalArgs, overrides } = extractOverrides(argNames, args);
39
+ const data = positionalToNamed(argNames, positionalArgs);
40
+ const origin = overrides?.origin ?? defaults.origin;
41
+ if (!origin)
42
+ throw new Error("No origin provided for query. Pass { origin } or set defaultOrigin.");
43
+ const result = await papiContract.query(methodName, { origin, data });
44
+ return {
45
+ success: result.success,
46
+ value: result.success ? result.value.response : undefined,
47
+ gasRequired: result.value?.gasRequired,
48
+ };
49
+ },
50
+ tx: async (...args) => {
51
+ const { positionalArgs, overrides } = extractOverrides(argNames, args);
52
+ const data = positionalToNamed(argNames, positionalArgs);
53
+ const signer = overrides?.signer ?? defaults.signer;
54
+ if (!signer)
55
+ throw new Error("No signer provided for tx. Pass { signer } or set defaultSigner.");
56
+ const origin = defaults.origin;
57
+ const tx = papiContract.send(methodName, { data, origin: origin ?? "" });
58
+ const result = await tx.signAndSubmit(signer);
59
+ return {
60
+ txHash: result.txHash,
61
+ blockHash: result.block?.hash ?? "",
62
+ ok: result.ok,
63
+ events: result.events ?? [],
64
+ };
65
+ },
66
+ };
67
+ },
68
+ });
69
+ }
70
+ //# sourceMappingURL=wrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrap.js","sourceRoot":"","sources":["../src/wrap.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "@dotdm/cdm",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "import": "./dist/index.js"
11
+ },
12
+ "./codegen": {
13
+ "types": "./dist/codegen.d.ts",
14
+ "import": "./dist/codegen.js"
15
+ }
16
+ },
17
+ "files": [
18
+ "dist"
19
+ ],
20
+ "publishConfig": {
21
+ "access": "public"
22
+ },
23
+ "dependencies": {
24
+ "@polkadot-api/sdk-ink": "^0.6.2",
25
+ "polkadot-api": "^1.23.3",
26
+ "@dotdm/contracts": "0.1.0",
27
+ "@dotdm/env": "0.1.0"
28
+ },
29
+ "devDependencies": {
30
+ "@types/node": "^24.10.1",
31
+ "typescript": "^5.9.3"
32
+ },
33
+ "scripts": {
34
+ "build": "tsc -p tsconfig.json",
35
+ "clean": "rm -rf dist"
36
+ }
37
+ }