@zkproofport-ai/sdk 0.2.2 → 0.2.4
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/extract.d.ts +38 -17
- package/dist/extract.d.ts.map +1 -1
- package/dist/extract.js +92 -41
- package/dist/extract.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/payment.d.ts.map +1 -1
- package/dist/payment.js +5 -1
- package/dist/payment.js.map +1 -1
- package/package.json +1 -1
package/dist/extract.d.ts
CHANGED
|
@@ -1,32 +1,53 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Extract structured data from
|
|
2
|
+
* Extract structured data from ZK proof publicInputs.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Supports all circuit types:
|
|
5
|
+
*
|
|
6
|
+
* coinbase_attestation (128 fields):
|
|
7
|
+
* Index 0-31: signal_hash (32 bytes)
|
|
8
|
+
* Index 32-63: merkle_root (32 bytes)
|
|
9
|
+
* Index 64-95: scope (32 bytes)
|
|
10
|
+
* Index 96-127: nullifier (32 bytes)
|
|
11
|
+
*
|
|
12
|
+
* coinbase_country_attestation (150 fields):
|
|
13
|
+
* Index 0-63: attestation fields
|
|
14
|
+
* Index 64-83: country_list (20 bytes)
|
|
15
|
+
* Index 84: country_list_length
|
|
16
|
+
* Index 85: is_included
|
|
17
|
+
* Index 86-117: scope (32 bytes)
|
|
18
|
+
* Index 118-149: nullifier (32 bytes)
|
|
19
|
+
*
|
|
20
|
+
* oidc_domain_attestation (148 fields):
|
|
5
21
|
* Index 0-17: pubkey_modulus_limbs (18 x u128)
|
|
6
|
-
* Index 18-81: domain storage (BoundedVec<u8, 64>
|
|
7
|
-
* Index 82: domain len
|
|
22
|
+
* Index 18-81: domain storage (BoundedVec<u8, 64>)
|
|
23
|
+
* Index 82: domain len
|
|
8
24
|
* Index 83-114: scope (32 bytes)
|
|
9
25
|
* Index 115-146: nullifier (32 bytes)
|
|
10
26
|
* Index 147: provider (u8)
|
|
11
27
|
*/
|
|
12
28
|
/**
|
|
13
|
-
* Extract
|
|
14
|
-
*
|
|
15
|
-
* Noir BoundedVec<u8, 64> layout: storage[0..64] at field indices 18-81, len at field index 82.
|
|
16
|
-
* Each field's lower byte is the ASCII character.
|
|
29
|
+
* Extract scope from proof publicInputs.
|
|
30
|
+
* Auto-detects circuit from field count.
|
|
17
31
|
*
|
|
18
|
-
* @param publicInputs - Single hex string
|
|
19
|
-
* @
|
|
32
|
+
* @param publicInputs - Single hex string of concatenated public inputs
|
|
33
|
+
* @param circuit - Optional circuit type override
|
|
34
|
+
* @returns The scope as a 0x-prefixed hex string, or null if extraction fails
|
|
20
35
|
*/
|
|
21
|
-
export declare function
|
|
36
|
+
export declare function extractScopeFromPublicInputs(publicInputs: string, circuit?: string): string | null;
|
|
22
37
|
/**
|
|
23
|
-
* Extract nullifier from
|
|
38
|
+
* Extract nullifier from proof publicInputs.
|
|
39
|
+
* Auto-detects circuit from field count.
|
|
24
40
|
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* @param publicInputs - Single hex string (0x prefixed) of concatenated public inputs
|
|
41
|
+
* @param publicInputs - Single hex string of concatenated public inputs
|
|
42
|
+
* @param circuit - Optional circuit type override
|
|
29
43
|
* @returns The nullifier as a 0x-prefixed hex string, or null if extraction fails
|
|
30
44
|
*/
|
|
31
|
-
export declare function extractNullifierFromPublicInputs(publicInputs: string): string | null;
|
|
45
|
+
export declare function extractNullifierFromPublicInputs(publicInputs: string, circuit?: string): string | null;
|
|
46
|
+
/**
|
|
47
|
+
* Extract domain from oidc_domain_attestation proof publicInputs.
|
|
48
|
+
*
|
|
49
|
+
* @param publicInputs - Single hex string of concatenated public inputs
|
|
50
|
+
* @returns The domain string, or null if not OIDC circuit or extraction fails
|
|
51
|
+
*/
|
|
52
|
+
export declare function extractDomainFromPublicInputs(publicInputs: string): string | null;
|
|
32
53
|
//# sourceMappingURL=extract.d.ts.map
|
package/dist/extract.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../src/extract.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../src/extract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AA4CH;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWlG;AAED;;;;;;;GAOG;AACH,wBAAgB,gCAAgC,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWtG;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiBjF"}
|
package/dist/extract.js
CHANGED
|
@@ -1,14 +1,46 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Extract structured data from
|
|
2
|
+
* Extract structured data from ZK proof publicInputs.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Supports all circuit types:
|
|
5
|
+
*
|
|
6
|
+
* coinbase_attestation (128 fields):
|
|
7
|
+
* Index 0-31: signal_hash (32 bytes)
|
|
8
|
+
* Index 32-63: merkle_root (32 bytes)
|
|
9
|
+
* Index 64-95: scope (32 bytes)
|
|
10
|
+
* Index 96-127: nullifier (32 bytes)
|
|
11
|
+
*
|
|
12
|
+
* coinbase_country_attestation (150 fields):
|
|
13
|
+
* Index 0-63: attestation fields
|
|
14
|
+
* Index 64-83: country_list (20 bytes)
|
|
15
|
+
* Index 84: country_list_length
|
|
16
|
+
* Index 85: is_included
|
|
17
|
+
* Index 86-117: scope (32 bytes)
|
|
18
|
+
* Index 118-149: nullifier (32 bytes)
|
|
19
|
+
*
|
|
20
|
+
* oidc_domain_attestation (148 fields):
|
|
5
21
|
* Index 0-17: pubkey_modulus_limbs (18 x u128)
|
|
6
|
-
* Index 18-81: domain storage (BoundedVec<u8, 64>
|
|
7
|
-
* Index 82: domain len
|
|
22
|
+
* Index 18-81: domain storage (BoundedVec<u8, 64>)
|
|
23
|
+
* Index 82: domain len
|
|
8
24
|
* Index 83-114: scope (32 bytes)
|
|
9
25
|
* Index 115-146: nullifier (32 bytes)
|
|
10
26
|
* Index 147: provider (u8)
|
|
11
27
|
*/
|
|
28
|
+
// Circuit layouts
|
|
29
|
+
const LAYOUTS = {
|
|
30
|
+
coinbase_attestation: { scope: [64, 95], nullifier: [96, 127] },
|
|
31
|
+
coinbase_country_attestation: { scope: [86, 117], nullifier: [118, 149] },
|
|
32
|
+
oidc_domain_attestation: { scope: [83, 114], nullifier: [115, 146], domainStorage: 18, domainLen: 82 },
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Detect circuit type from field count.
|
|
36
|
+
*/
|
|
37
|
+
function detectCircuit(fieldCount) {
|
|
38
|
+
if (fieldCount === 148)
|
|
39
|
+
return 'oidc_domain_attestation';
|
|
40
|
+
if (fieldCount === 150)
|
|
41
|
+
return 'coinbase_country_attestation';
|
|
42
|
+
return 'coinbase_attestation';
|
|
43
|
+
}
|
|
12
44
|
/**
|
|
13
45
|
* Split a concatenated hex string into 32-byte (64 hex char) fields.
|
|
14
46
|
*/
|
|
@@ -21,61 +53,80 @@ function splitFields(publicInputsHex) {
|
|
|
21
53
|
return fields;
|
|
22
54
|
}
|
|
23
55
|
/**
|
|
24
|
-
* Extract
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
56
|
+
* Extract 32 bytes from consecutive fields (each field = 1 byte in lower bits).
|
|
57
|
+
*/
|
|
58
|
+
function extractBytes32(fields, start, end) {
|
|
59
|
+
const bytes = [];
|
|
60
|
+
for (let i = start; i <= end; i++) {
|
|
61
|
+
const byte = (BigInt(fields[i]) & 0xffn).toString(16).padStart(2, '0');
|
|
62
|
+
bytes.push(byte);
|
|
63
|
+
}
|
|
64
|
+
return '0x' + bytes.join('');
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Extract scope from proof publicInputs.
|
|
68
|
+
* Auto-detects circuit from field count.
|
|
28
69
|
*
|
|
29
|
-
* @param publicInputs - Single hex string
|
|
30
|
-
* @
|
|
70
|
+
* @param publicInputs - Single hex string of concatenated public inputs
|
|
71
|
+
* @param circuit - Optional circuit type override
|
|
72
|
+
* @returns The scope as a 0x-prefixed hex string, or null if extraction fails
|
|
31
73
|
*/
|
|
32
|
-
export function
|
|
74
|
+
export function extractScopeFromPublicInputs(publicInputs, circuit) {
|
|
33
75
|
try {
|
|
34
76
|
const fields = splitFields(publicInputs);
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
// Read domain length from field index 82
|
|
40
|
-
const domainLen = Number(BigInt(fields[82]));
|
|
41
|
-
if (domainLen <= 0 || domainLen > 64) {
|
|
77
|
+
const ct = circuit || detectCircuit(fields.length);
|
|
78
|
+
const layout = LAYOUTS[ct] || LAYOUTS.coinbase_attestation;
|
|
79
|
+
const [start, end] = layout.scope;
|
|
80
|
+
if (fields.length <= end)
|
|
42
81
|
return null;
|
|
43
|
-
|
|
44
|
-
// Read domain bytes from field indices 18..18+domainLen
|
|
45
|
-
const chars = [];
|
|
46
|
-
for (let i = 0; i < domainLen; i++) {
|
|
47
|
-
const byte = Number(BigInt(fields[18 + i]) & 0xffn);
|
|
48
|
-
chars.push(String.fromCharCode(byte));
|
|
49
|
-
}
|
|
50
|
-
return chars.join('');
|
|
82
|
+
return extractBytes32(fields, start, end);
|
|
51
83
|
}
|
|
52
84
|
catch {
|
|
53
85
|
return null;
|
|
54
86
|
}
|
|
55
87
|
}
|
|
56
88
|
/**
|
|
57
|
-
* Extract nullifier from
|
|
89
|
+
* Extract nullifier from proof publicInputs.
|
|
90
|
+
* Auto-detects circuit from field count.
|
|
58
91
|
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
* @param publicInputs - Single hex string (0x prefixed) of concatenated public inputs
|
|
92
|
+
* @param publicInputs - Single hex string of concatenated public inputs
|
|
93
|
+
* @param circuit - Optional circuit type override
|
|
63
94
|
* @returns The nullifier as a 0x-prefixed hex string, or null if extraction fails
|
|
64
95
|
*/
|
|
65
|
-
export function extractNullifierFromPublicInputs(publicInputs) {
|
|
96
|
+
export function extractNullifierFromPublicInputs(publicInputs, circuit) {
|
|
66
97
|
try {
|
|
67
98
|
const fields = splitFields(publicInputs);
|
|
68
|
-
|
|
69
|
-
|
|
99
|
+
const ct = circuit || detectCircuit(fields.length);
|
|
100
|
+
const layout = LAYOUTS[ct] || LAYOUTS.coinbase_attestation;
|
|
101
|
+
const [start, end] = layout.nullifier;
|
|
102
|
+
if (fields.length <= end)
|
|
70
103
|
return null;
|
|
104
|
+
return extractBytes32(fields, start, end);
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Extract domain from oidc_domain_attestation proof publicInputs.
|
|
112
|
+
*
|
|
113
|
+
* @param publicInputs - Single hex string of concatenated public inputs
|
|
114
|
+
* @returns The domain string, or null if not OIDC circuit or extraction fails
|
|
115
|
+
*/
|
|
116
|
+
export function extractDomainFromPublicInputs(publicInputs) {
|
|
117
|
+
try {
|
|
118
|
+
const fields = splitFields(publicInputs);
|
|
119
|
+
if (fields.length < 83)
|
|
120
|
+
return null;
|
|
121
|
+
const domainLen = Number(BigInt(fields[82]));
|
|
122
|
+
if (domainLen <= 0 || domainLen > 64)
|
|
123
|
+
return null;
|
|
124
|
+
const chars = [];
|
|
125
|
+
for (let i = 0; i < domainLen; i++) {
|
|
126
|
+
const byte = Number(BigInt(fields[18 + i]) & 0xffn);
|
|
127
|
+
chars.push(String.fromCharCode(byte));
|
|
71
128
|
}
|
|
72
|
-
|
|
73
|
-
const bytes = [];
|
|
74
|
-
for (let i = 115; i < 147; i++) {
|
|
75
|
-
const byte = (BigInt(fields[i]) & 0xffn).toString(16).padStart(2, '0');
|
|
76
|
-
bytes.push(byte);
|
|
77
|
-
}
|
|
78
|
-
return '0x' + bytes.join('');
|
|
129
|
+
return chars.join('');
|
|
79
130
|
}
|
|
80
131
|
catch {
|
|
81
132
|
return null;
|
package/dist/extract.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../src/extract.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../src/extract.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -15,6 +15,6 @@ export type { ProofportSigner } from './signer.js';
|
|
|
15
15
|
export { EthersWalletSigner, fromEthersWallet, fromPrivateKey } from './signer.js';
|
|
16
16
|
export { CdpWalletSigner, fromExternalWallet } from './cdp.js';
|
|
17
17
|
export type { ExternalWallet } from './cdp.js';
|
|
18
|
-
export { extractDomainFromPublicInputs, extractNullifierFromPublicInputs, } from './extract.js';
|
|
18
|
+
export { extractDomainFromPublicInputs, extractScopeFromPublicInputs, extractNullifierFromPublicInputs, } from './extract.js';
|
|
19
19
|
export { fetchAttestation, getSignerAddress, } from './attestation.js';
|
|
20
20
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,YAAY,EACZ,WAAW,EACX,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,cAAc,EACd,eAAe,EACf,WAAW,EACX,WAAW,EACX,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG9D,OAAO,EACL,QAAQ,EACR,0BAA0B,EAC1B,kBAAkB,EAClB,cAAc,GACf,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG/C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACzE,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG/F,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGnF,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC/D,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG/C,OAAO,EACL,6BAA6B,EAC7B,gCAAgC,GACjC,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,YAAY,EACZ,WAAW,EACX,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,cAAc,EACd,eAAe,EACf,WAAW,EACX,WAAW,EACX,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG9D,OAAO,EACL,QAAQ,EACR,0BAA0B,EAC1B,kBAAkB,EAClB,cAAc,GACf,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG/C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACzE,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG/F,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGnF,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC/D,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG/C,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,GACjC,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -18,7 +18,7 @@ export { EthersWalletSigner, fromEthersWallet, fromPrivateKey } from './signer.j
|
|
|
18
18
|
// CDP (Coinbase Developer Platform) signer
|
|
19
19
|
export { CdpWalletSigner, fromExternalWallet } from './cdp.js';
|
|
20
20
|
// Extraction helpers (parse publicInputs from proof results)
|
|
21
|
-
export { extractDomainFromPublicInputs, extractNullifierFromPublicInputs, } from './extract.js';
|
|
21
|
+
export { extractDomainFromPublicInputs, extractScopeFromPublicInputs, extractNullifierFromPublicInputs, } from './extract.js';
|
|
22
22
|
// Attestation (customer-facing helpers)
|
|
23
23
|
export { fetchAttestation, getSignerAddress, } from './attestation.js';
|
|
24
24
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE9D,YAAY;AACZ,OAAO,EACL,QAAQ,EACR,0BAA0B,EAC1B,kBAAkB,EAClB,cAAc,GACf,MAAM,gBAAgB,CAAC;AAExB,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,0BAA0B;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C,4CAA4C;AAC5C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,8CAA8C;AAC9C,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB,oEAAoE;AACpE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAKzE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEnF,2CAA2C;AAC3C,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAG/D,6DAA6D;AAC7D,OAAO,EACL,6BAA6B,EAC7B,gCAAgC,GACjC,MAAM,cAAc,CAAC;AAEtB,wCAAwC;AACxC,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE9D,YAAY;AACZ,OAAO,EACL,QAAQ,EACR,0BAA0B,EAC1B,kBAAkB,EAClB,cAAc,GACf,MAAM,gBAAgB,CAAC;AAExB,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,0BAA0B;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C,4CAA4C;AAC5C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,8CAA8C;AAC9C,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB,oEAAoE;AACpE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAKzE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEnF,2CAA2C;AAC3C,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAG/D,6DAA6D;AAC7D,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,GACjC,MAAM,cAAc,CAAC;AAEtB,wCAAwC;AACxC,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC"}
|
package/dist/payment.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../src/payment.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAenD;;;;;;;;;;;;GAYG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,WAAW,EACpB,cAAc,CAAC,EAAE,MAAM,EACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1C,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../src/payment.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAenD;;;;;;;;;;;;GAYG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,WAAW,EACpB,cAAc,CAAC,EAAE,MAAM,EACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1C,OAAO,CAAC,MAAM,CAAC,CA6GjB"}
|
package/dist/payment.js
CHANGED
|
@@ -108,9 +108,13 @@ export async function makePayment(signer, payment, facilitatorUrl, facilitatorHe
|
|
|
108
108
|
throw new Error(`x402 facilitator settle failed: ${error}`);
|
|
109
109
|
}
|
|
110
110
|
const settleResult = (await settleResponse.json());
|
|
111
|
+
// Check for error reason FIRST — facilitator may return a dummy txHash alongside an error
|
|
112
|
+
if (settleResult.errorReason) {
|
|
113
|
+
throw new Error(`x402 settle failed: ${settleResult.errorReason}`);
|
|
114
|
+
}
|
|
111
115
|
const txHash = settleResult.txHash || settleResult.transaction?.hash || settleResult.transaction;
|
|
112
116
|
if (!txHash) {
|
|
113
|
-
throw new Error(`x402 settle failed:
|
|
117
|
+
throw new Error(`x402 settle failed: no transaction hash`);
|
|
114
118
|
}
|
|
115
119
|
return txHash;
|
|
116
120
|
}
|
package/dist/payment.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment.js","sourceRoot":"","sources":["../src/payment.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"payment.js","sourceRoot":"","sources":["../src/payment.ts"],"names":[],"mappings":"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"}
|