tenzro-sdk 0.1.0 → 0.3.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/LICENSE +4 -15
- package/README.md +197 -4
- package/dist/adaptive-burn.d.ts +40 -0
- package/dist/adaptive-burn.d.ts.map +1 -0
- package/dist/adaptive-burn.js +53 -0
- package/dist/adaptive-burn.js.map +1 -0
- package/dist/agent.d.ts +127 -12
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +176 -15
- package/dist/agent.js.map +1 -1
- package/dist/ap2.d.ts +96 -0
- package/dist/ap2.d.ts.map +1 -1
- package/dist/ap2.js +65 -0
- package/dist/ap2.js.map +1 -1
- package/dist/app.js +5 -5
- package/dist/app.js.map +1 -1
- package/dist/auth.d.ts +394 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +237 -0
- package/dist/auth.js.map +1 -0
- package/dist/bond.d.ts +70 -0
- package/dist/bond.d.ts.map +1 -0
- package/dist/bond.js +172 -0
- package/dist/bond.js.map +1 -0
- package/dist/cct.d.ts +53 -0
- package/dist/cct.d.ts.map +1 -0
- package/dist/cct.js +30 -0
- package/dist/cct.js.map +1 -0
- package/dist/client.d.ts +215 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +295 -12
- package/dist/client.js.map +1 -1
- package/dist/cortex.d.ts +227 -0
- package/dist/cortex.d.ts.map +1 -0
- package/dist/cortex.js +137 -0
- package/dist/cortex.js.map +1 -0
- package/dist/custody.d.ts +251 -0
- package/dist/custody.d.ts.map +1 -1
- package/dist/custody.js +216 -0
- package/dist/custody.js.map +1 -1
- package/dist/eip6963.d.ts +63 -0
- package/dist/eip6963.d.ts.map +1 -0
- package/dist/eip6963.js +67 -0
- package/dist/eip6963.js.map +1 -0
- package/dist/eip7702.d.ts +110 -0
- package/dist/eip7702.d.ts.map +1 -0
- package/dist/eip7702.js +73 -0
- package/dist/eip7702.js.map +1 -0
- package/dist/erc7683.d.ts +79 -0
- package/dist/erc7683.d.ts.map +1 -0
- package/dist/erc7683.js +82 -0
- package/dist/erc7683.js.map +1 -0
- package/dist/erc8004.d.ts +97 -0
- package/dist/erc8004.d.ts.map +1 -0
- package/dist/erc8004.js +182 -0
- package/dist/erc8004.js.map +1 -0
- package/dist/events.d.ts +45 -15
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +38 -8
- package/dist/events.js.map +1 -1
- package/dist/identity.d.ts +16 -2
- package/dist/identity.d.ts.map +1 -1
- package/dist/identity.js +19 -1
- package/dist/identity.js.map +1 -1
- package/dist/index.d.ts +52 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +83 -1
- package/dist/index.js.map +1 -1
- package/dist/insurance.d.ts +38 -0
- package/dist/insurance.d.ts.map +1 -0
- package/dist/insurance.js +51 -0
- package/dist/insurance.js.map +1 -0
- package/dist/iroh.d.ts +104 -0
- package/dist/iroh.d.ts.map +1 -0
- package/dist/iroh.js +102 -0
- package/dist/iroh.js.map +1 -0
- package/dist/lifecycle.d.ts +41 -0
- package/dist/lifecycle.d.ts.map +1 -0
- package/dist/lifecycle.js +56 -0
- package/dist/lifecycle.js.map +1 -0
- package/dist/marketplace.d.ts +30 -2
- package/dist/marketplace.d.ts.map +1 -1
- package/dist/marketplace.js +36 -2
- package/dist/marketplace.js.map +1 -1
- package/dist/memory.d.ts +78 -0
- package/dist/memory.d.ts.map +1 -0
- package/dist/memory.js +60 -0
- package/dist/memory.js.map +1 -0
- package/dist/multimodal.d.ts +294 -0
- package/dist/multimodal.d.ts.map +1 -0
- package/dist/multimodal.js +160 -0
- package/dist/multimodal.js.map +1 -0
- package/dist/passkey.d.ts +193 -0
- package/dist/passkey.d.ts.map +1 -0
- package/dist/passkey.js +481 -0
- package/dist/passkey.js.map +1 -0
- package/dist/payment.d.ts +14 -1
- package/dist/payment.d.ts.map +1 -1
- package/dist/payment.js +15 -0
- package/dist/payment.js.map +1 -1
- package/dist/principal-chain.d.ts +41 -0
- package/dist/principal-chain.d.ts.map +1 -0
- package/dist/principal-chain.js +56 -0
- package/dist/principal-chain.js.map +1 -0
- package/dist/provider.d.ts +7 -6
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +9 -6
- package/dist/provider.js.map +1 -1
- package/dist/quota.d.ts +54 -0
- package/dist/quota.d.ts.map +1 -0
- package/dist/quota.js +71 -0
- package/dist/quota.js.map +1 -0
- package/dist/rpc.d.ts +43 -4
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +110 -3
- package/dist/rpc.js.map +1 -1
- package/dist/seed-agent.d.ts +52 -0
- package/dist/seed-agent.d.ts.map +1 -0
- package/dist/seed-agent.js +69 -0
- package/dist/seed-agent.js.map +1 -0
- package/dist/settlement.d.ts +69 -10
- package/dist/settlement.d.ts.map +1 -1
- package/dist/settlement.js +220 -16
- package/dist/settlement.js.map +1 -1
- package/dist/signer.d.ts +181 -0
- package/dist/signer.d.ts.map +1 -0
- package/dist/signer.js +69 -0
- package/dist/signer.js.map +1 -0
- package/dist/sla.d.ts +95 -0
- package/dist/sla.d.ts.map +1 -0
- package/dist/sla.js +70 -0
- package/dist/sla.js.map +1 -0
- package/dist/snapshot.d.ts +122 -0
- package/dist/snapshot.d.ts.map +1 -0
- package/dist/snapshot.js +80 -0
- package/dist/snapshot.js.map +1 -0
- package/dist/staking.d.ts +5 -5
- package/dist/staking.d.ts.map +1 -1
- package/dist/staking.js +8 -6
- package/dist/staking.js.map +1 -1
- package/dist/streaming.js.map +1 -1
- package/dist/svm-cross-vm.d.ts +109 -0
- package/dist/svm-cross-vm.d.ts.map +1 -0
- package/dist/svm-cross-vm.js +215 -0
- package/dist/svm-cross-vm.js.map +1 -0
- package/dist/task.d.ts +56 -22
- package/dist/task.d.ts.map +1 -1
- package/dist/task.js +65 -31
- package/dist/task.js.map +1 -1
- package/dist/token.d.ts +41 -11
- package/dist/token.d.ts.map +1 -1
- package/dist/token.js.map +1 -1
- package/dist/training.d.ts +108 -0
- package/dist/training.d.ts.map +1 -0
- package/dist/training.js +53 -0
- package/dist/training.js.map +1 -0
- package/dist/types.d.ts +247 -17
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/validator.d.ts +76 -0
- package/dist/validator.d.ts.map +1 -0
- package/dist/validator.js +47 -0
- package/dist/validator.js.map +1 -0
- package/dist/wallet.d.ts +26 -9
- package/dist/wallet.d.ts.map +1 -1
- package/dist/wallet.js +34 -19
- package/dist/wallet.js.map +1 -1
- package/dist/wormhole.d.ts +76 -0
- package/dist/wormhole.d.ts.map +1 -0
- package/dist/wormhole.js +56 -0
- package/dist/wormhole.js.map +1 -0
- package/package.json +3 -2
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal EIP-6963 provider discovery for `TenzroClient.fromInjected()`.
|
|
3
|
+
*
|
|
4
|
+
* The browser extension installs `window.tenzro` and announces itself
|
|
5
|
+
* via `eip6963:announceProvider` (the multi-wallet discovery standard
|
|
6
|
+
* from EIP-6963 §Specification). This helper listens for the matching
|
|
7
|
+
* announcement and returns the provider, with a typed
|
|
8
|
+
* `TenzroNotInstalledError` for the not-installed case.
|
|
9
|
+
*
|
|
10
|
+
* The discovery code is inlined here rather than imported from a
|
|
11
|
+
* separate `@tenzro/inject` package so the SDK has zero peer
|
|
12
|
+
* dependencies — `npm install tenzro-sdk` is enough to opt into the
|
|
13
|
+
* injected-provider path.
|
|
14
|
+
*/
|
|
15
|
+
export interface EIP1193Provider {
|
|
16
|
+
request<T = unknown>(args: {
|
|
17
|
+
method: string;
|
|
18
|
+
params?: readonly unknown[] | Record<string, unknown>;
|
|
19
|
+
}): Promise<T>;
|
|
20
|
+
}
|
|
21
|
+
export interface EIP6963ProviderInfo {
|
|
22
|
+
readonly uuid: string;
|
|
23
|
+
readonly name: string;
|
|
24
|
+
readonly icon: string;
|
|
25
|
+
readonly rdns: string;
|
|
26
|
+
}
|
|
27
|
+
export interface EIP6963ProviderDetail {
|
|
28
|
+
readonly info: EIP6963ProviderInfo;
|
|
29
|
+
readonly provider: EIP1193Provider;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Default `rdns` for the Tenzro browser-extension provider.
|
|
33
|
+
*
|
|
34
|
+
* Pre-registration value — kept aligned with the extension's
|
|
35
|
+
* `installTenzroProvider({ rdns })` default. Will become a
|
|
36
|
+
* formally-registered RDNS once the CAIP-2 `tenzro:` namespace PR
|
|
37
|
+
* lands upstream.
|
|
38
|
+
*/
|
|
39
|
+
export declare const TENZRO_PROVIDER_RDNS = "network.tenzro.wallet";
|
|
40
|
+
/**
|
|
41
|
+
* Listen for EIP-6963 announcements and resolve when a provider
|
|
42
|
+
* matching `rdns` arrives. Defaults to the Tenzro extension's RDNS.
|
|
43
|
+
*
|
|
44
|
+
* Rejects with {@link TenzroNotInstalledError} if no matching
|
|
45
|
+
* provider announces within `timeoutMs` (default 3000ms).
|
|
46
|
+
*/
|
|
47
|
+
export declare function discoverEip6963Provider(options?: {
|
|
48
|
+
rdns?: string;
|
|
49
|
+
timeoutMs?: number;
|
|
50
|
+
}): Promise<EIP6963ProviderDetail>;
|
|
51
|
+
/**
|
|
52
|
+
* Thrown when a Tenzro provider is expected but not present in the page.
|
|
53
|
+
*
|
|
54
|
+
* Catch this in dApps to render an "Install Tenzro" CTA rather than
|
|
55
|
+
* a generic error. The `code` field is also set to the literal string
|
|
56
|
+
* `"TENZRO_NOT_INSTALLED"` for callers that prefer duck-typing over
|
|
57
|
+
* `instanceof`.
|
|
58
|
+
*/
|
|
59
|
+
export declare class TenzroNotInstalledError extends Error {
|
|
60
|
+
readonly code: "TENZRO_NOT_INSTALLED";
|
|
61
|
+
constructor(message: string);
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=eip6963.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eip6963.d.ts","sourceRoot":"","sources":["../src/eip6963.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE;QACzB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACvD,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;CACpC;AAMD;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,0BAA0B,CAAC;AAE5D;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAwCjC;AAED;;;;;;;GAOG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,IAAI,EAAG,sBAAsB,CAAU;gBAEpC,OAAO,EAAE,MAAM;CAI5B"}
|
package/dist/eip6963.js
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TenzroNotInstalledError = exports.TENZRO_PROVIDER_RDNS = void 0;
|
|
4
|
+
exports.discoverEip6963Provider = discoverEip6963Provider;
|
|
5
|
+
/**
|
|
6
|
+
* Default `rdns` for the Tenzro browser-extension provider.
|
|
7
|
+
*
|
|
8
|
+
* Pre-registration value — kept aligned with the extension's
|
|
9
|
+
* `installTenzroProvider({ rdns })` default. Will become a
|
|
10
|
+
* formally-registered RDNS once the CAIP-2 `tenzro:` namespace PR
|
|
11
|
+
* lands upstream.
|
|
12
|
+
*/
|
|
13
|
+
exports.TENZRO_PROVIDER_RDNS = "network.tenzro.wallet";
|
|
14
|
+
/**
|
|
15
|
+
* Listen for EIP-6963 announcements and resolve when a provider
|
|
16
|
+
* matching `rdns` arrives. Defaults to the Tenzro extension's RDNS.
|
|
17
|
+
*
|
|
18
|
+
* Rejects with {@link TenzroNotInstalledError} if no matching
|
|
19
|
+
* provider announces within `timeoutMs` (default 3000ms).
|
|
20
|
+
*/
|
|
21
|
+
function discoverEip6963Provider(options) {
|
|
22
|
+
const wantRdns = options?.rdns ?? exports.TENZRO_PROVIDER_RDNS;
|
|
23
|
+
const timeoutMs = options?.timeoutMs ?? 3000;
|
|
24
|
+
if (typeof window === "undefined") {
|
|
25
|
+
return Promise.reject(new TenzroNotInstalledError("not running in a browser context"));
|
|
26
|
+
}
|
|
27
|
+
return new Promise((resolve, reject) => {
|
|
28
|
+
let settled = false;
|
|
29
|
+
const onAnnounce = (rawEvent) => {
|
|
30
|
+
const event = rawEvent;
|
|
31
|
+
if (event.detail?.info?.rdns === wantRdns && !settled) {
|
|
32
|
+
settled = true;
|
|
33
|
+
window.removeEventListener("eip6963:announceProvider", onAnnounce);
|
|
34
|
+
window.clearTimeout(timer);
|
|
35
|
+
resolve(event.detail);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
window.addEventListener("eip6963:announceProvider", onAnnounce);
|
|
39
|
+
// Per EIP-6963 §Specification, dApps signal readiness with this
|
|
40
|
+
// event; already-installed wallets re-announce in response.
|
|
41
|
+
window.dispatchEvent(new Event("eip6963:requestProvider"));
|
|
42
|
+
const timer = window.setTimeout(() => {
|
|
43
|
+
if (settled)
|
|
44
|
+
return;
|
|
45
|
+
settled = true;
|
|
46
|
+
window.removeEventListener("eip6963:announceProvider", onAnnounce);
|
|
47
|
+
reject(new TenzroNotInstalledError(`no EIP-6963 provider with rdns="${wantRdns}" announced within ${timeoutMs}ms`));
|
|
48
|
+
}, timeoutMs);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Thrown when a Tenzro provider is expected but not present in the page.
|
|
53
|
+
*
|
|
54
|
+
* Catch this in dApps to render an "Install Tenzro" CTA rather than
|
|
55
|
+
* a generic error. The `code` field is also set to the literal string
|
|
56
|
+
* `"TENZRO_NOT_INSTALLED"` for callers that prefer duck-typing over
|
|
57
|
+
* `instanceof`.
|
|
58
|
+
*/
|
|
59
|
+
class TenzroNotInstalledError extends Error {
|
|
60
|
+
code = "TENZRO_NOT_INSTALLED";
|
|
61
|
+
constructor(message) {
|
|
62
|
+
super(message);
|
|
63
|
+
this.name = "TenzroNotInstalledError";
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.TenzroNotInstalledError = TenzroNotInstalledError;
|
|
67
|
+
//# sourceMappingURL=eip6963.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eip6963.js","sourceRoot":"","sources":["../src/eip6963.ts"],"names":[],"mappings":";;;AAsDA,0DA2CC;AA5DD;;;;;;;GAOG;AACU,QAAA,oBAAoB,GAAG,uBAAuB,CAAC;AAE5D;;;;;;GAMG;AACH,SAAgB,uBAAuB,CAAC,OAGvC;IACC,MAAM,QAAQ,GAAG,OAAO,EAAE,IAAI,IAAI,4BAAoB,CAAC;IACvD,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC;IAE7C,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,uBAAuB,CAAC,kCAAkC,CAAC,CAChE,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,MAAM,UAAU,GAAG,CAAC,QAAe,EAAE,EAAE;YACrC,MAAM,KAAK,GAAG,QAAwC,CAAC;YACvD,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;gBACtD,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM,CAAC,mBAAmB,CAAC,0BAA0B,EAAE,UAAU,CAAC,CAAC;gBACnE,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC3B,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACxB,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,CAAC,gBAAgB,CAAC,0BAA0B,EAAE,UAAU,CAAC,CAAC;QAEhE,gEAAgE;QAChE,4DAA4D;QAC5D,MAAM,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAE3D,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YACnC,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,MAAM,CAAC,mBAAmB,CAAC,0BAA0B,EAAE,UAAU,CAAC,CAAC;YACnE,MAAM,CACJ,IAAI,uBAAuB,CACzB,mCAAmC,QAAQ,sBAAsB,SAAS,IAAI,CAC/E,CACF,CAAC;QACJ,CAAC,EAAE,SAAS,CAAC,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,MAAa,uBAAwB,SAAQ,KAAK;IACvC,IAAI,GAAG,sBAA+B,CAAC;IAEhD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAPD,0DAOC"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import type { RpcClient } from './rpc';
|
|
2
|
+
/** Result of `tenzro_eip7702SigningHash`. */
|
|
3
|
+
export interface Eip7702SigningHash {
|
|
4
|
+
/**
|
|
5
|
+
* 32-byte keccak-256 signing hash, 0x-prefixed hex. Sign with the
|
|
6
|
+
* EOA's secp256k1 private key.
|
|
7
|
+
*/
|
|
8
|
+
signing_hash: string;
|
|
9
|
+
/**
|
|
10
|
+
* The full signing preimage
|
|
11
|
+
* (`MAGIC(0x05) || rlp([chain_id, delegate_address, nonce])`),
|
|
12
|
+
* 0x-prefixed hex. Provided for auditing / debugging.
|
|
13
|
+
*/
|
|
14
|
+
signing_data: string;
|
|
15
|
+
/** Always `"0x05"` — the EIP-7702 magic byte. */
|
|
16
|
+
magic_byte: string;
|
|
17
|
+
}
|
|
18
|
+
/** Result of `tenzro_eip7702BuildDesignator`. */
|
|
19
|
+
export interface Eip7702Designator {
|
|
20
|
+
/** 23-byte designator, 0x-prefixed hex. */
|
|
21
|
+
designator: string;
|
|
22
|
+
/** Always 23. */
|
|
23
|
+
length: number;
|
|
24
|
+
/** Always `"0xef0100"`. */
|
|
25
|
+
prefix: string;
|
|
26
|
+
/** The delegate address echoed back. */
|
|
27
|
+
delegate_address: string;
|
|
28
|
+
}
|
|
29
|
+
/** Result of `tenzro_eip7702ParseDesignator`. */
|
|
30
|
+
export interface Eip7702ParsedDesignator {
|
|
31
|
+
/** `true` if `code` is a valid 23-byte 7702 designator. */
|
|
32
|
+
is_designator: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* The delegate address (0x-prefixed hex) if `is_designator=true`,
|
|
35
|
+
* otherwise `null`.
|
|
36
|
+
*/
|
|
37
|
+
delegate_address: string | null;
|
|
38
|
+
}
|
|
39
|
+
/** Result of `tenzro_eip7702ProtocolInfo`. */
|
|
40
|
+
export interface Eip7702ProtocolInfo {
|
|
41
|
+
/** EIP-7702 transaction type (`0x04` per the EIP). */
|
|
42
|
+
tx_type: number;
|
|
43
|
+
/** Authorization preimage magic byte (`"0x05"`). */
|
|
44
|
+
magic_byte: string;
|
|
45
|
+
/** Designator prefix (`"0xef0100"`). */
|
|
46
|
+
designator_prefix: string;
|
|
47
|
+
/** Designator length in bytes (always 23). */
|
|
48
|
+
designator_length: number;
|
|
49
|
+
/** Signing scheme used for the authorization (`"secp256k1"`). */
|
|
50
|
+
signing_scheme: string;
|
|
51
|
+
/** Wire format of the secp256k1 signature. */
|
|
52
|
+
signature_format: string;
|
|
53
|
+
/** Description of the signing preimage shape. */
|
|
54
|
+
preimage: string;
|
|
55
|
+
/**
|
|
56
|
+
* Operator note describing the current state of transaction-side
|
|
57
|
+
* support (`eth_sendRawTransaction` integration is a follow-up).
|
|
58
|
+
*/
|
|
59
|
+
note: string;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* EIP-7702 (Set EOA Account Code) helper client.
|
|
63
|
+
*
|
|
64
|
+
* EIP-7702 lets an externally-owned account temporarily delegate its
|
|
65
|
+
* code to a smart-contract address. The delegation is encoded as a
|
|
66
|
+
* 23-byte designator (`0xef0100 || delegate_address`) written into the
|
|
67
|
+
* EOA's code slot, signed by the EOA's secp256k1 key over a domain-
|
|
68
|
+
* separated preimage.
|
|
69
|
+
*
|
|
70
|
+
* This client wraps the **stateless helper RPCs** the node exposes to
|
|
71
|
+
* support 7702 tooling end-to-end:
|
|
72
|
+
* - `tenzro_eip7702SigningHash` — compute the secp256k1 signing hash
|
|
73
|
+
* - `tenzro_eip7702BuildDesignator` — build the 23-byte designator
|
|
74
|
+
* - `tenzro_eip7702ParseDesignator` — decode an account's code
|
|
75
|
+
* - `tenzro_eip7702ProtocolInfo` — static protocol metadata
|
|
76
|
+
*
|
|
77
|
+
* Full EIP-7702 txtype `0x04` decoding inside `eth_sendRawTransaction`
|
|
78
|
+
* is a separate mainnet task. For now, produce the signing hash with
|
|
79
|
+
* `signingHash`, sign client-side, and use `buildDesignator` + a
|
|
80
|
+
* direct state write to install the delegation.
|
|
81
|
+
*/
|
|
82
|
+
export declare class Eip7702Client {
|
|
83
|
+
private readonly rpc;
|
|
84
|
+
constructor(rpc: RpcClient);
|
|
85
|
+
/**
|
|
86
|
+
* Compute the secp256k1 signing hash for an EIP-7702 authorization
|
|
87
|
+
* tuple `(chainId, delegateAddress, nonce)`. The returned
|
|
88
|
+
* `signing_hash` is what the EOA private key signs client-side.
|
|
89
|
+
*/
|
|
90
|
+
signingHash(chainId: number, delegateAddress: string, nonce: number): Promise<Eip7702SigningHash>;
|
|
91
|
+
/**
|
|
92
|
+
* Build the 23-byte EIP-7702 delegation designator
|
|
93
|
+
* (`0xef0100 || delegateAddress`) that gets written into the EOA's
|
|
94
|
+
* code slot once an authorization is accepted.
|
|
95
|
+
*/
|
|
96
|
+
buildDesignator(delegateAddress: string): Promise<Eip7702Designator>;
|
|
97
|
+
/**
|
|
98
|
+
* Decode an account's `code` (hex with or without `0x` prefix) and
|
|
99
|
+
* extract the delegate address if it is a valid EIP-7702 designator.
|
|
100
|
+
* Returns `{ is_designator: false, delegate_address: null }` for
|
|
101
|
+
* code that is not a 7702 designator.
|
|
102
|
+
*/
|
|
103
|
+
parseDesignator(code: string): Promise<Eip7702ParsedDesignator>;
|
|
104
|
+
/**
|
|
105
|
+
* Read static metadata about the EIP-7702 support surface (tx type,
|
|
106
|
+
* magic byte, designator layout, signing scheme).
|
|
107
|
+
*/
|
|
108
|
+
protocolInfo(): Promise<Eip7702ProtocolInfo>;
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=eip7702.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eip7702.d.ts","sourceRoot":"","sources":["../src/eip7702.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,6CAA6C;AAC7C,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,iDAAiD;AACjD,MAAM,WAAW,iBAAiB;IAChC,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,iDAAiD;AACjD,MAAM,WAAW,uBAAuB;IACtC,2DAA2D;IAC3D,aAAa,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,8CAA8C;AAC9C,MAAM,WAAW,mBAAmB;IAClC,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,8CAA8C;IAC9C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iEAAiE;IACjE,cAAc,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,gBAAgB,EAAE,MAAM,CAAC;IACzB,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAID;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,SAAS;IAE3C;;;;OAIG;IACG,WAAW,CACf,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,EACvB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,kBAAkB,CAAC;IAU9B;;;;OAIG;IACG,eAAe,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAM1E;;;;;OAKG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAOrE;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,mBAAmB,CAAC;CAMnD"}
|
package/dist/eip7702.js
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Eip7702Client = void 0;
|
|
4
|
+
// ── Client ──
|
|
5
|
+
/**
|
|
6
|
+
* EIP-7702 (Set EOA Account Code) helper client.
|
|
7
|
+
*
|
|
8
|
+
* EIP-7702 lets an externally-owned account temporarily delegate its
|
|
9
|
+
* code to a smart-contract address. The delegation is encoded as a
|
|
10
|
+
* 23-byte designator (`0xef0100 || delegate_address`) written into the
|
|
11
|
+
* EOA's code slot, signed by the EOA's secp256k1 key over a domain-
|
|
12
|
+
* separated preimage.
|
|
13
|
+
*
|
|
14
|
+
* This client wraps the **stateless helper RPCs** the node exposes to
|
|
15
|
+
* support 7702 tooling end-to-end:
|
|
16
|
+
* - `tenzro_eip7702SigningHash` — compute the secp256k1 signing hash
|
|
17
|
+
* - `tenzro_eip7702BuildDesignator` — build the 23-byte designator
|
|
18
|
+
* - `tenzro_eip7702ParseDesignator` — decode an account's code
|
|
19
|
+
* - `tenzro_eip7702ProtocolInfo` — static protocol metadata
|
|
20
|
+
*
|
|
21
|
+
* Full EIP-7702 txtype `0x04` decoding inside `eth_sendRawTransaction`
|
|
22
|
+
* is a separate mainnet task. For now, produce the signing hash with
|
|
23
|
+
* `signingHash`, sign client-side, and use `buildDesignator` + a
|
|
24
|
+
* direct state write to install the delegation.
|
|
25
|
+
*/
|
|
26
|
+
class Eip7702Client {
|
|
27
|
+
rpc;
|
|
28
|
+
constructor(rpc) {
|
|
29
|
+
this.rpc = rpc;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Compute the secp256k1 signing hash for an EIP-7702 authorization
|
|
33
|
+
* tuple `(chainId, delegateAddress, nonce)`. The returned
|
|
34
|
+
* `signing_hash` is what the EOA private key signs client-side.
|
|
35
|
+
*/
|
|
36
|
+
async signingHash(chainId, delegateAddress, nonce) {
|
|
37
|
+
return this.rpc.call('tenzro_eip7702SigningHash', [
|
|
38
|
+
{
|
|
39
|
+
chain_id: chainId,
|
|
40
|
+
delegate_address: delegateAddress,
|
|
41
|
+
nonce,
|
|
42
|
+
},
|
|
43
|
+
]);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Build the 23-byte EIP-7702 delegation designator
|
|
47
|
+
* (`0xef0100 || delegateAddress`) that gets written into the EOA's
|
|
48
|
+
* code slot once an authorization is accepted.
|
|
49
|
+
*/
|
|
50
|
+
async buildDesignator(delegateAddress) {
|
|
51
|
+
return this.rpc.call('tenzro_eip7702BuildDesignator', [
|
|
52
|
+
{ delegate_address: delegateAddress },
|
|
53
|
+
]);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Decode an account's `code` (hex with or without `0x` prefix) and
|
|
57
|
+
* extract the delegate address if it is a valid EIP-7702 designator.
|
|
58
|
+
* Returns `{ is_designator: false, delegate_address: null }` for
|
|
59
|
+
* code that is not a 7702 designator.
|
|
60
|
+
*/
|
|
61
|
+
async parseDesignator(code) {
|
|
62
|
+
return this.rpc.call('tenzro_eip7702ParseDesignator', [{ code }]);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Read static metadata about the EIP-7702 support surface (tx type,
|
|
66
|
+
* magic byte, designator layout, signing scheme).
|
|
67
|
+
*/
|
|
68
|
+
async protocolInfo() {
|
|
69
|
+
return this.rpc.call('tenzro_eip7702ProtocolInfo', []);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
exports.Eip7702Client = Eip7702Client;
|
|
73
|
+
//# sourceMappingURL=eip7702.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eip7702.js","sourceRoot":"","sources":["../src/eip7702.ts"],"names":[],"mappings":";;;AAmEA,eAAe;AAEf;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAa,aAAa;IACK;IAA7B,YAA6B,GAAc;QAAd,QAAG,GAAH,GAAG,CAAW;IAAG,CAAC;IAE/C;;;;OAIG;IACH,KAAK,CAAC,WAAW,CACf,OAAe,EACf,eAAuB,EACvB,KAAa;QAEb,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAqB,2BAA2B,EAAE;YACpE;gBACE,QAAQ,EAAE,OAAO;gBACjB,gBAAgB,EAAE,eAAe;gBACjC,KAAK;aACN;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe,CAAC,eAAuB;QAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAoB,+BAA+B,EAAE;YACvE,EAAE,gBAAgB,EAAE,eAAe,EAAE;SACtC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,eAAe,CAAC,IAAY;QAChC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAClB,+BAA+B,EAC/B,CAAC,EAAE,IAAI,EAAE,CAAC,CACX,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY;QAChB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAClB,4BAA4B,EAC5B,EAAE,CACH,CAAC;IACJ,CAAC;CACF;AAxDD,sCAwDC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { RpcClient } from "./rpc";
|
|
2
|
+
/**
|
|
3
|
+
* A single ERC-7683 `Output` — chain-discriminated 32-byte recipient +
|
|
4
|
+
* uint256 amount.
|
|
5
|
+
*/
|
|
6
|
+
export interface Erc7683Output {
|
|
7
|
+
/** Token address (hex, chain-native — 20-byte EVM left-padded to 32, or 32-byte SVM mint). */
|
|
8
|
+
token: string;
|
|
9
|
+
/** uint256 amount in token's smallest unit, as 32-byte big-endian hex. */
|
|
10
|
+
amount: string;
|
|
11
|
+
/** 32-byte recipient on the destination chain (hex). */
|
|
12
|
+
recipient: string;
|
|
13
|
+
/** CAIP-2 numeric chain id of the destination chain. */
|
|
14
|
+
chain_id: number;
|
|
15
|
+
}
|
|
16
|
+
/** Result of `tenzro_list7683Orders`. */
|
|
17
|
+
export interface Erc7683OrderList {
|
|
18
|
+
orders: unknown[];
|
|
19
|
+
count: number;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Client for ERC-7683 cross-chain intent settler (Spec 4).
|
|
23
|
+
*
|
|
24
|
+
* Wraps the `tenzro_get7683Order` / `tenzro_list7683Orders` read RPCs on the
|
|
25
|
+
* origin side and the `tenzro_recordFill7683` / `tenzro_getFill7683` /
|
|
26
|
+
* `tenzro_listFills7683` RPCs on the destination side. The Tenzro ERC-7683
|
|
27
|
+
* envelope is `Tenzro7683Order` persisted in `CF_SETTLEMENTS` under the
|
|
28
|
+
* `7683_origin:` keyspace; fill records live under `7683_dest:`.
|
|
29
|
+
*
|
|
30
|
+
* Order state machine: `Open → AwaitingProof → Settled / Refunded /
|
|
31
|
+
* ForceRefundEligible`.
|
|
32
|
+
*/
|
|
33
|
+
export declare class Erc7683Client {
|
|
34
|
+
private rpc;
|
|
35
|
+
constructor(rpc: RpcClient);
|
|
36
|
+
/**
|
|
37
|
+
* Fetch a single persisted `Tenzro7683Order` by 32-byte `order_id`
|
|
38
|
+
* (hex, with or without `0x` prefix).
|
|
39
|
+
* @param orderId - 32-byte order id (hex)
|
|
40
|
+
* @returns JSON envelope produced by the node's `tenzro_7683_order_to_json` projection
|
|
41
|
+
*/
|
|
42
|
+
getOrder(orderId: string): Promise<any>;
|
|
43
|
+
/**
|
|
44
|
+
* Paginated scan over the `7683_origin:` keyspace. All filters are
|
|
45
|
+
* optional; omit to skip a filter.
|
|
46
|
+
* @param opts.state - one of `open`, `awaiting_proof`, `settled`, `refunded`, `force_refund_eligible`
|
|
47
|
+
* @param opts.destChain - CAIP-2 numeric destination chain id
|
|
48
|
+
* @param opts.limit - cap on returned envelopes (default 50)
|
|
49
|
+
*/
|
|
50
|
+
listOrders(opts?: {
|
|
51
|
+
state?: string;
|
|
52
|
+
destChain?: number;
|
|
53
|
+
limit?: number;
|
|
54
|
+
}): Promise<Erc7683OrderList>;
|
|
55
|
+
/**
|
|
56
|
+
* Destination-side write: commit a `FillRecord` for an order that has
|
|
57
|
+
* been filled on the destination chain. Idempotency-guarded — the
|
|
58
|
+
* second call for the same `(order_id, origin_chain_id)` pair is
|
|
59
|
+
* rejected by the node.
|
|
60
|
+
*
|
|
61
|
+
* @param args.proofRoute - one of `layerzero`, `wormhole`, `debridge`, `hyperlane`
|
|
62
|
+
*/
|
|
63
|
+
recordFill(args: {
|
|
64
|
+
orderId: string;
|
|
65
|
+
originChainId: number;
|
|
66
|
+
originSettler: string;
|
|
67
|
+
filler: string;
|
|
68
|
+
recipient: string;
|
|
69
|
+
fillTxHash: string;
|
|
70
|
+
filledAtMs: number;
|
|
71
|
+
proofRoute: string;
|
|
72
|
+
outputs: Erc7683Output[];
|
|
73
|
+
}): Promise<any>;
|
|
74
|
+
/** Fetch a single persisted `FillRecord` by `(order_id, origin_chain_id)`. */
|
|
75
|
+
getFill(orderId: string, originChainId: number): Promise<any>;
|
|
76
|
+
/** List every persisted `FillRecord` in the `7683_dest:` keyspace. */
|
|
77
|
+
listFills(): Promise<any>;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=erc7683.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"erc7683.d.ts","sourceRoot":"","sources":["../src/erc7683.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,8FAA8F;IAC9F,KAAK,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,yCAAyC;AACzC,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,GAAG;gBAAH,GAAG,EAAE,SAAS;IAElC;;;;;OAKG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAI7C;;;;;;OAMG;IACG,UAAU,CAAC,IAAI,GAAE;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KACX,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAQlC;;;;;;;OAOG;IACG,UAAU,CAAC,IAAI,EAAE;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,aAAa,EAAE,CAAC;KAC1B,GAAG,OAAO,CAAC,GAAG,CAAC;IAgBhB,8EAA8E;IACxE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAMnE,sEAAsE;IAChE,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC;CAGhC"}
|
package/dist/erc7683.js
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Erc7683Client = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Client for ERC-7683 cross-chain intent settler (Spec 4).
|
|
6
|
+
*
|
|
7
|
+
* Wraps the `tenzro_get7683Order` / `tenzro_list7683Orders` read RPCs on the
|
|
8
|
+
* origin side and the `tenzro_recordFill7683` / `tenzro_getFill7683` /
|
|
9
|
+
* `tenzro_listFills7683` RPCs on the destination side. The Tenzro ERC-7683
|
|
10
|
+
* envelope is `Tenzro7683Order` persisted in `CF_SETTLEMENTS` under the
|
|
11
|
+
* `7683_origin:` keyspace; fill records live under `7683_dest:`.
|
|
12
|
+
*
|
|
13
|
+
* Order state machine: `Open → AwaitingProof → Settled / Refunded /
|
|
14
|
+
* ForceRefundEligible`.
|
|
15
|
+
*/
|
|
16
|
+
class Erc7683Client {
|
|
17
|
+
rpc;
|
|
18
|
+
constructor(rpc) {
|
|
19
|
+
this.rpc = rpc;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Fetch a single persisted `Tenzro7683Order` by 32-byte `order_id`
|
|
23
|
+
* (hex, with or without `0x` prefix).
|
|
24
|
+
* @param orderId - 32-byte order id (hex)
|
|
25
|
+
* @returns JSON envelope produced by the node's `tenzro_7683_order_to_json` projection
|
|
26
|
+
*/
|
|
27
|
+
async getOrder(orderId) {
|
|
28
|
+
return this.rpc.call("tenzro_get7683Order", [{ order_id: orderId }]);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Paginated scan over the `7683_origin:` keyspace. All filters are
|
|
32
|
+
* optional; omit to skip a filter.
|
|
33
|
+
* @param opts.state - one of `open`, `awaiting_proof`, `settled`, `refunded`, `force_refund_eligible`
|
|
34
|
+
* @param opts.destChain - CAIP-2 numeric destination chain id
|
|
35
|
+
* @param opts.limit - cap on returned envelopes (default 50)
|
|
36
|
+
*/
|
|
37
|
+
async listOrders(opts = {}) {
|
|
38
|
+
const params = {};
|
|
39
|
+
if (opts.state !== undefined)
|
|
40
|
+
params.state = opts.state;
|
|
41
|
+
if (opts.destChain !== undefined)
|
|
42
|
+
params.dest_chain = opts.destChain;
|
|
43
|
+
if (opts.limit !== undefined)
|
|
44
|
+
params.limit = opts.limit;
|
|
45
|
+
return this.rpc.call("tenzro_list7683Orders", [params]);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Destination-side write: commit a `FillRecord` for an order that has
|
|
49
|
+
* been filled on the destination chain. Idempotency-guarded — the
|
|
50
|
+
* second call for the same `(order_id, origin_chain_id)` pair is
|
|
51
|
+
* rejected by the node.
|
|
52
|
+
*
|
|
53
|
+
* @param args.proofRoute - one of `layerzero`, `wormhole`, `debridge`, `hyperlane`
|
|
54
|
+
*/
|
|
55
|
+
async recordFill(args) {
|
|
56
|
+
return this.rpc.call("tenzro_recordFill7683", [
|
|
57
|
+
{
|
|
58
|
+
order_id: args.orderId,
|
|
59
|
+
origin_chain_id: args.originChainId,
|
|
60
|
+
origin_settler: args.originSettler,
|
|
61
|
+
filler: args.filler,
|
|
62
|
+
recipient: args.recipient,
|
|
63
|
+
fill_tx_hash: args.fillTxHash,
|
|
64
|
+
filled_at_ms: args.filledAtMs,
|
|
65
|
+
proof_route: args.proofRoute,
|
|
66
|
+
outputs: args.outputs,
|
|
67
|
+
},
|
|
68
|
+
]);
|
|
69
|
+
}
|
|
70
|
+
/** Fetch a single persisted `FillRecord` by `(order_id, origin_chain_id)`. */
|
|
71
|
+
async getFill(orderId, originChainId) {
|
|
72
|
+
return this.rpc.call("tenzro_getFill7683", [
|
|
73
|
+
{ order_id: orderId, origin_chain_id: originChainId },
|
|
74
|
+
]);
|
|
75
|
+
}
|
|
76
|
+
/** List every persisted `FillRecord` in the `7683_dest:` keyspace. */
|
|
77
|
+
async listFills() {
|
|
78
|
+
return this.rpc.call("tenzro_listFills7683", [{}]);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
exports.Erc7683Client = Erc7683Client;
|
|
82
|
+
//# sourceMappingURL=erc7683.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"erc7683.js","sourceRoot":"","sources":["../src/erc7683.ts"],"names":[],"mappings":";;;AAuBA;;;;;;;;;;;GAWG;AACH,MAAa,aAAa;IACJ;IAApB,YAAoB,GAAc;QAAd,QAAG,GAAH,GAAG,CAAW;IAAG,CAAC;IAEtC;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAe;QAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IACvE,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,UAAU,CAAC,OAIb,EAAE;QACJ,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;YAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;YAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QACrE,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;YAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAmB,uBAAuB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,UAAU,CAAC,IAUhB;QACC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE;YAC5C;gBACE,QAAQ,EAAE,IAAI,CAAC,OAAO;gBACtB,eAAe,EAAE,IAAI,CAAC,aAAa;gBACnC,cAAc,EAAE,IAAI,CAAC,aAAa;gBAClC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,YAAY,EAAE,IAAI,CAAC,UAAU;gBAC7B,YAAY,EAAE,IAAI,CAAC,UAAU;gBAC7B,WAAW,EAAE,IAAI,CAAC,UAAU;gBAC5B,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB;SACF,CAAC,CAAC;IACL,CAAC;IAED,8EAA8E;IAC9E,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,aAAqB;QAClD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE;YACzC,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE;SACtD,CAAC,CAAC;IACL,CAAC;IAED,sEAAsE;IACtE,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACrD,CAAC;CACF;AA7ED,sCA6EC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import type { RpcClient } from './rpc';
|
|
2
|
+
/**
|
|
3
|
+
* Deterministic agent id derived from a Tenzro DID via
|
|
4
|
+
* `keccak256(utf8(did))`.
|
|
5
|
+
*/
|
|
6
|
+
export interface Erc8004AgentId {
|
|
7
|
+
/** DID echoed back. */
|
|
8
|
+
did: string;
|
|
9
|
+
/** 32-byte agent id as 0x-prefixed hex. */
|
|
10
|
+
agent_id: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Hex-encoded ABI calldata ready for `eth_sendRawTransaction` / `eth_call`.
|
|
14
|
+
*/
|
|
15
|
+
export interface Erc8004Calldata {
|
|
16
|
+
/** Full hex-encoded calldata (selector + abi-encoded args). */
|
|
17
|
+
calldata: string;
|
|
18
|
+
/** Echoed agent id from `encodeRegister`; empty for other encoders. */
|
|
19
|
+
agent_id?: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Decoded agent record returned by `IdentityRegistry.getAgent()`.
|
|
23
|
+
*/
|
|
24
|
+
export interface Erc8004Agent {
|
|
25
|
+
/** Agent owner / controller address. */
|
|
26
|
+
agent_address: string;
|
|
27
|
+
/** Off-chain metadata URI (e.g. IPFS, HTTPS). */
|
|
28
|
+
metadata_uri: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Decoded `bytes` value returned by `IdentityRegistry.getMetadata()`.
|
|
32
|
+
*/
|
|
33
|
+
export interface Erc8004Metadata {
|
|
34
|
+
/** Hex-encoded value (`0x` prefix), or empty hex when unset. */
|
|
35
|
+
metadata_value: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Client for the ERC-8004 Trustless Agents Registry family
|
|
39
|
+
* (IdentityRegistry, ReputationRegistry, ValidationRegistry).
|
|
40
|
+
*
|
|
41
|
+
* Covers the canonical v0.6+ surface — base register/feedback/validation
|
|
42
|
+
* plus `setAgentURI` / `setAgentWallet` / `setMetadata` / `getMetadata`
|
|
43
|
+
* / `getAgentURI` / `getAgentWallet` / `revokeFeedback` /
|
|
44
|
+
* `appendResponse` / `isFeedbackRevoked` / `getFeedbackResponses` /
|
|
45
|
+
* `getFeedback` / `getFeedbackCount` / `getValidation`.
|
|
46
|
+
*
|
|
47
|
+
* All `encode*` methods return hex calldata that callers can sign and
|
|
48
|
+
* broadcast through any EVM wallet. `decode*` helpers round-trip
|
|
49
|
+
* return data from `eth_call` into typed structs.
|
|
50
|
+
*/
|
|
51
|
+
export declare class Erc8004Client {
|
|
52
|
+
private readonly rpc;
|
|
53
|
+
constructor(rpc: RpcClient);
|
|
54
|
+
/** Derive a canonical ERC-8004 `agentId = keccak256(utf8(did))`. */
|
|
55
|
+
deriveAgentId(did: string): Promise<Erc8004AgentId>;
|
|
56
|
+
/** ABI-encode `IdentityRegistry.registerAgent(bytes32 agentId, address agentAddress, string metadataURI)`. */
|
|
57
|
+
encodeRegister(did: string, agentAddress: string, metadataUri: string): Promise<Erc8004Calldata>;
|
|
58
|
+
/** ABI-encode `IdentityRegistry.getAgent(bytes32 agentId)`. */
|
|
59
|
+
encodeGetAgent(agentId: string): Promise<Erc8004Calldata>;
|
|
60
|
+
/** Decode `(address, string)` returndata from `getAgent()`. */
|
|
61
|
+
decodeGetAgent(returnData: string): Promise<Erc8004Agent>;
|
|
62
|
+
/** ABI-encode `IdentityRegistry.setAgentURI(uint256 agentId, string metadataURI)`. */
|
|
63
|
+
encodeSetAgentURI(agentId: string, metadataUri: string): Promise<Erc8004Calldata>;
|
|
64
|
+
/** ABI-encode `IdentityRegistry.setAgentWallet(uint256 agentId, address newWallet, uint256 deadline, bytes signature)`. */
|
|
65
|
+
encodeSetAgentWallet(agentId: string, newWallet: string, deadline: number, signature: string): Promise<Erc8004Calldata>;
|
|
66
|
+
/** ABI-encode `IdentityRegistry.setMetadata(uint256 agentId, string metadataKey, bytes metadataValue)`. */
|
|
67
|
+
encodeSetMetadata(agentId: string, metadataKey: string, metadataValue: string): Promise<Erc8004Calldata>;
|
|
68
|
+
/** ABI-encode `IdentityRegistry.getMetadata(uint256 agentId, string metadataKey)`. */
|
|
69
|
+
encodeGetMetadata(agentId: string, metadataKey: string): Promise<Erc8004Calldata>;
|
|
70
|
+
/** Decode `bytes` returndata from `getMetadata()`. */
|
|
71
|
+
decodeGetMetadata(returnData: string): Promise<Erc8004Metadata>;
|
|
72
|
+
/** ABI-encode `IdentityRegistry.getAgentURI(uint256 agentId)`. */
|
|
73
|
+
encodeGetAgentURI(agentId: string): Promise<Erc8004Calldata>;
|
|
74
|
+
/** ABI-encode `IdentityRegistry.getAgentWallet(uint256 agentId)`. */
|
|
75
|
+
encodeGetAgentWallet(agentId: string): Promise<Erc8004Calldata>;
|
|
76
|
+
/** ABI-encode `ReputationRegistry.submitFeedback(bytes32 subjectAgentId, int8 rating, string contextURI)`. */
|
|
77
|
+
encodeFeedback(subjectAgentId: string, rating: number, contextUri: string): Promise<Erc8004Calldata>;
|
|
78
|
+
/** ABI-encode `ReputationRegistry.getFeedback(bytes32 subject, uint256 index)`. */
|
|
79
|
+
encodeGetFeedback(subjectAgentId: string, index: number): Promise<Erc8004Calldata>;
|
|
80
|
+
/** ABI-encode `ReputationRegistry.getFeedbackCount(bytes32 subject)`. */
|
|
81
|
+
encodeGetFeedbackCount(subjectAgentId: string): Promise<Erc8004Calldata>;
|
|
82
|
+
/** ABI-encode `ReputationRegistry.revokeFeedback(uint256 agentId, bytes32 feedbackId)` (v0.6+). */
|
|
83
|
+
encodeRevokeFeedback(agentId: string, feedbackId: string): Promise<Erc8004Calldata>;
|
|
84
|
+
/** ABI-encode `ReputationRegistry.appendResponse(uint256 agentId, bytes32 feedbackId, string responseURI)` (v0.6+). */
|
|
85
|
+
encodeAppendResponse(agentId: string, feedbackId: string, responseUri: string): Promise<Erc8004Calldata>;
|
|
86
|
+
/** ABI-encode `ReputationRegistry.isFeedbackRevoked(uint256 agentId, bytes32 feedbackId)` (v0.6+). */
|
|
87
|
+
encodeIsFeedbackRevoked(agentId: string, feedbackId: string): Promise<Erc8004Calldata>;
|
|
88
|
+
/** ABI-encode `ReputationRegistry.getFeedbackResponses(uint256 agentId, bytes32 feedbackId)` (v0.6+). */
|
|
89
|
+
encodeGetFeedbackResponses(agentId: string, feedbackId: string): Promise<Erc8004Calldata>;
|
|
90
|
+
/** ABI-encode `ValidationRegistry.validationRequest(address validatorAddress, uint256 agentId, string requestURI, bytes32 requestHash)`. */
|
|
91
|
+
encodeValidationRequest(validatorAddress: string, agentId: string, requestUri: string, requestHash: string): Promise<Erc8004Calldata>;
|
|
92
|
+
/** ABI-encode `ValidationRegistry.validationResponse(bytes32 requestHash, uint8 response, string responseURI, bytes32 responseHash, string tag)`. `response` is a 0-100 quality score. */
|
|
93
|
+
encodeValidationResponse(requestHash: string, response: number, responseUri: string, responseHash: string, tag: string): Promise<Erc8004Calldata>;
|
|
94
|
+
/** ABI-encode `ValidationRegistry.getValidation(bytes32 requestHash)`. */
|
|
95
|
+
encodeGetValidation(requestHash: string): Promise<Erc8004Calldata>;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=erc8004.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"erc8004.d.ts","sourceRoot":"","sources":["../src/erc8004.ts"],"names":[],"mappings":"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"}
|