@chipi-stack/core 0.3.1 → 0.4.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/NOTICE-starknet-sdk.md +13 -0
- package/README.md +62 -0
- package/dist/index.d.ts +1534 -16
- package/dist/index.js +10998 -16
- package/dist/index.js.map +1 -1
- package/package.json +8 -5
- package/dist/estimation/estimate-fee.d.ts +0 -21
- package/dist/estimation/estimate-fee.d.ts.map +0 -1
- package/dist/estimation/estimate-fee.js +0 -34
- package/dist/estimation/estimate-fee.js.map +0 -1
- package/dist/estimation/types.d.ts +0 -14
- package/dist/estimation/types.d.ts.map +0 -1
- package/dist/estimation/types.js +0 -2
- package/dist/estimation/types.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/signers/create-account.d.ts +0 -21
- package/dist/signers/create-account.d.ts.map +0 -1
- package/dist/signers/create-account.js +0 -19
- package/dist/signers/create-account.js.map +0 -1
- package/dist/signers/direct-signer.d.ts +0 -18
- package/dist/signers/direct-signer.d.ts.map +0 -1
- package/dist/signers/direct-signer.js +0 -32
- package/dist/signers/direct-signer.js.map +0 -1
- package/dist/signers/external-signer.d.ts +0 -17
- package/dist/signers/external-signer.d.ts.map +0 -1
- package/dist/signers/external-signer.js +0 -19
- package/dist/signers/external-signer.js.map +0 -1
- package/dist/signers/passkey-signer.d.ts +0 -25
- package/dist/signers/passkey-signer.d.ts.map +0 -1
- package/dist/signers/passkey-signer.js +0 -24
- package/dist/signers/passkey-signer.js.map +0 -1
- package/dist/signers/starknet-signer-adapter.d.ts +0 -18
- package/dist/signers/starknet-signer-adapter.d.ts.map +0 -1
- package/dist/signers/starknet-signer-adapter.js +0 -26
- package/dist/signers/starknet-signer-adapter.js.map +0 -1
- package/dist/signers/types.d.ts +0 -19
- package/dist/signers/types.d.ts.map +0 -1
- package/dist/signers/types.js +0 -2
- package/dist/signers/types.js.map +0 -1
- package/dist/tokens/amount.d.ts +0 -72
- package/dist/tokens/amount.d.ts.map +0 -1
- package/dist/tokens/amount.js +0 -166
- package/dist/tokens/amount.js.map +0 -1
- package/dist/tokens/erc20.d.ts +0 -38
- package/dist/tokens/erc20.d.ts.map +0 -1
- package/dist/tokens/erc20.js +0 -79
- package/dist/tokens/erc20.js.map +0 -1
- package/dist/tokens/presets/mainnet.json +0 -38
- package/dist/tokens/presets/sepolia.json +0 -20
- package/dist/tokens/registry.d.ts +0 -27
- package/dist/tokens/registry.d.ts.map +0 -1
- package/dist/tokens/registry.js +0 -38
- package/dist/tokens/registry.js.map +0 -1
- package/dist/transactions/tx-builder.d.ts +0 -74
- package/dist/transactions/tx-builder.d.ts.map +0 -1
- package/dist/transactions/tx-builder.js +0 -117
- package/dist/transactions/tx-builder.js.map +0 -1
- package/dist/transactions/types.d.ts +0 -11
- package/dist/transactions/types.d.ts.map +0 -1
- package/dist/transactions/types.js +0 -2
- package/dist/transactions/types.js.map +0 -1
- package/dist/x402/client.d.ts +0 -112
- package/dist/x402/client.d.ts.map +0 -1
- package/dist/x402/client.js +0 -270
- package/dist/x402/client.js.map +0 -1
- package/dist/x402/index.d.ts +0 -2
- package/dist/x402/index.d.ts.map +0 -1
- package/dist/x402/index.js +0 -2
- package/dist/x402/index.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chipi-stack/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Gasless wallet primitives for Starknet — TxBuilder, SignerAdapter, TokenRegistry, and account abstraction core",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
14
|
"files": [
|
|
15
|
-
"dist"
|
|
15
|
+
"dist",
|
|
16
|
+
"NOTICE-starknet-sdk.md"
|
|
16
17
|
],
|
|
17
18
|
"keywords": [
|
|
18
19
|
"chipi",
|
|
@@ -53,12 +54,14 @@
|
|
|
53
54
|
},
|
|
54
55
|
"license": "MIT",
|
|
55
56
|
"dependencies": {
|
|
56
|
-
"@chipi-stack/types": "^14.
|
|
57
|
+
"@chipi-stack/types": "^14.10.0"
|
|
57
58
|
},
|
|
58
59
|
"devDependencies": {
|
|
60
|
+
"starknet": ">=9.2.1",
|
|
59
61
|
"typescript": "^5.7.3",
|
|
60
62
|
"vitest": "^3.2.4",
|
|
61
|
-
"starknet": "
|
|
63
|
+
"starknet-sdk": "file:../vendor/starknet-sdk-0.1.0.tgz",
|
|
64
|
+
"tsup": "8.5.0"
|
|
62
65
|
},
|
|
63
66
|
"peerDependencies": {
|
|
64
67
|
"starknet": ">=9.2.1"
|
|
@@ -70,7 +73,7 @@
|
|
|
70
73
|
"access": "public"
|
|
71
74
|
},
|
|
72
75
|
"scripts": {
|
|
73
|
-
"build": "
|
|
76
|
+
"build": "tsup",
|
|
74
77
|
"test": "vitest run",
|
|
75
78
|
"test:watch": "vitest",
|
|
76
79
|
"typecheck": "tsc --noEmit"
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type { Account, Call } from "starknet";
|
|
2
|
-
import type { FeeEstimate, PreflightResult } from "./types.js";
|
|
3
|
-
/**
|
|
4
|
-
* Estimate invocation fees for a set of calls.
|
|
5
|
-
* Does NOT execute the transaction.
|
|
6
|
-
*
|
|
7
|
-
* @param calls - Array of Starknet calls to estimate
|
|
8
|
-
* @param account - Starknet Account instance
|
|
9
|
-
* @throws If calls array is empty
|
|
10
|
-
*/
|
|
11
|
-
export declare function estimateFee(calls: Call[], account: Account): Promise<FeeEstimate>;
|
|
12
|
-
/**
|
|
13
|
-
* Simulate a transaction without submitting it.
|
|
14
|
-
* Returns trace and fee estimation.
|
|
15
|
-
*
|
|
16
|
-
* @param calls - Array of Starknet calls to simulate
|
|
17
|
-
* @param account - Starknet Account instance
|
|
18
|
-
* @throws If calls array is empty
|
|
19
|
-
*/
|
|
20
|
-
export declare function preflight(calls: Call[], account: Account): Promise<PreflightResult>;
|
|
21
|
-
//# sourceMappingURL=estimate-fee.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"estimate-fee.d.ts","sourceRoot":"","sources":["../../src/estimation/estimate-fee.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE/D;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAIvF;AAED;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CASzF"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Estimate invocation fees for a set of calls.
|
|
3
|
-
* Does NOT execute the transaction.
|
|
4
|
-
*
|
|
5
|
-
* @param calls - Array of Starknet calls to estimate
|
|
6
|
-
* @param account - Starknet Account instance
|
|
7
|
-
* @throws If calls array is empty
|
|
8
|
-
*/
|
|
9
|
-
export async function estimateFee(calls, account) {
|
|
10
|
-
if (calls.length === 0)
|
|
11
|
-
throw new Error("No calls to estimate");
|
|
12
|
-
const result = await account.estimateInvokeFee(calls);
|
|
13
|
-
return result;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Simulate a transaction without submitting it.
|
|
17
|
-
* Returns trace and fee estimation.
|
|
18
|
-
*
|
|
19
|
-
* @param calls - Array of Starknet calls to simulate
|
|
20
|
-
* @param account - Starknet Account instance
|
|
21
|
-
* @throws If calls array is empty
|
|
22
|
-
*/
|
|
23
|
-
export async function preflight(calls, account) {
|
|
24
|
-
if (calls.length === 0)
|
|
25
|
-
throw new Error("No calls to preflight");
|
|
26
|
-
const result = await account.simulateTransaction([{ type: "INVOKE", payload: calls }], {
|
|
27
|
-
skipValidate: false,
|
|
28
|
-
});
|
|
29
|
-
if (!result || result.length === 0) {
|
|
30
|
-
throw new Error("Simulation returned no results");
|
|
31
|
-
}
|
|
32
|
-
return result[0];
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=estimate-fee.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"estimate-fee.js","sourceRoot":"","sources":["../../src/estimation/estimate-fee.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAa,EAAE,OAAgB;IAC/D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACtD,OAAO,MAAgC,CAAC;AAC1C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAa,EAAE,OAAgB;IAC7D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE;QAC9F,YAAY,EAAE,KAAK;KACpB,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,MAAM,CAAC,CAAC,CAA+B,CAAC;AACjD,CAAC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export interface FeeEstimate {
|
|
2
|
-
overall_fee: bigint;
|
|
3
|
-
gas_consumed: bigint;
|
|
4
|
-
gas_price: bigint;
|
|
5
|
-
data_gas_consumed?: bigint;
|
|
6
|
-
data_gas_price?: bigint;
|
|
7
|
-
}
|
|
8
|
-
export interface PreflightResult {
|
|
9
|
-
transaction_trace: unknown;
|
|
10
|
-
fee_estimation: {
|
|
11
|
-
overall_fee: bigint;
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/estimation/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CACzC"}
|
package/dist/estimation/types.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/estimation/types.ts"],"names":[],"mappings":""}
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAGnE,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChF,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/E,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,YAAY,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGpE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACtE,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,EACL,UAAU,EACV,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,KAAK,qBAAqB,GAC3B,MAAM,iBAAiB,CAAC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Account } from "starknet";
|
|
2
|
-
import type { ProviderInterface, ProviderOptions, CairoVersion } from "starknet";
|
|
3
|
-
import type { SignerAdapter } from "./types.js";
|
|
4
|
-
export interface CreateAccountOptions {
|
|
5
|
-
/** Any SignerAdapter implementation (DirectSigner, PasskeySigner, ExternalSigner). */
|
|
6
|
-
signer: SignerAdapter;
|
|
7
|
-
/** Starknet provider or provider options. */
|
|
8
|
-
provider: ProviderOptions | ProviderInterface;
|
|
9
|
-
/** Override the account address (defaults to signer.getAccountAddress()). */
|
|
10
|
-
address?: string;
|
|
11
|
-
/** Cairo version for the account contract. */
|
|
12
|
-
cairoVersion?: CairoVersion;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Create a starknet.js Account from any SignerAdapter.
|
|
16
|
-
*
|
|
17
|
-
* Bridges the gap between SignerAdapter and starknet.js Account,
|
|
18
|
-
* so you can use the Account with TxBuilder or any starknet.js API.
|
|
19
|
-
*/
|
|
20
|
-
export declare function createAccount(opts: CreateAccountOptions): Promise<Account>;
|
|
21
|
-
//# sourceMappingURL=create-account.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-account.d.ts","sourceRoot":"","sources":["../../src/signers/create-account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,MAAM,WAAW,oBAAoB;IACnC,sFAAsF;IACtF,MAAM,EAAE,aAAa,CAAC;IACtB,6CAA6C;IAC7C,QAAQ,EAAE,eAAe,GAAG,iBAAiB,CAAC;IAC9C,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CAShF"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { Account } from "starknet";
|
|
2
|
-
import { StarknetSignerAdapter } from "./starknet-signer-adapter.js";
|
|
3
|
-
/**
|
|
4
|
-
* Create a starknet.js Account from any SignerAdapter.
|
|
5
|
-
*
|
|
6
|
-
* Bridges the gap between SignerAdapter and starknet.js Account,
|
|
7
|
-
* so you can use the Account with TxBuilder or any starknet.js API.
|
|
8
|
-
*/
|
|
9
|
-
export async function createAccount(opts) {
|
|
10
|
-
const address = opts.address ?? await opts.signer.getAccountAddress();
|
|
11
|
-
const signer = new StarknetSignerAdapter(opts.signer);
|
|
12
|
-
return new Account({
|
|
13
|
-
provider: opts.provider,
|
|
14
|
-
address,
|
|
15
|
-
signer,
|
|
16
|
-
cairoVersion: opts.cairoVersion,
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=create-account.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-account.js","sourceRoot":"","sources":["../../src/signers/create-account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAarE;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAA0B;IAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;IACtE,MAAM,MAAM,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtD,OAAO,IAAI,OAAO,CAAC;QACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,OAAO;QACP,MAAM;QACN,YAAY,EAAE,IAAI,CAAC,YAAY;KAChC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { SignerAdapter, SignResult } from "./types.js";
|
|
2
|
-
/**
|
|
3
|
-
* Signer backed by a local private key.
|
|
4
|
-
* Equivalent to StarkZap's StarkSigner.
|
|
5
|
-
*
|
|
6
|
-
* WARNING: Only for development/testing.
|
|
7
|
-
* Never hardcode private keys in production.
|
|
8
|
-
*/
|
|
9
|
-
export declare class DirectSigner implements SignerAdapter {
|
|
10
|
-
private readonly privateKey;
|
|
11
|
-
private readonly publicKey;
|
|
12
|
-
private readonly accountAddress;
|
|
13
|
-
constructor(privateKey: string, accountAddress?: string);
|
|
14
|
-
getPublicKey(): Promise<string>;
|
|
15
|
-
sign(messageHash: string): Promise<SignResult>;
|
|
16
|
-
getAccountAddress(): Promise<string>;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=direct-signer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"direct-signer.d.ts","sourceRoot":"","sources":["../../src/signers/direct-signer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE5D;;;;;;GAMG;AACH,qBAAa,YAAa,YAAW,aAAa;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;gBAE5B,UAAU,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM;IAWjD,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAI/B,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAQ9C,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;CAG3C"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { ec, encode } from "starknet";
|
|
2
|
-
/**
|
|
3
|
-
* Signer backed by a local private key.
|
|
4
|
-
* Equivalent to StarkZap's StarkSigner.
|
|
5
|
-
*
|
|
6
|
-
* WARNING: Only for development/testing.
|
|
7
|
-
* Never hardcode private keys in production.
|
|
8
|
-
*/
|
|
9
|
-
export class DirectSigner {
|
|
10
|
-
constructor(privateKey, accountAddress) {
|
|
11
|
-
if (!privateKey || !/^0x[0-9a-fA-F]+$/.test(privateKey)) {
|
|
12
|
-
throw new Error("Invalid private key: must be a hex string starting with 0x");
|
|
13
|
-
}
|
|
14
|
-
this.privateKey = privateKey;
|
|
15
|
-
this.publicKey = encode.addHexPrefix(encode.buf2hex(ec.starkCurve.getPublicKey(privateKey, true)));
|
|
16
|
-
this.accountAddress = accountAddress ?? this.publicKey;
|
|
17
|
-
}
|
|
18
|
-
async getPublicKey() {
|
|
19
|
-
return this.publicKey;
|
|
20
|
-
}
|
|
21
|
-
async sign(messageHash) {
|
|
22
|
-
const signature = ec.starkCurve.sign(messageHash, this.privateKey);
|
|
23
|
-
return {
|
|
24
|
-
r: encode.addHexPrefix(signature.r.toString(16)),
|
|
25
|
-
s: encode.addHexPrefix(signature.s.toString(16)),
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
async getAccountAddress() {
|
|
29
|
-
return this.accountAddress;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=direct-signer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"direct-signer.js","sourceRoot":"","sources":["../../src/signers/direct-signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGtC;;;;;;GAMG;AACH,MAAM,OAAO,YAAY;IAKvB,YAAY,UAAkB,EAAE,cAAuB;QACrD,IAAI,CAAC,UAAU,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,YAAY,CAClC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAC7D,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,cAAc,IAAI,IAAI,CAAC,SAAS,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,WAAmB;QAC5B,MAAM,SAAS,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACnE,OAAO;YACL,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAChD,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SACjD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;CACF"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { SignerAdapter, SignResult } from "./types.js";
|
|
2
|
-
/**
|
|
3
|
-
* Adapter for external signer providers (Privy, Cartridge, etc.).
|
|
4
|
-
* Consumers provide the signing function — ExternalSigner just wraps the interface.
|
|
5
|
-
*/
|
|
6
|
-
export declare class ExternalSigner implements SignerAdapter {
|
|
7
|
-
private readonly opts;
|
|
8
|
-
constructor(opts: {
|
|
9
|
-
getPublicKey: () => Promise<string>;
|
|
10
|
-
sign: (messageHash: string) => Promise<SignResult>;
|
|
11
|
-
getAccountAddress: () => Promise<string>;
|
|
12
|
-
});
|
|
13
|
-
getPublicKey(): Promise<string>;
|
|
14
|
-
sign(messageHash: string): Promise<SignResult>;
|
|
15
|
-
getAccountAddress(): Promise<string>;
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=external-signer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"external-signer.d.ts","sourceRoot":"","sources":["../../src/signers/external-signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE5D;;;GAGG;AACH,qBAAa,cAAe,YAAW,aAAa;IAClD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAInB;gBAEU,IAAI,EAAE;QAChB,YAAY,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;QACnD,iBAAiB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;KAC1C;IAID,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAG/B,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAG9C,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;CAGrC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Adapter for external signer providers (Privy, Cartridge, etc.).
|
|
3
|
-
* Consumers provide the signing function — ExternalSigner just wraps the interface.
|
|
4
|
-
*/
|
|
5
|
-
export class ExternalSigner {
|
|
6
|
-
constructor(opts) {
|
|
7
|
-
this.opts = opts;
|
|
8
|
-
}
|
|
9
|
-
getPublicKey() {
|
|
10
|
-
return this.opts.getPublicKey();
|
|
11
|
-
}
|
|
12
|
-
sign(messageHash) {
|
|
13
|
-
return this.opts.sign(messageHash);
|
|
14
|
-
}
|
|
15
|
-
getAccountAddress() {
|
|
16
|
-
return this.opts.getAccountAddress();
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=external-signer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"external-signer.js","sourceRoot":"","sources":["../../src/signers/external-signer.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,OAAO,cAAc;IAOzB,YAAY,IAIX;QACC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;IAClC,CAAC;IACD,IAAI,CAAC,WAAmB;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IACD,iBAAiB;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACvC,CAAC;CACF"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import type { SignerAdapter, SignResult } from "./types.js";
|
|
2
|
-
/**
|
|
3
|
-
* Signer that wraps @chipi-stack/passkey functions.
|
|
4
|
-
* Does NOT modify @chipi-stack/passkey — only wraps it.
|
|
5
|
-
*
|
|
6
|
-
* @param authenticateFn - The authenticatePasskey function from @chipi-stack/passkey
|
|
7
|
-
* @param publicKey - The passkey public key (obtained during registration)
|
|
8
|
-
*/
|
|
9
|
-
export declare class PasskeySigner implements SignerAdapter {
|
|
10
|
-
private readonly authenticateFn;
|
|
11
|
-
private readonly pubKey;
|
|
12
|
-
private readonly accountAddress;
|
|
13
|
-
constructor(opts: {
|
|
14
|
-
authenticateFn: (challenge: string) => Promise<{
|
|
15
|
-
r: string;
|
|
16
|
-
s: string;
|
|
17
|
-
}>;
|
|
18
|
-
publicKey: string;
|
|
19
|
-
accountAddress: string;
|
|
20
|
-
});
|
|
21
|
-
getPublicKey(): Promise<string>;
|
|
22
|
-
sign(messageHash: string): Promise<SignResult>;
|
|
23
|
-
getAccountAddress(): Promise<string>;
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=passkey-signer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"passkey-signer.d.ts","sourceRoot":"","sources":["../../src/signers/passkey-signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE5D;;;;;;GAMG;AACH,qBAAa,aAAc,YAAW,aAAa;IACjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA2D;IAC1F,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;gBAE5B,IAAI,EAAE;QAChB,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACzE,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;KACxB;IAMK,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAI/B,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAI9C,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;CAG3C"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Signer that wraps @chipi-stack/passkey functions.
|
|
3
|
-
* Does NOT modify @chipi-stack/passkey — only wraps it.
|
|
4
|
-
*
|
|
5
|
-
* @param authenticateFn - The authenticatePasskey function from @chipi-stack/passkey
|
|
6
|
-
* @param publicKey - The passkey public key (obtained during registration)
|
|
7
|
-
*/
|
|
8
|
-
export class PasskeySigner {
|
|
9
|
-
constructor(opts) {
|
|
10
|
-
this.authenticateFn = opts.authenticateFn;
|
|
11
|
-
this.pubKey = opts.publicKey;
|
|
12
|
-
this.accountAddress = opts.accountAddress;
|
|
13
|
-
}
|
|
14
|
-
async getPublicKey() {
|
|
15
|
-
return this.pubKey;
|
|
16
|
-
}
|
|
17
|
-
async sign(messageHash) {
|
|
18
|
-
return this.authenticateFn(messageHash);
|
|
19
|
-
}
|
|
20
|
-
async getAccountAddress() {
|
|
21
|
-
return this.accountAddress;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=passkey-signer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"passkey-signer.js","sourceRoot":"","sources":["../../src/signers/passkey-signer.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,OAAO,aAAa;IAKxB,YAAY,IAIX;QACC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,WAAmB;QAC5B,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;CACF"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Signer, type Signature } from "starknet";
|
|
2
|
-
import type { SignerAdapter } from "./types.js";
|
|
3
|
-
/**
|
|
4
|
-
* Bridge between SignerAdapter and starknet.js Signer.
|
|
5
|
-
*
|
|
6
|
-
* Extends starknet.js `Signer`, overriding `signRaw()` to delegate to
|
|
7
|
-
* `SignerAdapter.sign()`. All hash computation is handled by starknet.js.
|
|
8
|
-
*
|
|
9
|
-
* This allows any SignerAdapter (DirectSigner, PasskeySigner, ExternalSigner)
|
|
10
|
-
* to be used where starknet.js expects a Signer instance (e.g., Account constructor).
|
|
11
|
-
*/
|
|
12
|
-
export declare class StarknetSignerAdapter extends Signer {
|
|
13
|
-
private readonly adapter;
|
|
14
|
-
constructor(adapter: SignerAdapter);
|
|
15
|
-
getPubKey(): Promise<string>;
|
|
16
|
-
protected signRaw(msgHash: string): Promise<Signature>;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=starknet-signer-adapter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"starknet-signer-adapter.d.ts","sourceRoot":"","sources":["../../src/signers/starknet-signer-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;;;;;;;GAQG;AACH,qBAAa,qBAAsB,SAAQ,MAAM;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;gBAE5B,OAAO,EAAE,aAAa;IAOnB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;cAIlB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;CAItE"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { Signer } from "starknet";
|
|
2
|
-
/**
|
|
3
|
-
* Bridge between SignerAdapter and starknet.js Signer.
|
|
4
|
-
*
|
|
5
|
-
* Extends starknet.js `Signer`, overriding `signRaw()` to delegate to
|
|
6
|
-
* `SignerAdapter.sign()`. All hash computation is handled by starknet.js.
|
|
7
|
-
*
|
|
8
|
-
* This allows any SignerAdapter (DirectSigner, PasskeySigner, ExternalSigner)
|
|
9
|
-
* to be used where starknet.js expects a Signer instance (e.g., Account constructor).
|
|
10
|
-
*/
|
|
11
|
-
export class StarknetSignerAdapter extends Signer {
|
|
12
|
-
constructor(adapter) {
|
|
13
|
-
// Dummy private key — overridden methods never use it.
|
|
14
|
-
// Signer requires a key in its constructor, but we bypass all internal signing.
|
|
15
|
-
super("0x1");
|
|
16
|
-
this.adapter = adapter;
|
|
17
|
-
}
|
|
18
|
-
async getPubKey() {
|
|
19
|
-
return this.adapter.getPublicKey();
|
|
20
|
-
}
|
|
21
|
-
async signRaw(msgHash) {
|
|
22
|
-
const result = await this.adapter.sign(msgHash);
|
|
23
|
-
return [result.r, result.s];
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=starknet-signer-adapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"starknet-signer-adapter.js","sourceRoot":"","sources":["../../src/signers/starknet-signer-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAkB,MAAM,UAAU,CAAC;AAGlD;;;;;;;;GAQG;AACH,MAAM,OAAO,qBAAsB,SAAQ,MAAM;IAG/C,YAAY,OAAsB;QAChC,uDAAuD;QACvD,gFAAgF;QAChF,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEQ,KAAK,CAAC,SAAS;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;IACrC,CAAC;IAEkB,KAAK,CAAC,OAAO,CAAC,OAAe;QAC9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChD,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;CACF"}
|
package/dist/signers/types.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/** Result of a signing operation. */
|
|
2
|
-
export interface SignResult {
|
|
3
|
-
r: string;
|
|
4
|
-
s: string;
|
|
5
|
-
}
|
|
6
|
-
/**
|
|
7
|
-
* Unified signer interface.
|
|
8
|
-
* Implementations wrap different key management strategies
|
|
9
|
-
* (local key, passkey, external provider).
|
|
10
|
-
*/
|
|
11
|
-
export interface SignerAdapter {
|
|
12
|
-
/** Get the public key associated with this signer. */
|
|
13
|
-
getPublicKey(): Promise<string>;
|
|
14
|
-
/** Sign a message hash. */
|
|
15
|
-
sign(messageHash: string): Promise<SignResult>;
|
|
16
|
-
/** Get the account address derived from this signer. */
|
|
17
|
-
getAccountAddress(): Promise<string>;
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/signers/types.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,MAAM,WAAW,UAAU;IACzB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,sDAAsD;IACtD,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEhC,2BAA2B;IAC3B,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAE/C,wDAAwD;IACxD,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CACtC"}
|
package/dist/signers/types.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/signers/types.ts"],"names":[],"mappings":""}
|
package/dist/tokens/amount.d.ts
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
/** Minimal token info needed by Amount. */
|
|
2
|
-
export interface TokenInfo {
|
|
3
|
-
symbol: string;
|
|
4
|
-
decimals: number;
|
|
5
|
-
address: string;
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* Immutable representation of a token amount.
|
|
9
|
-
* Stores raw base units (e.g., wei for ETH, micro-units for USDC).
|
|
10
|
-
* All arithmetic is exact BigInt math — no floating point.
|
|
11
|
-
*/
|
|
12
|
-
export declare class Amount {
|
|
13
|
-
/** Raw value in base units (smallest denomination). */
|
|
14
|
-
readonly raw: bigint;
|
|
15
|
-
/** Number of decimal places for this token. */
|
|
16
|
-
readonly decimals: number;
|
|
17
|
-
/** Token symbol (e.g., "USDC", "ETH"). */
|
|
18
|
-
readonly symbol: string;
|
|
19
|
-
private constructor();
|
|
20
|
-
private static assertValidDecimals;
|
|
21
|
-
/**
|
|
22
|
-
* Parse a human-readable string into an Amount.
|
|
23
|
-
* @param value - Human-readable value (e.g., "1.5")
|
|
24
|
-
* @param token - Token info with decimals and symbol
|
|
25
|
-
* @throws If value is negative, non-numeric, or has too many decimal places
|
|
26
|
-
*/
|
|
27
|
-
static parse(value: string, token: TokenInfo): Amount;
|
|
28
|
-
/**
|
|
29
|
-
* Create an Amount from a raw bigint value (base units).
|
|
30
|
-
* @param raw - Raw value in base units
|
|
31
|
-
* @param decimals - Token decimal places
|
|
32
|
-
* @param symbol - Token symbol (defaults to "")
|
|
33
|
-
*/
|
|
34
|
-
static fromRaw(raw: bigint, decimals: number, symbol?: string): Amount;
|
|
35
|
-
/** Add two amounts. Both must have the same decimals. */
|
|
36
|
-
add(other: Amount): Amount;
|
|
37
|
-
/**
|
|
38
|
-
* Subtract an amount.
|
|
39
|
-
* @throws If result would be negative
|
|
40
|
-
*/
|
|
41
|
-
subtract(other: Amount): Amount;
|
|
42
|
-
/**
|
|
43
|
-
* Multiply by a scalar bigint.
|
|
44
|
-
* @throws If scalar is negative
|
|
45
|
-
*/
|
|
46
|
-
multiply(scalar: bigint): Amount;
|
|
47
|
-
/**
|
|
48
|
-
* Divide by a scalar bigint. Truncates (no rounding).
|
|
49
|
-
* @throws If divisor is zero or negative
|
|
50
|
-
*/
|
|
51
|
-
divide(divisor: bigint): Amount;
|
|
52
|
-
eq(other: Amount): boolean;
|
|
53
|
-
gt(other: Amount): boolean;
|
|
54
|
-
gte(other: Amount): boolean;
|
|
55
|
-
lt(other: Amount): boolean;
|
|
56
|
-
lte(other: Amount): boolean;
|
|
57
|
-
isZero(): boolean;
|
|
58
|
-
/** Returns the raw bigint value (base units). */
|
|
59
|
-
toBase(): bigint;
|
|
60
|
-
/**
|
|
61
|
-
* Returns human-readable string (e.g., "1.5").
|
|
62
|
-
* Trailing zeros after decimal are preserved to one place minimum.
|
|
63
|
-
*/
|
|
64
|
-
toUnit(): string;
|
|
65
|
-
/**
|
|
66
|
-
* Returns formatted string with symbol (e.g., "1.5 USDC").
|
|
67
|
-
* @param compressed - If true, shorten large numbers (e.g., "1.5M USDC")
|
|
68
|
-
*/
|
|
69
|
-
toFormatted(compressed?: boolean): string;
|
|
70
|
-
private assertSameDecimals;
|
|
71
|
-
}
|
|
72
|
-
//# sourceMappingURL=amount.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"amount.d.ts","sourceRoot":"","sources":["../../src/tokens/amount.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,qBAAa,MAAM;IACjB,uDAAuD;IACvD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,OAAO;IAMP,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAQlC;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM;IAkBrD;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAK,GAAG,MAAM;IAQlE,yDAAyD;IACzD,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAK1B;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAQ/B;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAKhC;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAQ/B,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI1B,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI1B,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI3B,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI1B,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI3B,MAAM,IAAI,OAAO;IAMjB,iDAAiD;IACjD,MAAM,IAAI,MAAM;IAIhB;;;OAGG;IACH,MAAM,IAAI,MAAM;IAYhB;;;OAGG;IACH,WAAW,CAAC,UAAU,UAAQ,GAAG,MAAM;IAwBvC,OAAO,CAAC,kBAAkB;CAY3B"}
|