@edge-protocol/sdk 0.9.2 โ 0.9.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/README.md +67 -24
- package/dist/core/EdgePass.d.ts +70 -0
- package/dist/core/EdgePass.d.ts.map +1 -1
- package/dist/core/EdgePass.js +58 -0
- package/dist/core/EdgePass.js.map +1 -1
- package/dist/utils/constants.d.ts +8 -0
- package/dist/utils/constants.d.ts.map +1 -1
- package/dist/utils/constants.js +11 -0
- package/dist/utils/constants.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -25,11 +25,13 @@ import { EdgePass, MIST_PER_SUI } from '@edge-protocol/sdk';
|
|
|
25
25
|
|
|
26
26
|
const sdk = new EdgePass({ network: 'mainnet', enokiApiKey: 'YOUR_KEY' });
|
|
27
27
|
const pass = await sdk.create(EdgePass.fromTemplate('festival', { owner: userAddress }), signer);
|
|
28
|
-
const outcome = await sdk.execute(pass, { merchant: 'Hydra Bar', amount:
|
|
28
|
+
const outcome = await sdk.execute(pass, { merchant: 'Hydra Bar', amount: BigInt(32) * MIST_PER_SUI }, signer);
|
|
29
29
|
|
|
30
30
|
console.log(outcome.status); // 'approved' | 'escalated' | 'blocked'
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
+
> **Note:** BigInt literal syntax (`32n`) requires TypeScript targeting ES2020+. For ES2019 apps use `BigInt(32) * MIST_PER_SUI` instead.
|
|
34
|
+
|
|
33
35
|
---
|
|
34
36
|
|
|
35
37
|
## ๐ The 5-Dimensional Trust Primitive
|
|
@@ -56,6 +58,7 @@ EdgePass.fromTemplate('gaming', { owner }) // $50 ยท auto <$2 ยท esca
|
|
|
56
58
|
EdgePass.fromTemplate('subscription', { owner }) // $200 ยท auto <$20 ยท escalate >$50 ยท 30d
|
|
57
59
|
EdgePass.fromTemplate('defi', { owner }) // $10k ยท auto <$500 ยท escalate >$1k ยท 7d
|
|
58
60
|
EdgePass.fromTemplate('enterprise', { owner }) // $50k ยท auto <$1k ยท escalate >$5k ยท 30d
|
|
61
|
+
EdgePass.fromTemplate('x402', { owner }) // $1k ยท auto <$10 ยท escalate >$100 ยท 24h ยท x402 payments
|
|
59
62
|
```
|
|
60
63
|
|
|
61
64
|
Example โ brand licensing agent:
|
|
@@ -63,7 +66,7 @@ Example โ brand licensing agent:
|
|
|
63
66
|
```typescript
|
|
64
67
|
EdgePass.fromTemplate('enterprise', {
|
|
65
68
|
approvedMerchants: ['nike-licensing.sui', 'brand-registry.sui'],
|
|
66
|
-
escalateThreshold:
|
|
69
|
+
escalateThreshold: BigInt(10_000) * MIST_PER_SUI,
|
|
67
70
|
owner: cfoAddress,
|
|
68
71
|
})
|
|
69
72
|
// Enforce IP usage terms autonomously โ no lawyers, no monitoring, no surprises
|
|
@@ -77,9 +80,9 @@ Plan an agent's session without touching the chain. Zero network calls.
|
|
|
77
80
|
|
|
78
81
|
```typescript
|
|
79
82
|
const plan = sdk.simulate(pass, [
|
|
80
|
-
{ merchant: 'Shuttle Express', amount:
|
|
81
|
-
{ merchant: 'ShadyTokens.xyz', amount:
|
|
82
|
-
{ merchant: 'Stage Access VIP', amount:
|
|
83
|
+
{ merchant: 'Shuttle Express', amount: BigInt(45) * MIST_PER_SUI },
|
|
84
|
+
{ merchant: 'ShadyTokens.xyz', amount: BigInt(1) },
|
|
85
|
+
{ merchant: 'Stage Access VIP', amount: BigInt(220) * MIST_PER_SUI },
|
|
83
86
|
]);
|
|
84
87
|
|
|
85
88
|
console.log(plan.summary);
|
|
@@ -159,7 +162,7 @@ const safePurchase = EdgePass.withPolicy(pass, signer, sdk, async (request) => {
|
|
|
159
162
|
// blocked/escalated never reach your tool logic
|
|
160
163
|
const { outcome, result } = await safePurchase({
|
|
161
164
|
merchant: 'Hydra Bar',
|
|
162
|
-
amount:
|
|
165
|
+
amount: BigInt(32) * MIST_PER_SUI,
|
|
163
166
|
});
|
|
164
167
|
```
|
|
165
168
|
|
|
@@ -202,7 +205,7 @@ function AgentDashboard({ passId, signer }) {
|
|
|
202
205
|
return (
|
|
203
206
|
<div>
|
|
204
207
|
<progress value={budgetStatus?.utilizationPct} max={100} />
|
|
205
|
-
<button onClick={() => execute({ merchant: 'Hydra Bar', amount:
|
|
208
|
+
<button onClick={() => execute({ merchant: 'Hydra Bar', amount: BigInt(32) * MIST_PER_SUI })}>
|
|
206
209
|
Purchase
|
|
207
210
|
</button>
|
|
208
211
|
</div>
|
|
@@ -291,6 +294,52 @@ if (preview.requiresEscalation) showEscalationModal(preview.reason);
|
|
|
291
294
|
|
|
292
295
|
---
|
|
293
296
|
|
|
297
|
+
## ๐ x402 Integration
|
|
298
|
+
|
|
299
|
+
Edge and x402 are complementary layers in the autonomous payment stack.
|
|
300
|
+
|
|
301
|
+
x402 answers: *how does money move from agent to merchant?*
|
|
302
|
+
Edge answers: *should this agent be allowed to spend this money at all?*
|
|
303
|
+
|
|
304
|
+
```
|
|
305
|
+
Edge (policy layer) โ x402 (payment rail) โ Settlement
|
|
306
|
+
"is this allowed?" "move the money"
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
```typescript
|
|
310
|
+
import { EdgePass, MIST_PER_SUI } from '@edge-protocol/sdk';
|
|
311
|
+
|
|
312
|
+
// 1. Create a trust boundary scoped for x402 payments
|
|
313
|
+
const pass = await sdk.create(
|
|
314
|
+
EdgePass.fromTemplate('x402', {
|
|
315
|
+
approvedMerchants: ['api.example.com', 'data.provider.com'],
|
|
316
|
+
owner: agentAddress,
|
|
317
|
+
}),
|
|
318
|
+
signer
|
|
319
|
+
);
|
|
320
|
+
|
|
321
|
+
// 2. Edge validates policy before x402 moves money
|
|
322
|
+
const outcome = await sdk.execute(pass, {
|
|
323
|
+
merchant: endpoint,
|
|
324
|
+
amount: BigInt(Math.floor(amountUSD * 1e9)),
|
|
325
|
+
}, signer);
|
|
326
|
+
|
|
327
|
+
if (outcome.status === 'approved') {
|
|
328
|
+
// 3. x402 handles the actual payment
|
|
329
|
+
await fetch(endpoint, {
|
|
330
|
+
headers: { 'X-Payment': await createX402Payment(amount) }
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
if (outcome.status === 'escalated') {
|
|
335
|
+
await notifyUser('Payment requires your approval');
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
// blocked โ never reaches x402, policy rejected it
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
---
|
|
342
|
+
|
|
294
343
|
## ๐ Security Model
|
|
295
344
|
|
|
296
345
|
Edge has two enforcement layers:
|
|
@@ -358,35 +407,29 @@ yarn add @edge-protocol/sdk
|
|
|
358
407
|
```
|
|
359
408
|
|
|
360
409
|
React hook (requires React 18+):
|
|
361
|
-
```
|
|
410
|
+
```typescript
|
|
362
411
|
import { useEdgePass } from '@edge-protocol/sdk/react';
|
|
363
412
|
```
|
|
364
413
|
|
|
414
|
+
See [CHANGELOG.md](CHANGELOG.md) for version history.
|
|
415
|
+
|
|
365
416
|
---
|
|
366
417
|
|
|
367
418
|
## Competitive Positioning
|
|
368
419
|
|
|
369
420
|
Edge is the **policy layer** for the agentic economy. It is not a payment rail.
|
|
370
421
|
|
|
371
|
-
| Solution | Layer | Open Source | Sui Native | 3-line SDK |
|
|
372
|
-
|
|
373
|
-
| **Edge Protocol** | Policy enforcement | โ
| โ
| โ
|
|
|
374
|
-
| x402 (Coinbase) | Payment rail | โ
| โ | โ |
|
|
375
|
-
| ERC-4337 | Account abstraction | โ
| โ EVM only | โ |
|
|
376
|
-
| Trust Wallet Agent Kit | Wallet interactions | โ
| Partial | โ |
|
|
377
|
-
| Cobo Agentic Wallet | Custody | โ Enterprise | โ | โ |
|
|
378
|
-
| Skyfire | Identity + settlement | โ | โ | โ |
|
|
422
|
+
| Solution | Layer | Open Source | Sui Native | simulate() | 3-line SDK |
|
|
423
|
+
|----------|-------|-------------|------------|------------|------------|
|
|
424
|
+
| **Edge Protocol** | Policy enforcement | โ
| โ
| โ
| โ
|
|
|
425
|
+
| x402 (Coinbase) | Payment rail | โ
| โ | โ | โ |
|
|
426
|
+
| ERC-4337 | Account abstraction | โ
| โ EVM only | โ | โ |
|
|
427
|
+
| Trust Wallet Agent Kit | Wallet interactions | โ
| Partial | โ | โ |
|
|
428
|
+
| Cobo Agentic Wallet | Custody | โ Enterprise | โ | โ | โ |
|
|
429
|
+
| Skyfire | Identity + settlement | โ | โ | โ | โ |
|
|
379
430
|
|
|
380
431
|
**Edge complements x402, it does not compete with it.**
|
|
381
432
|
|
|
382
|
-
x402 answers: *how does money move from agent to merchant?*
|
|
383
|
-
Edge answers: *should this agent be allowed to spend this money at all?*
|
|
384
|
-
|
|
385
|
-
```
|
|
386
|
-
Edge (policy layer) โ x402 (payment rail) โ Settlement
|
|
387
|
-
"is this allowed?" "move the money"
|
|
388
|
-
```
|
|
389
|
-
|
|
390
433
|
---
|
|
391
434
|
|
|
392
435
|
*The best infrastructure is invisible.*
|
package/dist/core/EdgePass.d.ts
CHANGED
|
@@ -88,6 +88,76 @@ export declare class EdgePass {
|
|
|
88
88
|
outcome: TransactionOutcome;
|
|
89
89
|
result?: T;
|
|
90
90
|
}>;
|
|
91
|
+
/**
|
|
92
|
+
* Wrap an Edge policy check with Fireblocks settlement.
|
|
93
|
+
*
|
|
94
|
+
* Edge validates policy on Sui mainnet. If approved, Fireblocks executes
|
|
95
|
+
* the settlement and links the Edge digest in the transaction note.
|
|
96
|
+
* Blocked and escalated decisions never reach Fireblocks.
|
|
97
|
+
*
|
|
98
|
+
* Every Fireblocks transaction is traceable back to an immutable Edge
|
|
99
|
+
* approval on Sui mainnet โ full audit trail for compliance.
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
* const safeTx = EdgePass.withFireblocks(pass, signer, sdk, {
|
|
103
|
+
* settle: async (approved) => {
|
|
104
|
+
* return await fireblocks.createTransaction({
|
|
105
|
+
* assetId: 'USDC_BASE',
|
|
106
|
+
* amount: approved.amountUSD,
|
|
107
|
+
* source: { type: 'VAULT_ACCOUNT', id: '0' },
|
|
108
|
+
* destination: { type: 'ONE_TIME_ADDRESS', oneTimeAddress: { address: approved.destinationAddress } },
|
|
109
|
+
* note: `Edge approved: ${approved.edgeDigest}`,
|
|
110
|
+
* });
|
|
111
|
+
* },
|
|
112
|
+
* onEscalated: async ({ request, reason }) => {
|
|
113
|
+
* await notifySlack(`Approval required: ${reason}`);
|
|
114
|
+
* },
|
|
115
|
+
* });
|
|
116
|
+
*
|
|
117
|
+
* const result = await safeTx({
|
|
118
|
+
* merchant: 'aws-billing.vendor',
|
|
119
|
+
* amount: BigInt(450) * MIST_PER_SUI,
|
|
120
|
+
* amountUSD: '450.00',
|
|
121
|
+
* destinationAddress: '0x...',
|
|
122
|
+
* });
|
|
123
|
+
*/
|
|
124
|
+
static withFireblocks<TSettlement>(pass: EdgePassObject, signer: {
|
|
125
|
+
signAndExecute: (tx: Transaction) => Promise<{
|
|
126
|
+
digest: string;
|
|
127
|
+
}>;
|
|
128
|
+
}, sdk: EdgePass, options: {
|
|
129
|
+
/** Called when Edge approves โ execute your Fireblocks settlement here */
|
|
130
|
+
settle: (approved: {
|
|
131
|
+
edgeDigest: string;
|
|
132
|
+
merchant: string;
|
|
133
|
+
amount: bigint;
|
|
134
|
+
amountUSD: string;
|
|
135
|
+
destinationAddress: string;
|
|
136
|
+
}) => Promise<TSettlement>;
|
|
137
|
+
/** Called when Edge escalates โ notify human approver */
|
|
138
|
+
onEscalated?: (context: {
|
|
139
|
+
request: TransactionRequest & {
|
|
140
|
+
amountUSD: string;
|
|
141
|
+
destinationAddress: string;
|
|
142
|
+
};
|
|
143
|
+
reason: string;
|
|
144
|
+
}) => Promise<void>;
|
|
145
|
+
/** Called when Edge blocks โ log or alert */
|
|
146
|
+
onBlocked?: (context: {
|
|
147
|
+
request: TransactionRequest & {
|
|
148
|
+
amountUSD: string;
|
|
149
|
+
destinationAddress: string;
|
|
150
|
+
};
|
|
151
|
+
reason: string;
|
|
152
|
+
}) => Promise<void>;
|
|
153
|
+
}): (request: TransactionRequest & {
|
|
154
|
+
amountUSD: string;
|
|
155
|
+
destinationAddress: string;
|
|
156
|
+
}) => Promise<{
|
|
157
|
+
outcome: TransactionOutcome;
|
|
158
|
+
settlement?: TSettlement;
|
|
159
|
+
edgeDigest?: string;
|
|
160
|
+
}>;
|
|
91
161
|
/**
|
|
92
162
|
* Mint a new EdgePass on Sui.
|
|
93
163
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EdgePass.d.ts","sourceRoot":"","sources":["../../src/core/EdgePass.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EACL,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAChB,YAAY,EACb,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAKL,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAM5B,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;AAErE,MAAM,MAAM,oBAAoB,GAC5B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAE,OAAO,EAAE,kBAAkB,GAAG;QAAE,MAAM,EAAE,UAAU,CAAA;KAAG,CAAC;IAAC,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,kBAAkB,CAAA;CAAE,GAC/H;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,kBAAkB,GAAG;QAAE,MAAM,EAAE,WAAW,CAAA;KAAE,CAAC;IAAC,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,kBAAkB,CAAA;CAAE,GAC/H;IAAE,IAAI,EAAE,SAAS,CAAC;IAAG,OAAO,EAAE,kBAAkB,GAAG;QAAE,MAAM,EAAE,SAAS,CAAA;KAAI,CAAC;IAAC,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAEpI,KAAK,aAAa,CAAC,CAAC,SAAS,iBAAiB,IAAI,CAChD,OAAO,EAAE,OAAO,CAAC,oBAAoB,EAAE;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC,KAChD,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAI1B,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,MAAM,CAAgB;
|
|
1
|
+
{"version":3,"file":"EdgePass.d.ts","sourceRoot":"","sources":["../../src/core/EdgePass.ts"],"names":[],"mappings":"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"}
|
package/dist/core/EdgePass.js
CHANGED
|
@@ -11,6 +11,7 @@ const SUI_CLOCK_OBJECT_ID = '0x0000000000000000000000000000000000000000000000000
|
|
|
11
11
|
// โโ EdgePass class โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
12
12
|
class EdgePass {
|
|
13
13
|
constructor(config) {
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
14
15
|
this.listeners = new Map();
|
|
15
16
|
this.config = config;
|
|
16
17
|
this.client = new client_1.SuiClient({ url: constants_1.NETWORK_URLS[config.network] });
|
|
@@ -106,6 +107,63 @@ class EdgePass {
|
|
|
106
107
|
return { outcome, result };
|
|
107
108
|
};
|
|
108
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* Wrap an Edge policy check with Fireblocks settlement.
|
|
112
|
+
*
|
|
113
|
+
* Edge validates policy on Sui mainnet. If approved, Fireblocks executes
|
|
114
|
+
* the settlement and links the Edge digest in the transaction note.
|
|
115
|
+
* Blocked and escalated decisions never reach Fireblocks.
|
|
116
|
+
*
|
|
117
|
+
* Every Fireblocks transaction is traceable back to an immutable Edge
|
|
118
|
+
* approval on Sui mainnet โ full audit trail for compliance.
|
|
119
|
+
*
|
|
120
|
+
* @example
|
|
121
|
+
* const safeTx = EdgePass.withFireblocks(pass, signer, sdk, {
|
|
122
|
+
* settle: async (approved) => {
|
|
123
|
+
* return await fireblocks.createTransaction({
|
|
124
|
+
* assetId: 'USDC_BASE',
|
|
125
|
+
* amount: approved.amountUSD,
|
|
126
|
+
* source: { type: 'VAULT_ACCOUNT', id: '0' },
|
|
127
|
+
* destination: { type: 'ONE_TIME_ADDRESS', oneTimeAddress: { address: approved.destinationAddress } },
|
|
128
|
+
* note: `Edge approved: ${approved.edgeDigest}`,
|
|
129
|
+
* });
|
|
130
|
+
* },
|
|
131
|
+
* onEscalated: async ({ request, reason }) => {
|
|
132
|
+
* await notifySlack(`Approval required: ${reason}`);
|
|
133
|
+
* },
|
|
134
|
+
* });
|
|
135
|
+
*
|
|
136
|
+
* const result = await safeTx({
|
|
137
|
+
* merchant: 'aws-billing.vendor',
|
|
138
|
+
* amount: BigInt(450) * MIST_PER_SUI,
|
|
139
|
+
* amountUSD: '450.00',
|
|
140
|
+
* destinationAddress: '0x...',
|
|
141
|
+
* });
|
|
142
|
+
*/
|
|
143
|
+
static withFireblocks(pass, signer, sdk, options) {
|
|
144
|
+
return async (request) => {
|
|
145
|
+
const outcome = await sdk.execute(pass, request, signer);
|
|
146
|
+
if (outcome.status === 'approved') {
|
|
147
|
+
const settlement = await options.settle({
|
|
148
|
+
edgeDigest: outcome.digest,
|
|
149
|
+
merchant: request.merchant,
|
|
150
|
+
amount: request.amount,
|
|
151
|
+
amountUSD: request.amountUSD,
|
|
152
|
+
destinationAddress: request.destinationAddress,
|
|
153
|
+
});
|
|
154
|
+
return { outcome, settlement, edgeDigest: outcome.digest };
|
|
155
|
+
}
|
|
156
|
+
if (outcome.status === 'escalated') {
|
|
157
|
+
await options.onEscalated?.({ request, reason: outcome.reason });
|
|
158
|
+
return { outcome };
|
|
159
|
+
}
|
|
160
|
+
if (outcome.status === 'blocked') {
|
|
161
|
+
await options.onBlocked?.({ request, reason: outcome.reason });
|
|
162
|
+
return { outcome };
|
|
163
|
+
}
|
|
164
|
+
return { outcome };
|
|
165
|
+
};
|
|
166
|
+
}
|
|
109
167
|
// โโ Core API โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
110
168
|
/**
|
|
111
169
|
* Mint a new EdgePass on Sui.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EdgePass.js","sourceRoot":"","sources":["../../src/core/EdgePass.ts"],"names":[],"mappings":";;;AAAA,+CAA+C;AAC/C,2DAAuD;AACvD,6CAA6C;AAU7C,iDAA8C;AAC9C,uDAAoD;AACpD,kDAM4B;AAE5B,MAAM,mBAAmB,GAAG,oEAAoE,CAAC;AAejG,iFAAiF;AAEjF,MAAa,QAAQ;
|
|
1
|
+
{"version":3,"file":"EdgePass.js","sourceRoot":"","sources":["../../src/core/EdgePass.ts"],"names":[],"mappings":";;;AAAA,+CAA+C;AAC/C,2DAAuD;AACvD,6CAA6C;AAU7C,iDAA8C;AAC9C,uDAAoD;AACpD,kDAM4B;AAE5B,MAAM,mBAAmB,GAAG,oEAAoE,CAAC;AAejG,iFAAiF;AAEjF,MAAa,QAAQ;IAOnB,YAAY,MAAqB;QAHjC,wDAAwD;QAChD,cAAS,GAA0C,IAAI,GAAG,EAAE,CAAC;QAGnE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,IAAI,kBAAS,CAAC,EAAE,GAAG,EAAE,wBAAY,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,GAAG,IAAI,iCAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,gFAAgF;IAEhF;;;;;;;;;;;;;;OAcG;IACH,EAAE,CAA8B,KAAQ,EAAE,QAA0B;QAClE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAA8B,KAAQ,EAAE,QAA0B;QACnE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kBAAkB,CAAC,KAAyB;QAC1C,IAAI,KAAK;YAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;;YACnC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,IAAI,CAAC,OAA6B;QACxC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,QAAQ,CAAC,OAAO,CAAC,CAAC;YACpB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,kCAAkC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;IACH,CAAC;IAED,iFAAiF;IAEjF;;;;;;;;OAQG;IACH,MAAM,CAAC,YAAY,CACjB,QAA0B,EAC1B,SAAsD;QAEtD,MAAM,IAAI,GAAG,0BAAc,CAAC,QAAQ,CAAC,CAAC;QACtC,OAAO;YACL,GAAG,IAAI;YACP,GAAG,SAAS;YACZ,iBAAiB,EAAE,SAAS,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB;SACzE,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,UAAU,CACf,IAAoB,EACpB,MAA4E,EAC5E,GAAa,EACb,EAA+C;QAE/C,OAAO,KAAK,EAAE,OAA2B,EAAE,EAAE;YAC3C,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAEzD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;gBACjG,OAAO,EAAE,OAAO,EAAE,CAAC;YACrB,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC;YACjC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAC7B,CAAC,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,MAAM,CAAC,cAAc,CACnB,IAAoB,EACpB,MAA4E,EAC5E,GAAa,EACb,OAmBC;QAMD,OAAO,KAAK,EAAE,OAAO,EAAE,EAAE;YACvB,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAEzD,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBAClC,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;oBACtC,UAAU,EAAE,OAAO,CAAC,MAAM;oBAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;iBAC/C,CAAC,CAAC;gBAEH,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;YAC7D,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBACnC,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;gBACjE,OAAO,EAAE,OAAO,EAAE,CAAC;YACrB,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACjC,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC/D,OAAO,EAAE,OAAO,EAAE,CAAC;YACrB,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,CAAC;QACrB,CAAC,CAAC;IACJ,CAAC;IAED,iFAAiF;IAEjF;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,UAA0B,EAC1B,MAAyH;QAGzH,IAAI,UAAU,CAAC,aAAa,IAAI,UAAU,CAAC,iBAAiB,EAAE,CAAC;YAC7D,MAAM,IAAI,KAAK,CAAC,mCAAmC,UAAU,CAAC,aAAa,0CAA0C,UAAU,CAAC,iBAAiB,GAAG,CAAC,CAAC;QACxJ,CAAC;QACD,IAAI,UAAU,CAAC,iBAAiB,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,uCAAuC,UAAU,CAAC,iBAAiB,+BAA+B,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1I,CAAC;QACD,IAAI,UAAU,CAAC,iBAAiB,KAAK,SAAS,IAAI,UAAU,CAAC,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,EAAE,CAAC;YAC9G,MAAM,IAAI,KAAK,CAAC,uCAAuC,UAAU,CAAC,iBAAiB,qCAAqC,UAAU,CAAC,iBAAiB,gCAAgC,CAAC,CAAC;QACxL,CAAC;QACD,IAAI,UAAU,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACrH,IAAI,UAAU,CAAC,QAAQ,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAClG,IAAI,UAAU,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QAEtG,MAAM,EAAE,GAAG,IAAI,0BAAW,EAAE,CAAC;QAC7B,EAAE,CAAC,YAAY,CAAC,8BAAkB,CAAC,CAAC;QAEpC,MAAM,SAAS,GAAG,2BAAe,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,0DAA0D,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;QAEnH,EAAE,CAAC,QAAQ,CAAC;YACV,MAAM,EAAE,GAAG,SAAS,0BAA0B;YAC9C,SAAS,EAAE;gBACT,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;gBAC9B,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC;gBACrC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC;gBACzC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAChC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,iBAAiB,CAAC;gBACtD,EAAE,CAAC,eAAe,CAAC;oBACjB,QAAQ,EAAE,mBAAmB;oBAC7B,oBAAoB,EAAE,CAAC;oBACvB,OAAO,EAAE,KAAK;iBACf,CAAC;aACH;SACF,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,IAAA,gBAAQ,EAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAE1D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM;YACpC,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;YAChB,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG,GAAG,UAAU,CAAC,QAAQ;SACrC,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,OAAO,CACX,IAAoB,EACpB,OAA2B,EAC3B,MAA4E;QAE5E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAEjE,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAc,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9E,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,QAAQ,CAAC,IAAoB,EAAE,QAA8B;QAC3D,OAAO,2BAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,IAAoB,EAAE,OAA2B;QACxD,OAAO,2BAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;;;OAOG;IACH,YAAY,CAAC,IAAoB,EAAE,kBAAkB,GAAG,GAAG;QACzD,OAAO,2BAAY,CAAC,YAAY,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,IAAoB;QACjC,OAAO,2BAAY,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,IAAoB,EAAE,SAAS,GAAG,GAAG;QAC/C,OAAO,2BAAY,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,IAAoB;QAClC,OAAO,2BAAY,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,IAAoB;QAChC,OAAO,2BAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACH,cAAc,CAAC,IAAoB,EAAE,QAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;QAC5D,OAAO,2BAAY,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,IAAoB;QAC1B,OAAO,2BAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK,CAAC,QAAgB;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,IAAoB,EACpB,MAA4E;QAE5E,MAAM,EAAE,GAAG,IAAI,0BAAW,EAAE,CAAC;QAC7B,EAAE,CAAC,YAAY,CAAC,8BAAkB,CAAC,CAAC;QACpC,MAAM,SAAS,GAAG,2BAAe,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvD,EAAE,CAAC,QAAQ,CAAC;YACV,MAAM,EAAE,GAAG,SAAS,0BAA0B;YAC9C,SAAS,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAChC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC;CACF;AApZD,4BAoZC"}
|
|
@@ -43,6 +43,14 @@ export declare const EDGE_TEMPLATES: {
|
|
|
43
43
|
readonly expiryMs: number;
|
|
44
44
|
readonly approvedMerchants: string[];
|
|
45
45
|
};
|
|
46
|
+
readonly x402: {
|
|
47
|
+
readonly budget: bigint;
|
|
48
|
+
readonly autoThreshold: bigint;
|
|
49
|
+
readonly escalateThreshold: bigint;
|
|
50
|
+
readonly maxPerTransaction: bigint;
|
|
51
|
+
readonly expiryMs: number;
|
|
52
|
+
readonly approvedMerchants: string[];
|
|
53
|
+
};
|
|
46
54
|
};
|
|
47
55
|
export type EdgePassTemplate = keyof typeof EDGE_TEMPLATES;
|
|
48
56
|
export declare const FESTIVAL_MERCHANTS: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,QAAwB,CAAC;AAElD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI/C,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIlD,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAqB,CAAC;AAIrD,eAAO,MAAM,cAAc;;;;;;;oCAOE,MAAM,EAAE;;;;;;;;oCAQR,MAAM,EAAE;;;;;;;;oCAQR,MAAM,EAAE;;;;;;;;oCAQR,MAAM,EAAE;;;;;;;;oCAQR,MAAM,EAAE;;CAE3B,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,cAAc,CAAC;AAI3D,eAAO,MAAM,kBAAkB,UAM9B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;CAK3B,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,QAAwB,CAAC;AAElD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI/C,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIlD,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAqB,CAAC;AAIrD,eAAO,MAAM,cAAc;;;;;;;oCAOE,MAAM,EAAE;;;;;;;;oCAQR,MAAM,EAAE;;;;;;;;oCAQR,MAAM,EAAE;;;;;;;;oCAQR,MAAM,EAAE;;;;;;;;oCAQR,MAAM,EAAE;;;;;;;;oCAWR,MAAM,EAAE;;CAE3B,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,cAAc,CAAC;AAI3D,eAAO,MAAM,kBAAkB,UAM9B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;CAK3B,CAAC"}
|
package/dist/utils/constants.js
CHANGED
|
@@ -55,6 +55,17 @@ exports.EDGE_TEMPLATES = {
|
|
|
55
55
|
expiryMs: 30 * 24 * 60 * 60 * 1000,
|
|
56
56
|
approvedMerchants: [],
|
|
57
57
|
},
|
|
58
|
+
// x402 โ designed for Coinbase x402 payment protocol integration
|
|
59
|
+
// Edge validates policy (should this agent pay?), x402 moves the money (how does it pay?)
|
|
60
|
+
// Together they form a complete autonomous payment stack.
|
|
61
|
+
x402: {
|
|
62
|
+
budget: BigInt(1000) * exports.MIST_PER_SUI,
|
|
63
|
+
autoThreshold: BigInt(10) * exports.MIST_PER_SUI,
|
|
64
|
+
escalateThreshold: BigInt(100) * exports.MIST_PER_SUI,
|
|
65
|
+
maxPerTransaction: BigInt(200) * exports.MIST_PER_SUI,
|
|
66
|
+
expiryMs: 24 * 60 * 60 * 1000,
|
|
67
|
+
approvedMerchants: [],
|
|
68
|
+
},
|
|
58
69
|
};
|
|
59
70
|
// โโ Legacy festival constants (kept for backwards compat) โโโโโโโโโโโโโโโโโ
|
|
60
71
|
exports.FESTIVAL_MERCHANTS = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED