@chipi-stack/backend 14.15.1 → 14.16.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/dist/index.d.mts +156 -7
- package/dist/index.d.ts +156 -7
- package/dist/index.js +261 -23
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +252 -24
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
package/dist/index.mjs
CHANGED
|
@@ -1953,9 +1953,9 @@ var ChipiTransactions = class {
|
|
|
1953
1953
|
/**
|
|
1954
1954
|
* Get on-chain transaction status
|
|
1955
1955
|
*/
|
|
1956
|
-
async getTransactionStatus(
|
|
1956
|
+
async getTransactionStatus(hash13, bearerToken) {
|
|
1957
1957
|
return this.client.get({
|
|
1958
|
-
endpoint: `${API_ENDPOINTS.TRANSACTIONS}/${
|
|
1958
|
+
endpoint: `${API_ENDPOINTS.TRANSACTIONS}/${hash13}/status`,
|
|
1959
1959
|
bearerToken
|
|
1960
1960
|
});
|
|
1961
1961
|
}
|
|
@@ -3542,6 +3542,122 @@ var ChipiAi = class {
|
|
|
3542
3542
|
});
|
|
3543
3543
|
}
|
|
3544
3544
|
};
|
|
3545
|
+
var STARKNET_SIGNATURE_VALID = "0x56414c4944";
|
|
3546
|
+
function toFeltHex(value) {
|
|
3547
|
+
return num.toHex(BigInt(value));
|
|
3548
|
+
}
|
|
3549
|
+
function normalizeStarknetAddress(address) {
|
|
3550
|
+
return `0x${BigInt(address).toString(16).padStart(64, "0")}`;
|
|
3551
|
+
}
|
|
3552
|
+
function isContractNotFound(err) {
|
|
3553
|
+
const e = err;
|
|
3554
|
+
if (e?.baseError?.code === 20 || e?.code === 20) return true;
|
|
3555
|
+
return /contract not found/i.test(e?.message ?? String(err));
|
|
3556
|
+
}
|
|
3557
|
+
async function isValidStarknetSignature(provider, accountAddress, messageHash, signature) {
|
|
3558
|
+
try {
|
|
3559
|
+
const sig = signature.map(toFeltHex);
|
|
3560
|
+
const result = await provider.callContract({
|
|
3561
|
+
contractAddress: normalizeStarknetAddress(accountAddress),
|
|
3562
|
+
entrypoint: "is_valid_signature",
|
|
3563
|
+
calldata: [toFeltHex(messageHash), toFeltHex(sig.length), ...sig]
|
|
3564
|
+
});
|
|
3565
|
+
const first = result?.[0];
|
|
3566
|
+
if (first !== void 0 && BigInt(first) === BigInt(STARKNET_SIGNATURE_VALID)) {
|
|
3567
|
+
return { valid: true };
|
|
3568
|
+
}
|
|
3569
|
+
return { valid: false, reason: "INVALID_SIGNATURE" };
|
|
3570
|
+
} catch (err) {
|
|
3571
|
+
if (isContractNotFound(err)) return { valid: false, reason: "ACCOUNT_NOT_DEPLOYED" };
|
|
3572
|
+
return {
|
|
3573
|
+
valid: false,
|
|
3574
|
+
reason: "INVALID_SIGNATURE",
|
|
3575
|
+
detail: err instanceof Error ? err.message : String(err)
|
|
3576
|
+
};
|
|
3577
|
+
}
|
|
3578
|
+
}
|
|
3579
|
+
var COUNTERFACTUAL_ACCOUNT_CLASSES = {
|
|
3580
|
+
/** OpenZeppelin AccountUpgradeable 3.0 (Bramble's default account). */
|
|
3581
|
+
OPENZEPPELIN_V3: "0x01d1777db36cdd06dd62cfde77b1b6ae06412af95d57a13dc40ac77b8a702381",
|
|
3582
|
+
/** Argent X / Ready 0.4 (`WALLET_CLASS_HASHES.READY`). */
|
|
3583
|
+
ARGENT_V0_4: "0x036078334509b514626504edc9fb252328d1a240e4e948bef8d0c08dff45927f"
|
|
3584
|
+
};
|
|
3585
|
+
function starkVerify(r, s, messageHash, publicKey) {
|
|
3586
|
+
const x = BigInt(publicKey).toString(16).padStart(64, "0");
|
|
3587
|
+
const sig = new ec.starkCurve.Signature(BigInt(r), BigInt(s));
|
|
3588
|
+
for (const prefix of ["02", "03"]) {
|
|
3589
|
+
try {
|
|
3590
|
+
if (ec.starkCurve.verify(sig, toFeltHex(messageHash), prefix + x)) return true;
|
|
3591
|
+
} catch {
|
|
3592
|
+
}
|
|
3593
|
+
}
|
|
3594
|
+
return false;
|
|
3595
|
+
}
|
|
3596
|
+
function verifyUndeployedStarknetSignature(deployment, messageHash, signature) {
|
|
3597
|
+
const classHash = normalizeStarknetAddress(deployment.class_hash);
|
|
3598
|
+
const calldata = deployment.calldata.map(toFeltHex);
|
|
3599
|
+
const sig = signature.map(toFeltHex);
|
|
3600
|
+
let publicKey;
|
|
3601
|
+
let r;
|
|
3602
|
+
let s;
|
|
3603
|
+
if (classHash === COUNTERFACTUAL_ACCOUNT_CLASSES.OPENZEPPELIN_V3) {
|
|
3604
|
+
if (calldata.length !== 1 || sig.length !== 2) {
|
|
3605
|
+
return { valid: false, reason: "INVALID_SIGNATURE" };
|
|
3606
|
+
}
|
|
3607
|
+
[publicKey] = calldata;
|
|
3608
|
+
[r, s] = sig;
|
|
3609
|
+
} else if (classHash === COUNTERFACTUAL_ACCOUNT_CLASSES.ARGENT_V0_4) {
|
|
3610
|
+
if (calldata.length !== 3 || BigInt(calldata[0]) !== 0n || BigInt(calldata[2]) !== 1n) {
|
|
3611
|
+
return { valid: false, reason: "UNSUPPORTED_ACCOUNT_CLASS" };
|
|
3612
|
+
}
|
|
3613
|
+
if (sig.length !== 5 || BigInt(sig[0]) !== 1n || BigInt(sig[1]) !== 0n) {
|
|
3614
|
+
return { valid: false, reason: "INVALID_SIGNATURE" };
|
|
3615
|
+
}
|
|
3616
|
+
if (BigInt(sig[2]) !== BigInt(calldata[1])) {
|
|
3617
|
+
return { valid: false, reason: "INVALID_SIGNATURE" };
|
|
3618
|
+
}
|
|
3619
|
+
publicKey = calldata[1];
|
|
3620
|
+
[, , , r, s] = sig;
|
|
3621
|
+
} else {
|
|
3622
|
+
return { valid: false, reason: "UNSUPPORTED_ACCOUNT_CLASS" };
|
|
3623
|
+
}
|
|
3624
|
+
const expected = hash.calculateContractAddressFromHash(
|
|
3625
|
+
toFeltHex(deployment.salt),
|
|
3626
|
+
classHash,
|
|
3627
|
+
calldata,
|
|
3628
|
+
0
|
|
3629
|
+
);
|
|
3630
|
+
if (normalizeStarknetAddress(expected) !== normalizeStarknetAddress(deployment.address)) {
|
|
3631
|
+
return { valid: false, reason: "ADDRESS_MISMATCH" };
|
|
3632
|
+
}
|
|
3633
|
+
return starkVerify(r, s, messageHash, publicKey) ? { valid: true } : { valid: false, reason: "INVALID_SIGNATURE" };
|
|
3634
|
+
}
|
|
3635
|
+
|
|
3636
|
+
// src/x402/facilitator.ts
|
|
3637
|
+
var TRANSFER_SELECTOR2 = BigInt(hash.getSelectorFromName("transfer"));
|
|
3638
|
+
function shhhTransferMatches(oeCalldata, payload) {
|
|
3639
|
+
try {
|
|
3640
|
+
const felts = oeCalldata.map((v) => BigInt(v));
|
|
3641
|
+
const [, , , executeBefore, callsLen] = felts;
|
|
3642
|
+
if (callsLen !== 1n) return { ok: false, reason: "SHHH payment must be exactly one transfer" };
|
|
3643
|
+
const [to, selector, len, recipient, low, high] = felts.slice(5, 11);
|
|
3644
|
+
if (to !== BigInt(payload.asset) || selector !== TRANSFER_SELECTOR2 || len !== 3n) {
|
|
3645
|
+
return { ok: false, reason: "SHHH payment call is not a transfer of the payment asset" };
|
|
3646
|
+
}
|
|
3647
|
+
if (recipient !== BigInt(payload.toAddress)) {
|
|
3648
|
+
return { ok: false, reason: "SHHH payment pays a different recipient" };
|
|
3649
|
+
}
|
|
3650
|
+
if (low + (high << 128n) !== BigInt(payload.amount)) {
|
|
3651
|
+
return { ok: false, reason: "SHHH payment amount differs from the declared amount" };
|
|
3652
|
+
}
|
|
3653
|
+
if (executeBefore <= BigInt(Math.floor(Date.now() / 1e3))) {
|
|
3654
|
+
return { ok: false, reason: "SHHH payment has expired (execute_before in the past)" };
|
|
3655
|
+
}
|
|
3656
|
+
return { ok: true };
|
|
3657
|
+
} catch {
|
|
3658
|
+
return { ok: false, reason: "Malformed SHHH oeCalldata" };
|
|
3659
|
+
}
|
|
3660
|
+
}
|
|
3545
3661
|
var InMemoryNonceStore = class {
|
|
3546
3662
|
constructor() {
|
|
3547
3663
|
this.used = /* @__PURE__ */ new Set();
|
|
@@ -3584,11 +3700,18 @@ var X402Facilitator = class _X402Facilitator {
|
|
|
3584
3700
|
* Verify a payment signature is valid (doesn't execute the transfer).
|
|
3585
3701
|
*
|
|
3586
3702
|
* Checks:
|
|
3587
|
-
* 1.
|
|
3588
|
-
* 2.
|
|
3589
|
-
* 3.
|
|
3590
|
-
* 4.
|
|
3591
|
-
* 5.
|
|
3703
|
+
* 1. x402 version is 1
|
|
3704
|
+
* 2. Network is starknet-mainnet
|
|
3705
|
+
* 3. Nonce has not been used (replay protection)
|
|
3706
|
+
* 4. Payment has not expired (validUntil > now)
|
|
3707
|
+
* 5. Asset is USDC mainnet
|
|
3708
|
+
* 6. Amount is positive
|
|
3709
|
+
* 7. Addresses are non-empty
|
|
3710
|
+
* 8. Signature: with a `provider`, the payer account's `is_valid_signature`
|
|
3711
|
+
* must return 'VALID'. Without one, only its presence is checked (not a
|
|
3712
|
+
* cryptographic check). SHHH payloads must sign exactly one transfer
|
|
3713
|
+
* of `amount` of `asset` to `toAddress`; their signature is checked
|
|
3714
|
+
* on-chain at settle.
|
|
3592
3715
|
*/
|
|
3593
3716
|
async verify(payment) {
|
|
3594
3717
|
const { payload } = payment;
|
|
@@ -3644,6 +3767,8 @@ var X402Facilitator = class _X402Facilitator {
|
|
|
3644
3767
|
if (!Array.isArray(oeCalldata) || oeCalldata.length === 0) {
|
|
3645
3768
|
return { valid: false, reason: "Missing SHHH oeCalldata" };
|
|
3646
3769
|
}
|
|
3770
|
+
const bound = shhhTransferMatches(oeCalldata, payment.payload);
|
|
3771
|
+
if (!bound.ok) return { valid: false, reason: bound.reason };
|
|
3647
3772
|
return { valid: true };
|
|
3648
3773
|
}
|
|
3649
3774
|
if (!this.provider) {
|
|
@@ -3664,22 +3789,25 @@ var X402Facilitator = class _X402Facilitator {
|
|
|
3664
3789
|
valid_until: String(payload.validUntil),
|
|
3665
3790
|
nonce: payload.nonce
|
|
3666
3791
|
});
|
|
3667
|
-
|
|
3792
|
+
let msgHash;
|
|
3668
3793
|
try {
|
|
3669
|
-
|
|
3670
|
-
contractAddress: payload.fromAddress,
|
|
3671
|
-
entrypoint: "is_valid_signature",
|
|
3672
|
-
calldata: [msgHash, "2", payload.signature.r, payload.signature.s]
|
|
3673
|
-
});
|
|
3674
|
-
const VALID = "0x56414c4944";
|
|
3675
|
-
if (result[0] === VALID || result[0] === BigInt(VALID).toString()) {
|
|
3676
|
-
return { valid: true };
|
|
3677
|
-
}
|
|
3678
|
-
return { valid: false, reason: "Invalid SNIP-12 signature" };
|
|
3794
|
+
msgHash = typedData.getMessageHash(paymentTypedData, payload.fromAddress);
|
|
3679
3795
|
} catch (err) {
|
|
3680
3796
|
const message = err instanceof Error ? err.message : String(err);
|
|
3681
|
-
return { valid: false, reason: `
|
|
3797
|
+
return { valid: false, reason: `Malformed payment: ${message}` };
|
|
3682
3798
|
}
|
|
3799
|
+
const check = await isValidStarknetSignature(this.provider, payload.fromAddress, msgHash, [
|
|
3800
|
+
payload.signature.r,
|
|
3801
|
+
payload.signature.s
|
|
3802
|
+
]);
|
|
3803
|
+
if (check.valid) return { valid: true };
|
|
3804
|
+
if (check.reason === "ACCOUNT_NOT_DEPLOYED") {
|
|
3805
|
+
return { valid: false, reason: "Payer account is not deployed" };
|
|
3806
|
+
}
|
|
3807
|
+
return {
|
|
3808
|
+
valid: false,
|
|
3809
|
+
reason: check.detail ? `Signature verification failed: ${check.detail}` : "Invalid SNIP-12 signature"
|
|
3810
|
+
};
|
|
3683
3811
|
}
|
|
3684
3812
|
/**
|
|
3685
3813
|
* Settle a verified payment by executing the USDC transfer via paymaster.
|
|
@@ -3808,7 +3936,7 @@ var signTypedData = async ({
|
|
|
3808
3936
|
throw error;
|
|
3809
3937
|
}
|
|
3810
3938
|
};
|
|
3811
|
-
function
|
|
3939
|
+
function toFeltHex2(x) {
|
|
3812
3940
|
return "0x" + x.toString(16).padStart(64, "0");
|
|
3813
3941
|
}
|
|
3814
3942
|
var signTypedDataArray = async ({
|
|
@@ -3838,7 +3966,7 @@ var signTypedDataArray = async ({
|
|
|
3838
3966
|
messageHash,
|
|
3839
3967
|
ownerIndex: 0n
|
|
3840
3968
|
});
|
|
3841
|
-
return envelope.map(
|
|
3969
|
+
return envelope.map(toFeltHex2);
|
|
3842
3970
|
}
|
|
3843
3971
|
const provider = new RpcProvider({ nodeUrl: WALLET_RPC_ENDPOINTS[walletType] });
|
|
3844
3972
|
const account = new Account({ provider, address: wallet.publicKey, signer: privateKeyDecrypted });
|
|
@@ -4123,8 +4251,8 @@ var ChipiSDK = class {
|
|
|
4123
4251
|
/**
|
|
4124
4252
|
* Get on-chain transaction status (supports polling for confirmation)
|
|
4125
4253
|
*/
|
|
4126
|
-
async getTransactionStatus(
|
|
4127
|
-
return this.transactions.getTransactionStatus(
|
|
4254
|
+
async getTransactionStatus(hash13, bearerToken) {
|
|
4255
|
+
return this.transactions.getTransactionStatus(hash13, this.resolveBearerToken(bearerToken));
|
|
4128
4256
|
}
|
|
4129
4257
|
/**
|
|
4130
4258
|
* Prepare a wallet upgrade (e.g., READY → CHIPI or CHIPI v29 → v33).
|
|
@@ -4496,6 +4624,106 @@ function x402Middleware(config) {
|
|
|
4496
4624
|
next();
|
|
4497
4625
|
};
|
|
4498
4626
|
}
|
|
4627
|
+
var SIWS_DOMAIN_NAME = "Sign in with Starknet";
|
|
4628
|
+
var SIWS_DOMAIN_VERSION = "1";
|
|
4629
|
+
var SIWS_CHAIN_ID = "SN_MAIN";
|
|
4630
|
+
var DEFAULT_STATEMENT = "Sign in. This request costs nothing and moves no funds.";
|
|
4631
|
+
function assertPrintableAscii(field, value) {
|
|
4632
|
+
if (!/^[\x20-\x7e]*$/.test(value)) {
|
|
4633
|
+
throw new Error(`SIWS ${field} must be single-line printable ASCII`);
|
|
4634
|
+
}
|
|
4635
|
+
}
|
|
4636
|
+
function createStarknetSignInTypedData(params) {
|
|
4637
|
+
const message = {
|
|
4638
|
+
domain: params.domain,
|
|
4639
|
+
address: normalizeStarknetAddress(params.address),
|
|
4640
|
+
statement: params.statement ?? DEFAULT_STATEMENT,
|
|
4641
|
+
uri: params.uri,
|
|
4642
|
+
nonce: params.nonce,
|
|
4643
|
+
issuedAt: params.issuedAt ?? Math.floor(Date.now() / 1e3),
|
|
4644
|
+
expirationTime: params.expirationTime
|
|
4645
|
+
};
|
|
4646
|
+
for (const field of ["domain", "statement", "uri", "nonce"]) {
|
|
4647
|
+
assertPrintableAscii(field, message[field]);
|
|
4648
|
+
}
|
|
4649
|
+
if (!/^[A-Za-z0-9]{8,}$/.test(message.nonce)) {
|
|
4650
|
+
throw new Error("SIWS nonce must be at least 8 letters or digits");
|
|
4651
|
+
}
|
|
4652
|
+
if (!Number.isInteger(message.issuedAt) || !Number.isInteger(message.expirationTime)) {
|
|
4653
|
+
throw new Error("SIWS times must be whole unix seconds");
|
|
4654
|
+
}
|
|
4655
|
+
if (message.expirationTime <= message.issuedAt) {
|
|
4656
|
+
throw new Error("SIWS expirationTime must be after issuedAt");
|
|
4657
|
+
}
|
|
4658
|
+
return {
|
|
4659
|
+
types: {
|
|
4660
|
+
StarknetDomain: [
|
|
4661
|
+
{ name: "name", type: "shortstring" },
|
|
4662
|
+
{ name: "version", type: "shortstring" },
|
|
4663
|
+
{ name: "chainId", type: "shortstring" },
|
|
4664
|
+
{ name: "revision", type: "shortstring" }
|
|
4665
|
+
],
|
|
4666
|
+
SignIn: [
|
|
4667
|
+
{ name: "domain", type: "string" },
|
|
4668
|
+
{ name: "address", type: "ContractAddress" },
|
|
4669
|
+
{ name: "statement", type: "string" },
|
|
4670
|
+
{ name: "uri", type: "string" },
|
|
4671
|
+
{ name: "nonce", type: "string" },
|
|
4672
|
+
{ name: "issuedAt", type: "timestamp" },
|
|
4673
|
+
{ name: "expirationTime", type: "timestamp" }
|
|
4674
|
+
]
|
|
4675
|
+
},
|
|
4676
|
+
primaryType: "SignIn",
|
|
4677
|
+
domain: {
|
|
4678
|
+
name: SIWS_DOMAIN_NAME,
|
|
4679
|
+
version: SIWS_DOMAIN_VERSION,
|
|
4680
|
+
chainId: SIWS_CHAIN_ID,
|
|
4681
|
+
revision: "1"
|
|
4682
|
+
},
|
|
4683
|
+
message: { ...message }
|
|
4684
|
+
};
|
|
4685
|
+
}
|
|
4686
|
+
var MAX_SKEW_SECONDS = 60;
|
|
4687
|
+
async function verifyStarknetSignIn(params) {
|
|
4688
|
+
const { typedData: typedData2, signature, provider, expected, deploymentData } = params;
|
|
4689
|
+
const raw = typedData2?.message;
|
|
4690
|
+
if (!raw || !Array.isArray(signature) || signature.length === 0) {
|
|
4691
|
+
return { ok: false, reason: "MALFORMED" };
|
|
4692
|
+
}
|
|
4693
|
+
if (typedData2.domain?.chainId !== SIWS_CHAIN_ID) return { ok: false, reason: "WRONG_CHAIN" };
|
|
4694
|
+
let canonical;
|
|
4695
|
+
let message;
|
|
4696
|
+
try {
|
|
4697
|
+
canonical = createStarknetSignInTypedData({
|
|
4698
|
+
domain: String(raw.domain),
|
|
4699
|
+
uri: String(raw.uri),
|
|
4700
|
+
address: String(raw.address),
|
|
4701
|
+
nonce: String(raw.nonce),
|
|
4702
|
+
statement: String(raw.statement),
|
|
4703
|
+
issuedAt: Number(raw.issuedAt),
|
|
4704
|
+
expirationTime: Number(raw.expirationTime)
|
|
4705
|
+
});
|
|
4706
|
+
message = canonical.message;
|
|
4707
|
+
} catch {
|
|
4708
|
+
return { ok: false, reason: "MALFORMED" };
|
|
4709
|
+
}
|
|
4710
|
+
if (message.domain !== expected.domain) return { ok: false, reason: "WRONG_DOMAIN" };
|
|
4711
|
+
if (message.uri !== expected.uri) return { ok: false, reason: "WRONG_URI" };
|
|
4712
|
+
if (message.nonce !== expected.nonce) return { ok: false, reason: "WRONG_NONCE" };
|
|
4713
|
+
const now = expected.now ?? Math.floor(Date.now() / 1e3);
|
|
4714
|
+
if (now >= message.expirationTime) return { ok: false, reason: "EXPIRED" };
|
|
4715
|
+
if (message.issuedAt > now + MAX_SKEW_SECONDS) return { ok: false, reason: "NOT_YET_VALID" };
|
|
4716
|
+
const messageHash = typedData.getMessageHash(canonical, message.address);
|
|
4717
|
+
const onChain = await isValidStarknetSignature(provider, message.address, messageHash, signature);
|
|
4718
|
+
if (onChain.valid) return { ok: true, address: message.address, message };
|
|
4719
|
+
if (onChain.reason !== "ACCOUNT_NOT_DEPLOYED") return { ok: false, reason: "INVALID_SIGNATURE" };
|
|
4720
|
+
if (!deploymentData) return { ok: false, reason: "ACCOUNT_NOT_DEPLOYED" };
|
|
4721
|
+
if (normalizeStarknetAddress(deploymentData.address) !== message.address) {
|
|
4722
|
+
return { ok: false, reason: "ADDRESS_MISMATCH" };
|
|
4723
|
+
}
|
|
4724
|
+
const offChain = verifyUndeployedStarknetSignature(deploymentData, messageHash, signature);
|
|
4725
|
+
return offChain.valid ? { ok: true, address: message.address, message } : { ok: false, reason: offChain.reason };
|
|
4726
|
+
}
|
|
4499
4727
|
|
|
4500
4728
|
// src/shhh/index.ts
|
|
4501
4729
|
init_snip12_hash();
|
|
@@ -5394,6 +5622,6 @@ function submitViaAccount(funded) {
|
|
|
5394
5622
|
};
|
|
5395
5623
|
}
|
|
5396
5624
|
|
|
5397
|
-
export { ANY_CALLER_FELT, APPLE_ISSUER, BOOTSTRAP_DOMAIN_SEPARATOR, ChipiAi, ChipiBrowserSDK, ChipiClient, ChipiPaymasterAdapter, ChipiSDK, ChipiServerSDK, ChipiSessions, ChipiSkuPurchases, ChipiSkus, ChipiTransactions, ChipiTreasury, ChipiWallets, DEFAULT_OP_EXPIRY_SECONDS, ISIGNER_CANONICAL_LABEL, ISIGNER_ID, ISRC9_V2_ID, MAX_OE_VALIDITY_WINDOW_SECONDS, MIN_THRESHOLD_OWNERS, OE_DOMAIN_NAME, OE_DOMAIN_REVISION, OE_DOMAIN_VERSION, OP_ADD_OWNER, OP_REMOVE_OWNER, OP_ROTATE_OWNER, OP_SET_THRESHOLD, ROLE_GUARDIAN, ROLE_OWNER, SIG_VERSION_V1_HEX_ASCII, SIG_VERSION_V2_SNIP12, SIG_VERSION_V2_THRESHOLD, STARKNET_MESSAGE_PREFIX, SessionTxVerifier, ShhhAccount, TIMELOCK_SECONDS, VIEW_SELECTORS, X402Facilitator, X402ShhhClient, assertValidV2Snip12Envelope, buildAddSessionKeyCall, buildBootstrapSignedCall, buildCancelPendingOpCall, buildCancelRecoveryCall, buildEd25519Envelope, buildEd25519EnvelopeFromSignature, buildEip191EnvelopeFromPrivateKey, buildEip191EnvelopeFromSignature, buildExecuteAddOwnerCall, buildExecuteRemoveOwnerCall, buildExecuteRotateOwnerCall, buildExecuteSetThresholdCall, buildFinalizeRecoveryCall, buildInitiateRecoveryCall, buildJwtAppleSubEnvelopeFromTestKey, buildJwtAppleSubEnvelopeFromTokenResponse, buildMigrationCalls, buildOutsideExecution, buildProposeAddOwnerCall, buildProposeRemoveOwnerCall, buildProposeRotateOwnerCall, buildProposeSetThresholdCall, buildRemoveSpendingPolicyCall, buildRevokeSessionKeyCall, buildSessionSetupCalls, buildSetSpendingPolicyCall, buildStarkEnvelope, buildThresholdEnvelope, buildWebAuthnEnvelopeFromAssertion, buildWebAuthnEnvelopeFromPrivateKey, byteArrayToFelts, computeAddressSalt, computeBootstrapMessage, computeISignerId, computeOeHash, computeShhhAddress, computeSnip12Hash, decryptPrivateKey, ed25519OwnerId, ed25519OwnerPubkeyParam, ed25519PubkeyFelts, ed25519SignedBytes, eip191OwnerId, eip191OwnerPubkeyParam, eip191PubkeyFelts, encryptPrivateKey, estimateThresholdGasOverhead, executeShhhSponsoredRaw, hashCall, hashCalls, hashOutsideExecutionStruct, hashStarknetDomain, isReadyToExecute, isThinkDecision, jwtAppleSubHash, jwtAppleSubOwnerId, jwtAppleSubPubkeyFelts, labelToFelt, locateSubClaim, messageHashToNonceB64url, migrateChipiWalletToShhh, normalizeEntrypoints, ownerCommitment, parseAppleIdToken, parseDerEcdsaSignature, parseEip191Signature, parseThresholdEnvelope, resolveShhhChainId, secondsUntilExecutable, serializeExecuteFromOutsideV2Calldata, signBootstrapMessage, signTypedData, signTypedDataArray, snip12HashToHexAsciiBytes, starkOwnerId, starkPubkeyFelts, submitViaAccount, validateSpendingPolicyConfig, waitForTransaction, webauthnOwnerId, webauthnOwnerPubkeyParam, webauthnPubkeyFelts, wrapV2Snip12Envelope, wrapV2ThresholdEnvelope, x402Middleware };
|
|
5625
|
+
export { ANY_CALLER_FELT, APPLE_ISSUER, BOOTSTRAP_DOMAIN_SEPARATOR, COUNTERFACTUAL_ACCOUNT_CLASSES, ChipiAi, ChipiBrowserSDK, ChipiClient, ChipiPaymasterAdapter, ChipiSDK, ChipiServerSDK, ChipiSessions, ChipiSkuPurchases, ChipiSkus, ChipiTransactions, ChipiTreasury, ChipiWallets, DEFAULT_OP_EXPIRY_SECONDS, ISIGNER_CANONICAL_LABEL, ISIGNER_ID, ISRC9_V2_ID, MAX_OE_VALIDITY_WINDOW_SECONDS, MIN_THRESHOLD_OWNERS, OE_DOMAIN_NAME, OE_DOMAIN_REVISION, OE_DOMAIN_VERSION, OP_ADD_OWNER, OP_REMOVE_OWNER, OP_ROTATE_OWNER, OP_SET_THRESHOLD, ROLE_GUARDIAN, ROLE_OWNER, SIG_VERSION_V1_HEX_ASCII, SIG_VERSION_V2_SNIP12, SIG_VERSION_V2_THRESHOLD, SIWS_CHAIN_ID, SIWS_DOMAIN_NAME, SIWS_DOMAIN_VERSION, STARKNET_MESSAGE_PREFIX, STARKNET_SIGNATURE_VALID, SessionTxVerifier, ShhhAccount, TIMELOCK_SECONDS, VIEW_SELECTORS, X402Facilitator, X402ShhhClient, assertValidV2Snip12Envelope, buildAddSessionKeyCall, buildBootstrapSignedCall, buildCancelPendingOpCall, buildCancelRecoveryCall, buildEd25519Envelope, buildEd25519EnvelopeFromSignature, buildEip191EnvelopeFromPrivateKey, buildEip191EnvelopeFromSignature, buildExecuteAddOwnerCall, buildExecuteRemoveOwnerCall, buildExecuteRotateOwnerCall, buildExecuteSetThresholdCall, buildFinalizeRecoveryCall, buildInitiateRecoveryCall, buildJwtAppleSubEnvelopeFromTestKey, buildJwtAppleSubEnvelopeFromTokenResponse, buildMigrationCalls, buildOutsideExecution, buildProposeAddOwnerCall, buildProposeRemoveOwnerCall, buildProposeRotateOwnerCall, buildProposeSetThresholdCall, buildRemoveSpendingPolicyCall, buildRevokeSessionKeyCall, buildSessionSetupCalls, buildSetSpendingPolicyCall, buildStarkEnvelope, buildThresholdEnvelope, buildWebAuthnEnvelopeFromAssertion, buildWebAuthnEnvelopeFromPrivateKey, byteArrayToFelts, computeAddressSalt, computeBootstrapMessage, computeISignerId, computeOeHash, computeShhhAddress, computeSnip12Hash, createStarknetSignInTypedData, decryptPrivateKey, ed25519OwnerId, ed25519OwnerPubkeyParam, ed25519PubkeyFelts, ed25519SignedBytes, eip191OwnerId, eip191OwnerPubkeyParam, eip191PubkeyFelts, encryptPrivateKey, estimateThresholdGasOverhead, executeShhhSponsoredRaw, hashCall, hashCalls, hashOutsideExecutionStruct, hashStarknetDomain, isReadyToExecute, isThinkDecision, isValidStarknetSignature, jwtAppleSubHash, jwtAppleSubOwnerId, jwtAppleSubPubkeyFelts, labelToFelt, locateSubClaim, messageHashToNonceB64url, migrateChipiWalletToShhh, normalizeEntrypoints, normalizeStarknetAddress, ownerCommitment, parseAppleIdToken, parseDerEcdsaSignature, parseEip191Signature, parseThresholdEnvelope, resolveShhhChainId, secondsUntilExecutable, serializeExecuteFromOutsideV2Calldata, signBootstrapMessage, signTypedData, signTypedDataArray, snip12HashToHexAsciiBytes, starkOwnerId, starkPubkeyFelts, submitViaAccount, validateSpendingPolicyConfig, verifyStarknetSignIn, verifyUndeployedStarknetSignature, waitForTransaction, webauthnOwnerId, webauthnOwnerPubkeyParam, webauthnPubkeyFelts, wrapV2Snip12Envelope, wrapV2ThresholdEnvelope, x402Middleware };
|
|
5398
5626
|
//# sourceMappingURL=index.mjs.map
|
|
5399
5627
|
//# sourceMappingURL=index.mjs.map
|