@edge-protocol/sdk 0.6.6 → 0.7.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.
|
@@ -6,6 +6,7 @@ export declare const EDGE_ERROR_CODES: {
|
|
|
6
6
|
readonly INVALID_OBJECT_ID: "INVALID_OBJECT_ID";
|
|
7
7
|
readonly OBJECT_NOT_FOUND: "OBJECT_NOT_FOUND";
|
|
8
8
|
readonly INVALID_PASS_STATE: "INVALID_PASS_STATE";
|
|
9
|
+
readonly VERSION_CONFLICT: "VERSION_CONFLICT";
|
|
9
10
|
readonly UNKNOWN: "UNKNOWN";
|
|
10
11
|
};
|
|
11
12
|
export type EdgeErrorCode = typeof EDGE_ERROR_CODES[keyof typeof EDGE_ERROR_CODES];
|
|
@@ -21,10 +22,9 @@ export declare class ExecutionEngine {
|
|
|
21
22
|
private buildPTB;
|
|
22
23
|
/**
|
|
23
24
|
* Fetch a live EdgePass from Sui.
|
|
24
|
-
*
|
|
25
|
-
* Returns null if
|
|
26
|
-
* Throws
|
|
27
|
-
* so callers can distinguish "not found" from "broken".
|
|
25
|
+
* Populates objectRef for optimized PTB construction on subsequent execute() calls.
|
|
26
|
+
* Returns null if not found.
|
|
27
|
+
* Throws if objectId is invalid or a network error occurs.
|
|
28
28
|
*/
|
|
29
29
|
fetchPass(objectId: string): Promise<EdgePassObject | null>;
|
|
30
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutionEngine.d.ts","sourceRoot":"","sources":["../../src/core/ExecutionEngine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,OAAO,EACR,MAAM,gBAAgB,CAAC;AAKxB,eAAO,MAAM,gBAAgB
|
|
1
|
+
{"version":3,"file":"ExecutionEngine.d.ts","sourceRoot":"","sources":["../../src/core/ExecutionEngine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,OAAO,EACR,MAAM,gBAAgB,CAAC;AAKxB,eAAO,MAAM,gBAAgB;;;;;;;;CAQnB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,OAAO,gBAAgB,CAAC,MAAM,OAAO,gBAAgB,CAAC,CAAC;AAuDnF,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,OAAO,CAAU;gBAEb,OAAO,EAAE,OAAO;IAKtB,OAAO,CACX,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,kBAAkB,EAC3B,MAAM,EAAE;QAAE,cAAc,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,OAAO,CAAC;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,GAC3E,OAAO,CAAC,kBAAkB,CAAC;IAiC9B,OAAO,CAAC,QAAQ;IAmChB;;;;;OAKG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;CAgFlE"}
|
|
@@ -12,6 +12,7 @@ exports.EDGE_ERROR_CODES = {
|
|
|
12
12
|
INVALID_OBJECT_ID: 'INVALID_OBJECT_ID',
|
|
13
13
|
OBJECT_NOT_FOUND: 'OBJECT_NOT_FOUND',
|
|
14
14
|
INVALID_PASS_STATE: 'INVALID_PASS_STATE',
|
|
15
|
+
VERSION_CONFLICT: 'VERSION_CONFLICT',
|
|
15
16
|
UNKNOWN: 'UNKNOWN',
|
|
16
17
|
};
|
|
17
18
|
function classifyError(error) {
|
|
@@ -35,6 +36,15 @@ function classifyError(error) {
|
|
|
35
36
|
code: exports.EDGE_ERROR_CODES.SIGNING_FAILURE,
|
|
36
37
|
};
|
|
37
38
|
}
|
|
39
|
+
// Object version conflict — caller should refetch and retry
|
|
40
|
+
if (msg.includes('version') ||
|
|
41
|
+
msg.includes('unavailable for consumption') ||
|
|
42
|
+
msg.includes('Transaction needs to be rebuilt')) {
|
|
43
|
+
return {
|
|
44
|
+
reason: `Object version conflict — transaction was NOT submitted. Refetch the pass and retry. (${msg})`,
|
|
45
|
+
code: exports.EDGE_ERROR_CODES.VERSION_CONFLICT,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
38
48
|
if (msg.includes('not found') || msg.includes('does not exist')) {
|
|
39
49
|
return {
|
|
40
50
|
reason: `EdgePass object not found on chain — it may have been deleted or the ID is incorrect. (${msg})`,
|
|
@@ -52,7 +62,7 @@ class ExecutionEngine {
|
|
|
52
62
|
this.client = new client_1.SuiClient({ url: constants_1.NETWORK_URLS[network] });
|
|
53
63
|
}
|
|
54
64
|
async execute(pass, request, signer) {
|
|
55
|
-
// ── Step 1: Policy validation (pure TS,
|
|
65
|
+
// ── Step 1: Policy validation (pure TS, zero network calls) ──────────
|
|
56
66
|
const validation = PolicyEngine_1.PolicyEngine.validate(pass, request);
|
|
57
67
|
if (!validation.allowed) {
|
|
58
68
|
return { status: 'blocked', reason: validation.reason, auto: false };
|
|
@@ -60,17 +70,21 @@ class ExecutionEngine {
|
|
|
60
70
|
if (validation.requiresEscalation) {
|
|
61
71
|
return { status: 'escalated', reason: validation.reason, auto: false };
|
|
62
72
|
}
|
|
63
|
-
// ── Step 2: On-chain execution
|
|
73
|
+
// ── Step 2: On-chain execution ────────────────────────────────────────
|
|
74
|
+
// Uses objectRef if available (populated by fetchPass) to skip RPC
|
|
75
|
+
// version resolution — saves ~300-400ms per approved transaction.
|
|
76
|
+
// Falls back to tx.object() for passes created locally via sdk.create().
|
|
64
77
|
try {
|
|
65
78
|
const tx = this.buildPTB(pass, request);
|
|
66
79
|
const result = await signer.signAndExecute(tx);
|
|
67
80
|
return { status: 'approved', digest: result.digest, auto: true };
|
|
68
81
|
}
|
|
69
82
|
catch (error) {
|
|
70
|
-
// Distinguish infrastructure failures from policy rejections
|
|
71
|
-
// 'error' status means the transaction was NEVER submitted to chain
|
|
72
|
-
// 'blocked' status means the policy rejected it
|
|
73
83
|
const { reason, code } = classifyError(error);
|
|
84
|
+
// Version conflict — surface it so caller can refetch and retry
|
|
85
|
+
if (code === exports.EDGE_ERROR_CODES.VERSION_CONFLICT) {
|
|
86
|
+
return { status: 'error', reason, code, auto: false };
|
|
87
|
+
}
|
|
74
88
|
return { status: 'error', reason, code, auto: false };
|
|
75
89
|
}
|
|
76
90
|
}
|
|
@@ -82,10 +96,16 @@ class ExecutionEngine {
|
|
|
82
96
|
throw new Error(`EdgePass: no package ID configured for network "${this.network}". ` +
|
|
83
97
|
`Update EDGE_PACKAGE_ID in constants.ts after deploying the Move contract.`);
|
|
84
98
|
}
|
|
99
|
+
// Use objectRef when available — skips RPC round trip to resolve version.
|
|
100
|
+
// objectRef is populated by fetchPass() and contains the exact version + digest
|
|
101
|
+
// from the last on-chain state, making the PTB construction deterministic.
|
|
102
|
+
const passArg = pass.objectRef
|
|
103
|
+
? tx.objectRef(pass.objectRef)
|
|
104
|
+
: tx.object(pass.id);
|
|
85
105
|
tx.moveCall({
|
|
86
106
|
target: `${packageId}::edge_pass::execute_transaction`,
|
|
87
107
|
arguments: [
|
|
88
|
-
|
|
108
|
+
passArg,
|
|
89
109
|
tx.pure.u64(request.amount),
|
|
90
110
|
tx.pure.string(request.merchant),
|
|
91
111
|
tx.object('0x6'), // Sui shared Clock object
|
|
@@ -95,13 +115,11 @@ class ExecutionEngine {
|
|
|
95
115
|
}
|
|
96
116
|
/**
|
|
97
117
|
* Fetch a live EdgePass from Sui.
|
|
98
|
-
*
|
|
99
|
-
* Returns null if
|
|
100
|
-
* Throws
|
|
101
|
-
* so callers can distinguish "not found" from "broken".
|
|
118
|
+
* Populates objectRef for optimized PTB construction on subsequent execute() calls.
|
|
119
|
+
* Returns null if not found.
|
|
120
|
+
* Throws if objectId is invalid or a network error occurs.
|
|
102
121
|
*/
|
|
103
122
|
async fetchPass(objectId) {
|
|
104
|
-
// Validate objectId format before hitting the network
|
|
105
123
|
if (!objectId || objectId.length < 10) {
|
|
106
124
|
throw new Error(`EdgePass.fetch: invalid objectId "${objectId}". ` +
|
|
107
125
|
`Expected a Sui object ID starting with 0x.`);
|
|
@@ -114,17 +132,18 @@ class ExecutionEngine {
|
|
|
114
132
|
id: objectId,
|
|
115
133
|
options: { showContent: true },
|
|
116
134
|
});
|
|
117
|
-
|
|
118
|
-
if (!obj.data?.content) {
|
|
135
|
+
if (!obj.data?.content)
|
|
119
136
|
return null;
|
|
120
|
-
}
|
|
121
137
|
if (obj.data.content.dataType !== 'moveObject') {
|
|
122
138
|
throw new Error(`EdgePass.fetch: object ${objectId} is not a Move object. ` +
|
|
123
139
|
`Make sure you're passing an EdgePass object ID, not a transaction digest.`);
|
|
124
140
|
}
|
|
125
141
|
const fields = obj.data.content.fields;
|
|
126
|
-
|
|
127
|
-
|
|
142
|
+
const requiredFields = [
|
|
143
|
+
'budget', 'auto_threshold', 'escalate_threshold',
|
|
144
|
+
'approved_merchants', 'owner', 'spent', 'active',
|
|
145
|
+
'created_at', 'expires_at',
|
|
146
|
+
];
|
|
128
147
|
for (const field of requiredFields) {
|
|
129
148
|
if (fields[field] === undefined) {
|
|
130
149
|
throw new Error(`EdgePass.fetch: object ${objectId} is missing field "${field}". ` +
|
|
@@ -145,14 +164,19 @@ class ExecutionEngine {
|
|
|
145
164
|
active: fields.active,
|
|
146
165
|
createdAt: Number(fields.created_at),
|
|
147
166
|
expiresAt: Number(fields.expires_at),
|
|
167
|
+
// Populate objectRef for optimized PTB construction
|
|
168
|
+
// This allows execute() to skip the RPC version resolution call
|
|
169
|
+
objectRef: obj.data.version && obj.data.digest ? {
|
|
170
|
+
objectId: objectId,
|
|
171
|
+
version: obj.data.version,
|
|
172
|
+
digest: obj.data.digest,
|
|
173
|
+
} : undefined,
|
|
148
174
|
};
|
|
149
175
|
}
|
|
150
176
|
catch (error) {
|
|
151
|
-
// Re-throw our own errors as-is
|
|
152
177
|
if (error instanceof Error && error.message.startsWith('EdgePass')) {
|
|
153
178
|
throw error;
|
|
154
179
|
}
|
|
155
|
-
// Wrap network/RPC errors with context
|
|
156
180
|
const msg = error instanceof Error ? error.message : String(error);
|
|
157
181
|
throw new Error(`EdgePass.fetch: network error fetching object ${objectId}. ` +
|
|
158
182
|
`Check your Sui RPC connection. (${msg})`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutionEngine.js","sourceRoot":"","sources":["../../src/core/ExecutionEngine.ts"],"names":[],"mappings":";;;AAAA,+CAA+C;AAC/C,2DAAuD;AAOvD,iDAA8C;AAC9C,kDAAuF;AAEvF,wCAAwC;AAC3B,QAAA,gBAAgB,GAAG;IAC9B,eAAe,EAAK,iBAAiB;IACrC,eAAe,EAAK,iBAAiB;IACrC,iBAAiB,EAAG,mBAAmB;IACvC,gBAAgB,EAAI,kBAAkB;IACtC,kBAAkB,EAAE,oBAAoB;IACxC,OAAO,EAAa,SAAS;CACrB,CAAC;AAIX,SAAS,aAAa,CAAC,KAAc;IACnC,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEnE,IACE,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC5B,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAC9B,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC5B,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC;QACvB,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EACnB,CAAC;QACD,OAAO;YACL,MAAM,EAAE,oHAAoH,GAAG,GAAG;YAClI,IAAI,EAAE,wBAAgB,CAAC,eAAe;SACvC,CAAC;IACJ,CAAC;IAED,IACE,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC;QACzB,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC;QACvB,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC;QACvB,GAAG,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EACtC,CAAC;QACD,OAAO;YACL,MAAM,EAAE,+FAA+F,GAAG,GAAG;YAC7G,IAAI,EAAE,wBAAgB,CAAC,eAAe;SACvC,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAChE,OAAO;YACL,MAAM,EAAE,0FAA0F,GAAG,GAAG;YACxG,IAAI,EAAE,wBAAgB,CAAC,gBAAgB;SACxC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,sDAAsD,GAAG,GAAG;QACpE,IAAI,EAAE,wBAAgB,CAAC,OAAO;KAC/B,CAAC;AACJ,CAAC;AAED,MAAa,eAAe;IAI1B,YAAY,OAAgB;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,kBAAS,CAAC,EAAE,GAAG,EAAE,wBAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,OAAO,CACX,IAAoB,EACpB,OAA2B,EAC3B,MAA4E;QAG5E,
|
|
1
|
+
{"version":3,"file":"ExecutionEngine.js","sourceRoot":"","sources":["../../src/core/ExecutionEngine.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/types.d.ts
CHANGED
|
@@ -14,6 +14,11 @@ export interface EdgePassObject {
|
|
|
14
14
|
active: boolean;
|
|
15
15
|
createdAt: number;
|
|
16
16
|
expiresAt: number;
|
|
17
|
+
objectRef?: {
|
|
18
|
+
objectId: string;
|
|
19
|
+
version: string;
|
|
20
|
+
digest: string;
|
|
21
|
+
};
|
|
17
22
|
}
|
|
18
23
|
export interface TransactionRequest {
|
|
19
24
|
merchant: string;
|
|
@@ -25,9 +30,8 @@ export interface TransactionRequest {
|
|
|
25
30
|
*
|
|
26
31
|
* approved — transaction executed on-chain successfully
|
|
27
32
|
* escalated — transaction exceeds threshold, needs human approval
|
|
28
|
-
* blocked — transaction rejected by policy
|
|
33
|
+
* blocked — transaction rejected by policy
|
|
29
34
|
* error — network or signing failure — transaction was NOT submitted to chain
|
|
30
|
-
* Use this to distinguish infrastructure failures from policy rejections
|
|
31
35
|
*/
|
|
32
36
|
export type TransactionOutcome = {
|
|
33
37
|
status: 'approved';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAc,MAAM,CAAC;IAC3B,aAAa,EAAO,MAAM,CAAC;IAC3B,iBAAiB,EAAG,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAG,MAAM,EAAE,CAAC;IAC7B,QAAQ,EAAY,MAAM,CAAC;IAC3B,KAAK,EAAe,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAS,MAAM,CAAC;IAClB,MAAM,EAAK,cAAc,CAAC;IAC1B,KAAK,EAAM,MAAM,CAAC;IAClB,MAAM,EAAK,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAc,MAAM,CAAC;IAC3B,aAAa,EAAO,MAAM,CAAC;IAC3B,iBAAiB,EAAG,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAG,MAAM,EAAE,CAAC;IAC7B,QAAQ,EAAY,MAAM,CAAC;IAC3B,KAAK,EAAe,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAS,MAAM,CAAC;IAClB,MAAM,EAAK,cAAc,CAAC;IAC1B,KAAK,EAAM,MAAM,CAAC;IAClB,MAAM,EAAK,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAGlB,SAAS,CAAC,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAG,MAAM,CAAC;QACjB,MAAM,EAAI,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAG,MAAM,CAAC;IAClB,MAAM,EAAK,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IAAE,MAAM,EAAE,UAAU,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAG,GACvE;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAoB,IAAI,EAAE,KAAK,CAAA;CAAE,GACvE;IAAE,MAAM,EAAE,SAAS,CAAC;IAAG,MAAM,EAAE,MAAM,CAAC;IAAoB,IAAI,EAAE,KAAK,CAAA;CAAE,GACvE;IAAE,MAAM,EAAE,OAAO,CAAC;IAAK,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAK,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC;AAE5E,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAa,OAAO,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,MAAM,EAAc,MAAM,CAAC;CAC5B;AAED,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEvD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAS,OAAO,CAAC;IACxB,WAAW,EAAK,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB"}
|
package/package.json
CHANGED