@medialane/sdk 0.172.0 → 0.174.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/{chunk-BC2L2H6A.cjs → chunk-46LSYJEM.cjs} +25 -2
- package/dist/chunk-46LSYJEM.cjs.map +1 -0
- package/dist/{chunk-DDZJFN65.js → chunk-BGURLH5G.js} +25 -2
- package/dist/chunk-BGURLH5G.js.map +1 -0
- package/dist/{errors-DvSfHOZu.d.cts → errors-Bf4s_b14.d.cts} +216 -42
- package/dist/{errors-5C3YHsDE.d.ts → errors-D3wtOrcq.d.ts} +216 -42
- package/dist/index.cjs +270 -121
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +19 -14
- package/dist/index.d.ts +19 -14
- package/dist/index.js +193 -46
- package/dist/index.js.map +1 -1
- package/dist/starknet/index.cjs +94 -71
- package/dist/starknet/index.cjs.map +1 -1
- package/dist/starknet/index.d.cts +10 -157
- package/dist/starknet/index.d.ts +10 -157
- package/dist/starknet/index.js +25 -3
- package/dist/starknet/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-BC2L2H6A.cjs.map +0 -1
- package/dist/chunk-DDZJFN65.js.map +0 -1
package/dist/starknet/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk46LSYJEM_cjs = require('../chunk-46LSYJEM.cjs');
|
|
4
4
|
var chunkVJVBWHAD_cjs = require('../chunk-VJVBWHAD.cjs');
|
|
5
5
|
var starknet = require('starknet');
|
|
6
6
|
var hkdf_js = require('@noble/hashes/hkdf.js');
|
|
@@ -33,7 +33,7 @@ function getChainId(config) {
|
|
|
33
33
|
return starknet.constants.StarknetChainId.SN_MAIN;
|
|
34
34
|
}
|
|
35
35
|
function resolveToken(currency) {
|
|
36
|
-
const token =
|
|
36
|
+
const token = chunk46LSYJEM_cjs.SUPPORTED_TOKENS.find(
|
|
37
37
|
(t) => t.symbol === currency.toUpperCase() || t.address.toLowerCase() === currency.toLowerCase()
|
|
38
38
|
);
|
|
39
39
|
if (!token) throw new MedialaneError(`Unsupported currency: ${currency}`, "INVALID_PARAMS");
|
|
@@ -44,7 +44,7 @@ function getProvider(config) {
|
|
|
44
44
|
let p = _providerCache.get(config);
|
|
45
45
|
if (!p) {
|
|
46
46
|
const urls = [config.rpcUrl];
|
|
47
|
-
p = new starknet.RpcProvider({ nodeUrl: urls[0], baseFetch:
|
|
47
|
+
p = new starknet.RpcProvider({ nodeUrl: urls[0], baseFetch: chunk46LSYJEM_cjs.createFailoverFetch(urls) });
|
|
48
48
|
_providerCache.set(config, p);
|
|
49
49
|
}
|
|
50
50
|
return p;
|
|
@@ -10415,7 +10415,7 @@ function merkleTree(leafHashes) {
|
|
|
10415
10415
|
};
|
|
10416
10416
|
}
|
|
10417
10417
|
function buildPopAllowlist(addresses) {
|
|
10418
|
-
const unique = [...new Set(addresses.map((a) =>
|
|
10418
|
+
const unique = [...new Set(addresses.map((a) => chunk46LSYJEM_cjs.normalizeAddress("STARKNET", a)))];
|
|
10419
10419
|
if (unique.length === 0) throw new Error("An allowlist needs at least one address");
|
|
10420
10420
|
const leaves = unique.map((address) => ({ address, leaf: popLeafHash(address) }));
|
|
10421
10421
|
const tree = merkleTree(leaves.map((l) => l.leaf));
|
|
@@ -10441,7 +10441,7 @@ function decodePopClaimFragment(fragment) {
|
|
|
10441
10441
|
|
|
10442
10442
|
// src/starknet/pop-claim.ts
|
|
10443
10443
|
function popClaimLinks(origin, collection, list) {
|
|
10444
|
-
const base = `${origin}${
|
|
10444
|
+
const base = `${origin}${chunk46LSYJEM_cjs.collectionHref("STARKNET", collection)}`;
|
|
10445
10445
|
return Object.entries(list.proofs).map(([address, proof]) => ({
|
|
10446
10446
|
address,
|
|
10447
10447
|
url: `${base}${encodePopClaimFragment(proof)}`
|
|
@@ -10451,7 +10451,7 @@ function popClaimLinksCsv(links) {
|
|
|
10451
10451
|
return ["address,claim_link", ...links.map((l) => `${l.address},${l.url}`)].join("\n");
|
|
10452
10452
|
}
|
|
10453
10453
|
async function popClaimInfo(provider, collection) {
|
|
10454
|
-
const contractAddress =
|
|
10454
|
+
const contractAddress = chunk46LSYJEM_cjs.normalizeAddress("STARKNET", collection);
|
|
10455
10455
|
const [root, end] = await Promise.all([
|
|
10456
10456
|
provider.callContract({ contractAddress, entrypoint: "allowlist_root", calldata: [] }),
|
|
10457
10457
|
provider.callContract({ contractAddress, entrypoint: "claim_end_time", calldata: [] })
|
|
@@ -10468,7 +10468,7 @@ function popClaimState(input) {
|
|
|
10468
10468
|
if (!wallet || !verifyPopProof(info.root, wallet, proof)) return "wrong-wallet";
|
|
10469
10469
|
return "ready";
|
|
10470
10470
|
}
|
|
10471
|
-
var addr = (a) =>
|
|
10471
|
+
var addr = (a) => chunk46LSYJEM_cjs.normalizeAddress("STARKNET", a);
|
|
10472
10472
|
var byteArrayFelts = (s) => starknet.CallData.compile([starknet.byteArray.byteArrayFromString(s)]);
|
|
10473
10473
|
var popCalls = {
|
|
10474
10474
|
claim(collection, proof) {
|
|
@@ -10523,9 +10523,9 @@ var PopService = class {
|
|
|
10523
10523
|
};
|
|
10524
10524
|
async function popHasClaimed(provider, collection, address) {
|
|
10525
10525
|
const res = await provider.callContract({
|
|
10526
|
-
contractAddress:
|
|
10526
|
+
contractAddress: chunk46LSYJEM_cjs.normalizeAddress("STARKNET", collection),
|
|
10527
10527
|
entrypoint: "has_claimed",
|
|
10528
|
-
calldata: [
|
|
10528
|
+
calldata: [chunk46LSYJEM_cjs.normalizeAddress("STARKNET", address)]
|
|
10529
10529
|
});
|
|
10530
10530
|
return BigInt(res[0] ?? "0x0") !== 0n;
|
|
10531
10531
|
}
|
|
@@ -10547,7 +10547,7 @@ function buildFeeCall(p, cfg) {
|
|
|
10547
10547
|
};
|
|
10548
10548
|
}
|
|
10549
10549
|
var DROP_MAX_CLAIM_QUANTITY = 50n;
|
|
10550
|
-
var addr2 = (a) =>
|
|
10550
|
+
var addr2 = (a) => chunk46LSYJEM_cjs.normalizeAddress("STARKNET", a);
|
|
10551
10551
|
var factoryData = new starknet.CallData(DropFactoryABI);
|
|
10552
10552
|
var collectionData = new starknet.CallData(DropCollectionABI);
|
|
10553
10553
|
function toContractTerms(t) {
|
|
@@ -10617,7 +10617,7 @@ function dropMintCost(price, quantity, feeBps2) {
|
|
|
10617
10617
|
}
|
|
10618
10618
|
|
|
10619
10619
|
// src/starknet/drop-state.ts
|
|
10620
|
-
var hex = (v) =>
|
|
10620
|
+
var hex = (v) => chunk46LSYJEM_cjs.normalizeAddress("STARKNET", v ?? "0x0");
|
|
10621
10621
|
var u256 = (low, high) => BigInt(low ?? "0x0") + (BigInt(high ?? "0x0") << 128n);
|
|
10622
10622
|
async function readDrop(provider, collection) {
|
|
10623
10623
|
const contractAddress = hex(collection);
|
|
@@ -10672,7 +10672,7 @@ function dropMintState(input) {
|
|
|
10672
10672
|
return { state: "ready", maxQuantity: max };
|
|
10673
10673
|
}
|
|
10674
10674
|
function dropClaimLinks(origin, collection, list) {
|
|
10675
|
-
const base = `${origin}${
|
|
10675
|
+
const base = `${origin}${chunk46LSYJEM_cjs.dropHref(collection)}`;
|
|
10676
10676
|
return Object.entries(list.proofs).map(([address, proof]) => ({
|
|
10677
10677
|
address,
|
|
10678
10678
|
url: `${base}${encodePopClaimFragment(proof)}`
|
|
@@ -10724,14 +10724,14 @@ var ERC1155CollectionService = class {
|
|
|
10724
10724
|
_factory(account) {
|
|
10725
10725
|
return newContract(
|
|
10726
10726
|
IPCollection1155FactoryABI,
|
|
10727
|
-
|
|
10727
|
+
chunk46LSYJEM_cjs.normalizeAddress("STARKNET", this.factoryAddress),
|
|
10728
10728
|
account
|
|
10729
10729
|
);
|
|
10730
10730
|
}
|
|
10731
10731
|
_collection(address, account) {
|
|
10732
10732
|
return newContract(
|
|
10733
10733
|
IPCollection1155ABI,
|
|
10734
|
-
|
|
10734
|
+
chunk46LSYJEM_cjs.normalizeAddress("STARKNET", address),
|
|
10735
10735
|
account
|
|
10736
10736
|
);
|
|
10737
10737
|
}
|
|
@@ -10959,20 +10959,20 @@ function buildLaunchOnEkuboCalls(params) {
|
|
|
10959
10959
|
}
|
|
10960
10960
|
var CREATOR_COIN_CREATED_SELECTOR = starknet.hash.getSelectorFromName("CreatorCoinCreated");
|
|
10961
10961
|
function parseCreatorCoinCreated(receipt) {
|
|
10962
|
-
const factory =
|
|
10962
|
+
const factory = chunk46LSYJEM_cjs.normalizeAddress("STARKNET", chunkVJVBWHAD_cjs.getStarknetCoordinates("STARKNET").creatorCoinFactory);
|
|
10963
10963
|
for (const ev of receipt?.events ?? []) {
|
|
10964
10964
|
let from;
|
|
10965
10965
|
try {
|
|
10966
|
-
from =
|
|
10966
|
+
from = chunk46LSYJEM_cjs.normalizeAddress("STARKNET", ev.from_address ?? "");
|
|
10967
10967
|
} catch {
|
|
10968
10968
|
continue;
|
|
10969
10969
|
}
|
|
10970
10970
|
if (from !== factory) continue;
|
|
10971
10971
|
const k0 = ev.keys?.[0];
|
|
10972
|
-
if (!k0 ||
|
|
10972
|
+
if (!k0 || chunk46LSYJEM_cjs.normalizeAddress("STARKNET", k0) !== chunk46LSYJEM_cjs.normalizeAddress("STARKNET", CREATOR_COIN_CREATED_SELECTOR)) continue;
|
|
10973
10973
|
const data = ev.data ?? [];
|
|
10974
10974
|
if (data.length < 1) continue;
|
|
10975
|
-
return
|
|
10975
|
+
return chunk46LSYJEM_cjs.normalizeAddress("STARKNET", data[data.length - 1]);
|
|
10976
10976
|
}
|
|
10977
10977
|
throw new Error("Coin deployed but the coin address could not be read from the receipt");
|
|
10978
10978
|
}
|
|
@@ -11008,14 +11008,14 @@ var TicketService = class {
|
|
|
11008
11008
|
_factory(account, factoryAddress) {
|
|
11009
11009
|
const address = factoryAddress ?? this.factoryAddress;
|
|
11010
11010
|
if (!address) throw new Error("IP-Tickets factory address not configured for this chain");
|
|
11011
|
-
return newContract(IPTicketCollectionFactoryABI,
|
|
11011
|
+
return newContract(IPTicketCollectionFactoryABI, chunk46LSYJEM_cjs.normalizeAddress("STARKNET", address), account);
|
|
11012
11012
|
}
|
|
11013
11013
|
_collection(address, account) {
|
|
11014
|
-
return newContract(IPTicketCollectionABI,
|
|
11014
|
+
return newContract(IPTicketCollectionABI, chunk46LSYJEM_cjs.normalizeAddress("STARKNET", address), account);
|
|
11015
11015
|
}
|
|
11016
11016
|
_collectionRead(address) {
|
|
11017
11017
|
const provider = new starknet.RpcProvider({ nodeUrl: this.config.rpcUrl });
|
|
11018
|
-
return newContract(IPTicketCollectionABI,
|
|
11018
|
+
return newContract(IPTicketCollectionABI, chunk46LSYJEM_cjs.normalizeAddress("STARKNET", address), provider);
|
|
11019
11019
|
}
|
|
11020
11020
|
async deployCollection(account, params) {
|
|
11021
11021
|
const call = this._factory(account, params.factoryAddress).populate("deploy_collection", [
|
|
@@ -11081,14 +11081,14 @@ var ClubService = class {
|
|
|
11081
11081
|
_factory(account, factoryAddress) {
|
|
11082
11082
|
const address = factoryAddress ?? this.factoryAddress;
|
|
11083
11083
|
if (!address) throw new Error("IP-Club factory address not configured for this chain");
|
|
11084
|
-
return newContract(IPClubFactoryABI,
|
|
11084
|
+
return newContract(IPClubFactoryABI, chunk46LSYJEM_cjs.normalizeAddress("STARKNET", address), account);
|
|
11085
11085
|
}
|
|
11086
11086
|
_collection(address, account) {
|
|
11087
|
-
return newContract(IPClubCollectionABI,
|
|
11087
|
+
return newContract(IPClubCollectionABI, chunk46LSYJEM_cjs.normalizeAddress("STARKNET", address), account);
|
|
11088
11088
|
}
|
|
11089
11089
|
_collectionRead(address) {
|
|
11090
11090
|
const provider = new starknet.RpcProvider({ nodeUrl: this.config.rpcUrl });
|
|
11091
|
-
return newContract(IPClubCollectionABI,
|
|
11091
|
+
return newContract(IPClubCollectionABI, chunk46LSYJEM_cjs.normalizeAddress("STARKNET", address), provider);
|
|
11092
11092
|
}
|
|
11093
11093
|
async deployCollection(account, params) {
|
|
11094
11094
|
const call = this._factory(account, params.factoryAddress).populate("deploy_collection", [
|
|
@@ -11158,7 +11158,7 @@ var SponsorshipService = class {
|
|
|
11158
11158
|
if (!resolved) {
|
|
11159
11159
|
throw new Error("IP-Sponsorship address not configured for this chain");
|
|
11160
11160
|
}
|
|
11161
|
-
return newContract(IPSponsorshipABI,
|
|
11161
|
+
return newContract(IPSponsorshipABI, chunk46LSYJEM_cjs.normalizeAddress("STARKNET", resolved), account);
|
|
11162
11162
|
}
|
|
11163
11163
|
_contractRead(address) {
|
|
11164
11164
|
const resolved = address ?? this.sponsorshipAddress;
|
|
@@ -11166,7 +11166,7 @@ var SponsorshipService = class {
|
|
|
11166
11166
|
throw new Error("IP-Sponsorship address not configured for this chain");
|
|
11167
11167
|
}
|
|
11168
11168
|
const provider = new starknet.RpcProvider({ nodeUrl: this.config.rpcUrl });
|
|
11169
|
-
return newContract(IPSponsorshipABI,
|
|
11169
|
+
return newContract(IPSponsorshipABI, chunk46LSYJEM_cjs.normalizeAddress("STARKNET", resolved), provider);
|
|
11170
11170
|
}
|
|
11171
11171
|
async createOffer(account, params) {
|
|
11172
11172
|
const specificSponsor = params.specificSponsor ? new starknet.CairoOption(starknet.CairoOptionVariant.Some, params.specificSponsor) : new starknet.CairoOption(starknet.CairoOptionVariant.None);
|
|
@@ -11201,7 +11201,7 @@ var SponsorshipService = class {
|
|
|
11201
11201
|
const approveCall = {
|
|
11202
11202
|
contractAddress: params.paymentToken,
|
|
11203
11203
|
entrypoint: "approve",
|
|
11204
|
-
calldata: [
|
|
11204
|
+
calldata: [chunk46LSYJEM_cjs.normalizeAddress("STARKNET", sponsorshipAddress), amount.low.toString(), amount.high.toString()]
|
|
11205
11205
|
};
|
|
11206
11206
|
const bidCall = this._contract(account, sponsorshipAddress).populate("place_bid", [
|
|
11207
11207
|
starknet.cairo.uint256(params.offerId),
|
|
@@ -11328,7 +11328,7 @@ var SponsorshipService = class {
|
|
|
11328
11328
|
// src/starknet/client.ts
|
|
11329
11329
|
var MedialaneClient = class {
|
|
11330
11330
|
constructor(rawConfig = {}) {
|
|
11331
|
-
this.config =
|
|
11331
|
+
this.config = chunk46LSYJEM_cjs.resolveConfig(rawConfig);
|
|
11332
11332
|
this.services = {
|
|
11333
11333
|
pop: new PopService(this.config),
|
|
11334
11334
|
drop: new DropService(this.config),
|
|
@@ -11339,9 +11339,9 @@ var MedialaneClient = class {
|
|
|
11339
11339
|
sponsorship: new SponsorshipService(this.config)
|
|
11340
11340
|
};
|
|
11341
11341
|
if (!this.config.backendUrl) {
|
|
11342
|
-
const sentinel = new
|
|
11342
|
+
const sentinel = new chunk46LSYJEM_cjs.ApiClient("https://medialane-sdk-no-backend.invalid", this.config.apiKey);
|
|
11343
11343
|
const apiMethodNames = new Set(
|
|
11344
|
-
Object.getOwnPropertyNames(
|
|
11344
|
+
Object.getOwnPropertyNames(chunk46LSYJEM_cjs.ApiClient.prototype).filter(
|
|
11345
11345
|
(k) => k !== "constructor" && typeof sentinel[k] === "function"
|
|
11346
11346
|
)
|
|
11347
11347
|
);
|
|
@@ -11358,7 +11358,7 @@ var MedialaneClient = class {
|
|
|
11358
11358
|
}
|
|
11359
11359
|
});
|
|
11360
11360
|
} else {
|
|
11361
|
-
this.api = new
|
|
11361
|
+
this.api = new chunk46LSYJEM_cjs.ApiClient(this.config.backendUrl, this.config.apiKey, this.config.retryOptions, this.config.chain);
|
|
11362
11362
|
}
|
|
11363
11363
|
}
|
|
11364
11364
|
get chain() {
|
|
@@ -11530,7 +11530,7 @@ function buildListingOrder(i, cfg) {
|
|
|
11530
11530
|
salt: i.salt,
|
|
11531
11531
|
counter: i.counter
|
|
11532
11532
|
};
|
|
11533
|
-
const typedData =
|
|
11533
|
+
const typedData = chunk46LSYJEM_cjs.stringifyBigInts(buildOrderTypedData(orderParams, getChainId(cfg)));
|
|
11534
11534
|
return { orderParams, typedData };
|
|
11535
11535
|
}
|
|
11536
11536
|
function buildOfferOrder(i, cfg) {
|
|
@@ -11551,11 +11551,11 @@ function buildOfferOrder(i, cfg) {
|
|
|
11551
11551
|
salt: i.salt,
|
|
11552
11552
|
counter: i.counter
|
|
11553
11553
|
};
|
|
11554
|
-
const typedData =
|
|
11554
|
+
const typedData = chunk46LSYJEM_cjs.stringifyBigInts(buildOrderTypedData(orderParams, getChainId(cfg)));
|
|
11555
11555
|
return { orderParams, typedData };
|
|
11556
11556
|
}
|
|
11557
11557
|
function registerPayload(orderParams, signature) {
|
|
11558
|
-
return
|
|
11558
|
+
return chunk46LSYJEM_cjs.stringifyBigInts({
|
|
11559
11559
|
parameters: {
|
|
11560
11560
|
...orderParams,
|
|
11561
11561
|
offer: { ...orderParams.offer, item_type: starknet.shortString.encodeShortString(orderParams.offer.item_type) },
|
|
@@ -11586,14 +11586,14 @@ function buildFulfillCalls(a, cfg) {
|
|
|
11586
11586
|
return fee ? [approve, fulfill, fee] : [approve, fulfill];
|
|
11587
11587
|
}
|
|
11588
11588
|
function buildCancelCalls(a, cfg) {
|
|
11589
|
-
const cancelRequest =
|
|
11589
|
+
const cancelRequest = chunk46LSYJEM_cjs.stringifyBigInts({
|
|
11590
11590
|
cancelation: { order_hash: a.orderHash, offerer: a.offerer },
|
|
11591
11591
|
signature: a.signature
|
|
11592
11592
|
});
|
|
11593
11593
|
return [contractFor(cfg).populate("cancel_order", [cancelRequest])];
|
|
11594
11594
|
}
|
|
11595
11595
|
function buildCancelTypedData(orderHash, offerer, cfg) {
|
|
11596
|
-
return
|
|
11596
|
+
return chunk46LSYJEM_cjs.stringifyBigInts(buildCancellationTypedData({ order_hash: orderHash, offerer }, getChainId(cfg)));
|
|
11597
11597
|
}
|
|
11598
11598
|
function contractFor2(cfg) {
|
|
11599
11599
|
return newContract(Medialane1155ABI, cfg.marketplace1155Contract, getProvider(cfg));
|
|
@@ -11616,7 +11616,7 @@ function buildListing1155Order(i, cfg) {
|
|
|
11616
11616
|
salt: i.salt,
|
|
11617
11617
|
counter: i.counter
|
|
11618
11618
|
};
|
|
11619
|
-
const typedData =
|
|
11619
|
+
const typedData = chunk46LSYJEM_cjs.stringifyBigInts(
|
|
11620
11620
|
build1155OrderTypedData(orderParams, getChainId(cfg))
|
|
11621
11621
|
);
|
|
11622
11622
|
return { orderParams, typedData };
|
|
@@ -11639,13 +11639,13 @@ function buildOffer1155Order(i, cfg) {
|
|
|
11639
11639
|
salt: i.salt,
|
|
11640
11640
|
counter: i.counter
|
|
11641
11641
|
};
|
|
11642
|
-
const typedData =
|
|
11642
|
+
const typedData = chunk46LSYJEM_cjs.stringifyBigInts(
|
|
11643
11643
|
build1155OrderTypedData(orderParams, getChainId(cfg))
|
|
11644
11644
|
);
|
|
11645
11645
|
return { orderParams, typedData };
|
|
11646
11646
|
}
|
|
11647
11647
|
function registerPayload2(orderParams, signature) {
|
|
11648
|
-
return
|
|
11648
|
+
return chunk46LSYJEM_cjs.stringifyBigInts({
|
|
11649
11649
|
parameters: {
|
|
11650
11650
|
...orderParams,
|
|
11651
11651
|
offer: { ...orderParams.offer, item_type: starknet.shortString.encodeShortString(orderParams.offer.item_type) },
|
|
@@ -11676,14 +11676,14 @@ function buildFulfill1155Calls(a, cfg) {
|
|
|
11676
11676
|
return fee ? [approve, fulfill, fee] : [approve, fulfill];
|
|
11677
11677
|
}
|
|
11678
11678
|
function buildCancel1155Calls(a, cfg) {
|
|
11679
|
-
const cancelPayload =
|
|
11679
|
+
const cancelPayload = chunk46LSYJEM_cjs.stringifyBigInts({
|
|
11680
11680
|
cancelation: { order_hash: a.orderHash, offerer: a.offerer },
|
|
11681
11681
|
signature: a.signature
|
|
11682
11682
|
});
|
|
11683
11683
|
return [contractFor2(cfg).populate("cancel_order", [cancelPayload])];
|
|
11684
11684
|
}
|
|
11685
11685
|
function buildCancel1155TypedData(orderHash, offerer, cfg) {
|
|
11686
|
-
return
|
|
11686
|
+
return chunk46LSYJEM_cjs.stringifyBigInts(
|
|
11687
11687
|
build1155CancellationTypedData({ order_hash: orderHash, offerer }, getChainId(cfg))
|
|
11688
11688
|
);
|
|
11689
11689
|
}
|
|
@@ -11934,6 +11934,28 @@ async function requestSiwsToken({
|
|
|
11934
11934
|
return token;
|
|
11935
11935
|
}
|
|
11936
11936
|
|
|
11937
|
+
// src/starknet/siws/sign-in.ts
|
|
11938
|
+
async function signInWithWallet(args) {
|
|
11939
|
+
const base = args.backendUrl.replace(/\/$/, "");
|
|
11940
|
+
const nonceRes = await fetch(`${base}/v1/auth/siws/nonce`, {
|
|
11941
|
+
method: "POST",
|
|
11942
|
+
headers: { "Content-Type": "application/json" },
|
|
11943
|
+
body: JSON.stringify({ walletAddress: args.walletAddress })
|
|
11944
|
+
});
|
|
11945
|
+
if (!nonceRes.ok) throw new Error("Failed to prepare wallet sign-in");
|
|
11946
|
+
const { nonce, typedData } = await nonceRes.json();
|
|
11947
|
+
const signature = normalizeSiwsSignature(await args.signer.signMessage(typedData));
|
|
11948
|
+
const verifyRes = await fetch(`${base}/v1/auth/siws/verify`, {
|
|
11949
|
+
method: "POST",
|
|
11950
|
+
headers: { "Content-Type": "application/json" },
|
|
11951
|
+
body: JSON.stringify({ walletAddress: args.walletAddress, nonce, signature, appSource: args.appSource })
|
|
11952
|
+
});
|
|
11953
|
+
if (!verifyRes.ok) {
|
|
11954
|
+
const body = await verifyRes.json().catch(() => null);
|
|
11955
|
+
throw new Error(body?.message ?? body?.error ?? "Wallet sign-in failed");
|
|
11956
|
+
}
|
|
11957
|
+
}
|
|
11958
|
+
|
|
11937
11959
|
// src/starknet/funding/chain-transfer.ts
|
|
11938
11960
|
var FundingTransferNotSentError = class extends Error {
|
|
11939
11961
|
constructor(message = "The transfer was not sent.") {
|
|
@@ -12027,14 +12049,14 @@ async function assertTransactionSucceeded(provider, txHash, retryDelaysMs = RECE
|
|
|
12027
12049
|
const receipt = await provider.getTransactionReceipt(txHash);
|
|
12028
12050
|
const status = receipt.execution_status ?? receipt.status;
|
|
12029
12051
|
if (status === "REVERTED" || status === "REJECTED") {
|
|
12030
|
-
throw new
|
|
12052
|
+
throw new chunk46LSYJEM_cjs.UserFacingError("Transaction was submitted but reverted onchain. Please check your balance and try again.");
|
|
12031
12053
|
}
|
|
12032
12054
|
if (status) return receipt;
|
|
12033
12055
|
} catch (err) {
|
|
12034
12056
|
if (err instanceof Error && err.message.includes("reverted onchain")) throw err;
|
|
12035
12057
|
}
|
|
12036
12058
|
}
|
|
12037
|
-
throw new
|
|
12059
|
+
throw new chunk46LSYJEM_cjs.UserFacingError("Verification timed out. Check your account for the transaction status.");
|
|
12038
12060
|
}
|
|
12039
12061
|
async function executeIntent(provider, signer, client, intent, opts = {}) {
|
|
12040
12062
|
let calls;
|
|
@@ -12087,14 +12109,14 @@ function u2563(low, high) {
|
|
|
12087
12109
|
return (BigInt(low ?? 0) + (BigInt(high ?? 0) << 128n)).toString();
|
|
12088
12110
|
}
|
|
12089
12111
|
function deployedCollectionFromReceipt(receipt, service) {
|
|
12090
|
-
const factory =
|
|
12112
|
+
const factory = chunk46LSYJEM_cjs.getService(service)?.onchain?.STARKNET?.factoryAddress;
|
|
12091
12113
|
const { event, address } = DEPLOY_EVENTS[service];
|
|
12092
12114
|
const selector = BigInt(starknet.hash.getSelectorFromName(event));
|
|
12093
12115
|
for (const e of receipt.events ?? []) {
|
|
12094
12116
|
if (factory && !sameFelt(e.from_address, factory)) continue;
|
|
12095
12117
|
if (!sameFelt(e.keys?.[0], selector)) continue;
|
|
12096
12118
|
const value = address(e);
|
|
12097
|
-
if (value) return
|
|
12119
|
+
if (value) return chunk46LSYJEM_cjs.normalizeAddress("STARKNET", value);
|
|
12098
12120
|
}
|
|
12099
12121
|
return null;
|
|
12100
12122
|
}
|
|
@@ -12215,13 +12237,13 @@ function buildRemoveOwnerByGuidCall(accountAddress, ownerGuid) {
|
|
|
12215
12237
|
}
|
|
12216
12238
|
function buildDeployAccountParams(ownerPubkey, salt = 0) {
|
|
12217
12239
|
return {
|
|
12218
|
-
classHash:
|
|
12219
|
-
constructorCalldata:
|
|
12240
|
+
classHash: chunk46LSYJEM_cjs.STARKNET_MEDIAWALLET_CLASS_HASH,
|
|
12241
|
+
constructorCalldata: chunk46LSYJEM_cjs.ownerConstructorCalldata(ownerPubkey),
|
|
12220
12242
|
addressSalt: starknet.num.toHex(salt),
|
|
12221
|
-
contractAddress:
|
|
12243
|
+
contractAddress: chunk46LSYJEM_cjs.computeAccountAddress(ownerPubkey, salt)
|
|
12222
12244
|
};
|
|
12223
12245
|
}
|
|
12224
|
-
var norm = (address) =>
|
|
12246
|
+
var norm = (address) => chunk46LSYJEM_cjs.normalizeAddress("STARKNET", address);
|
|
12225
12247
|
var SIGNER_TYPE_NAMES = ["Starknet", "Secp256k1", "Secp256r1"];
|
|
12226
12248
|
function encodeFeltArray(items) {
|
|
12227
12249
|
return [starknet.num.toHex(items.length), ...items];
|
|
@@ -12418,7 +12440,7 @@ var InvalidRecoveryKeyError = class extends Error {
|
|
|
12418
12440
|
var canonicalAddress = (address) => `0x${BigInt(address).toString(16).padStart(64, "0")}`;
|
|
12419
12441
|
function keyPair(privateKey) {
|
|
12420
12442
|
try {
|
|
12421
|
-
return
|
|
12443
|
+
return chunk46LSYJEM_cjs.starkKeyPairFromPrivateKey(privateKey);
|
|
12422
12444
|
} catch {
|
|
12423
12445
|
throw new InvalidRecoveryKeyError();
|
|
12424
12446
|
}
|
|
@@ -12431,7 +12453,7 @@ function parseRecoveryKey(input) {
|
|
|
12431
12453
|
const trimmed = input.trim();
|
|
12432
12454
|
if (!trimmed.startsWith(PREFIX)) {
|
|
12433
12455
|
const { privateKeyHex, publicKeyHex } = keyPair(trimmed);
|
|
12434
|
-
return { walletAddress:
|
|
12456
|
+
return { walletAddress: chunk46LSYJEM_cjs.computeAccountAddress(publicKeyHex, 0), privateKey: privateKeyHex };
|
|
12435
12457
|
}
|
|
12436
12458
|
const parts = trimmed.slice(PREFIX.length).split(":");
|
|
12437
12459
|
const [walletAddress, privateKey] = parts;
|
|
@@ -12453,7 +12475,7 @@ function describeRecoveryAction(escape) {
|
|
|
12453
12475
|
return "none";
|
|
12454
12476
|
}
|
|
12455
12477
|
function normalizeWalletAddress(address) {
|
|
12456
|
-
return
|
|
12478
|
+
return chunk46LSYJEM_cjs.normalizeAddress("STARKNET", address);
|
|
12457
12479
|
}
|
|
12458
12480
|
function isValidStarknetAddress(address) {
|
|
12459
12481
|
try {
|
|
@@ -12498,7 +12520,7 @@ async function estimateSelfFundedFee(provider, address, calls) {
|
|
|
12498
12520
|
return { feeRaw: estimate.overall_fee, unit: estimate.unit, balanceRaw };
|
|
12499
12521
|
}
|
|
12500
12522
|
async function feeTokenBalance(provider, address, unit) {
|
|
12501
|
-
const token =
|
|
12523
|
+
const token = chunk46LSYJEM_cjs.getTokenBySymbol(unit === "FRI" ? "STRK" : "ETH");
|
|
12502
12524
|
if (!token) throw new Error(`No fee token for unit ${unit}`);
|
|
12503
12525
|
const [low = "0x0", high = "0x0"] = await provider.callContract({
|
|
12504
12526
|
contractAddress: token.address,
|
|
@@ -12530,7 +12552,7 @@ function sponsoredExecutor(deps) {
|
|
|
12530
12552
|
{ proxyUrl: deps.proxyUrl, fetchImpl: deps.fetchImpl },
|
|
12531
12553
|
{
|
|
12532
12554
|
address: userAddress,
|
|
12533
|
-
signTypedData: async (data) =>
|
|
12555
|
+
signTypedData: async (data) => chunk46LSYJEM_cjs.signWithPrivateKey(privateKeyHex, starknet.typedData.getMessageHash(data, userAddress))
|
|
12534
12556
|
},
|
|
12535
12557
|
{ intentIds }
|
|
12536
12558
|
);
|
|
@@ -12590,7 +12612,7 @@ async function deploySelfFunded(input) {
|
|
|
12590
12612
|
});
|
|
12591
12613
|
const { transaction_hash } = await account.deployAccount({
|
|
12592
12614
|
classHash,
|
|
12593
|
-
constructorCalldata:
|
|
12615
|
+
constructorCalldata: chunk46LSYJEM_cjs.ownerConstructorCalldata(input.ownerPubKey),
|
|
12594
12616
|
addressSalt: 0,
|
|
12595
12617
|
contractAddress: input.ownerAddress
|
|
12596
12618
|
});
|
|
@@ -12658,7 +12680,7 @@ async function completeDeployment(deps, onStep, options = {}) {
|
|
|
12658
12680
|
backendUrl: deps.backendUrl,
|
|
12659
12681
|
walletAddress: address,
|
|
12660
12682
|
signer: {
|
|
12661
|
-
signMessage: async (td) =>
|
|
12683
|
+
signMessage: async (td) => chunk46LSYJEM_cjs.signWithPrivateKey(privateKeyHex, starknet.typedData.getMessageHash(td, address))
|
|
12662
12684
|
}
|
|
12663
12685
|
});
|
|
12664
12686
|
deps.store.notifyChange();
|
|
@@ -12757,7 +12779,7 @@ function createMediaWallet(config) {
|
|
|
12757
12779
|
};
|
|
12758
12780
|
const walletIntents = config.walletIntents ?? (async (params) => {
|
|
12759
12781
|
if (!config.backendUrl) throw new Error("This wallet has no backend url configured");
|
|
12760
|
-
const created = await new
|
|
12782
|
+
const created = await new chunk46LSYJEM_cjs.ApiClient(config.backendUrl).createWalletManageIntent(params);
|
|
12761
12783
|
return created.data;
|
|
12762
12784
|
});
|
|
12763
12785
|
const manage = async (sealed, params) => {
|
|
@@ -12774,7 +12796,7 @@ function createMediaWallet(config) {
|
|
|
12774
12796
|
address: sealed.address,
|
|
12775
12797
|
signTypedData: async (data) => {
|
|
12776
12798
|
const privateKeyHex = await unlockOnce(sealed);
|
|
12777
|
-
return
|
|
12799
|
+
return chunk46LSYJEM_cjs.signWithPrivateKey(privateKeyHex, starknet.typedData.getMessageHash(data, sealed.address));
|
|
12778
12800
|
},
|
|
12779
12801
|
execute: async (calls, opts) => {
|
|
12780
12802
|
const { transactionHash } = await run(sealed, calls, void 0, opts?.intentIds);
|
|
@@ -12815,55 +12837,55 @@ async function claimSessionWallet(api, walletAddress, deps) {
|
|
|
12815
12837
|
|
|
12816
12838
|
Object.defineProperty(exports, "InvalidStarkPrivateKeyError", {
|
|
12817
12839
|
enumerable: true,
|
|
12818
|
-
get: function () { return
|
|
12840
|
+
get: function () { return chunk46LSYJEM_cjs.InvalidStarkPrivateKeyError; }
|
|
12819
12841
|
});
|
|
12820
12842
|
Object.defineProperty(exports, "PasskeyCancelledError", {
|
|
12821
12843
|
enumerable: true,
|
|
12822
|
-
get: function () { return
|
|
12844
|
+
get: function () { return chunk46LSYJEM_cjs.PasskeyCancelledError; }
|
|
12823
12845
|
});
|
|
12824
12846
|
Object.defineProperty(exports, "PasskeyUnsupportedError", {
|
|
12825
12847
|
enumerable: true,
|
|
12826
|
-
get: function () { return
|
|
12848
|
+
get: function () { return chunk46LSYJEM_cjs.PasskeyUnsupportedError; }
|
|
12827
12849
|
});
|
|
12828
12850
|
Object.defineProperty(exports, "UserFacingError", {
|
|
12829
12851
|
enumerable: true,
|
|
12830
|
-
get: function () { return
|
|
12852
|
+
get: function () { return chunk46LSYJEM_cjs.UserFacingError; }
|
|
12831
12853
|
});
|
|
12832
12854
|
Object.defineProperty(exports, "computeAccountAddress", {
|
|
12833
12855
|
enumerable: true,
|
|
12834
|
-
get: function () { return
|
|
12856
|
+
get: function () { return chunk46LSYJEM_cjs.computeAccountAddress; }
|
|
12835
12857
|
});
|
|
12836
12858
|
Object.defineProperty(exports, "createPasskeyOwner", {
|
|
12837
12859
|
enumerable: true,
|
|
12838
|
-
get: function () { return
|
|
12860
|
+
get: function () { return chunk46LSYJEM_cjs.createPasskeyOwner; }
|
|
12839
12861
|
});
|
|
12840
12862
|
Object.defineProperty(exports, "deriveAesKey", {
|
|
12841
12863
|
enumerable: true,
|
|
12842
|
-
get: function () { return
|
|
12864
|
+
get: function () { return chunk46LSYJEM_cjs.deriveAesKey; }
|
|
12843
12865
|
});
|
|
12844
12866
|
Object.defineProperty(exports, "generateStarkKeyPair", {
|
|
12845
12867
|
enumerable: true,
|
|
12846
|
-
get: function () { return
|
|
12868
|
+
get: function () { return chunk46LSYJEM_cjs.generateStarkKeyPair; }
|
|
12847
12869
|
});
|
|
12848
12870
|
Object.defineProperty(exports, "ownerConstructorCalldata", {
|
|
12849
12871
|
enumerable: true,
|
|
12850
|
-
get: function () { return
|
|
12872
|
+
get: function () { return chunk46LSYJEM_cjs.ownerConstructorCalldata; }
|
|
12851
12873
|
});
|
|
12852
12874
|
Object.defineProperty(exports, "sealPrivateKey", {
|
|
12853
12875
|
enumerable: true,
|
|
12854
|
-
get: function () { return
|
|
12876
|
+
get: function () { return chunk46LSYJEM_cjs.sealPrivateKey; }
|
|
12855
12877
|
});
|
|
12856
12878
|
Object.defineProperty(exports, "signWithPrivateKey", {
|
|
12857
12879
|
enumerable: true,
|
|
12858
|
-
get: function () { return
|
|
12880
|
+
get: function () { return chunk46LSYJEM_cjs.signWithPrivateKey; }
|
|
12859
12881
|
});
|
|
12860
12882
|
Object.defineProperty(exports, "starkKeyPairFromPrivateKey", {
|
|
12861
12883
|
enumerable: true,
|
|
12862
|
-
get: function () { return
|
|
12884
|
+
get: function () { return chunk46LSYJEM_cjs.starkKeyPairFromPrivateKey; }
|
|
12863
12885
|
});
|
|
12864
12886
|
Object.defineProperty(exports, "unsealPrivateKey", {
|
|
12865
12887
|
enumerable: true,
|
|
12866
|
-
get: function () { return
|
|
12888
|
+
get: function () { return chunk46LSYJEM_cjs.unsealPrivateKey; }
|
|
12867
12889
|
});
|
|
12868
12890
|
exports.COIN_MAX_SUPPLY = MAX_SUPPLY;
|
|
12869
12891
|
exports.COIN_MIN_SUPPLY = MIN_SUPPLY;
|
|
@@ -12993,6 +13015,7 @@ exports.priceToEkuboParams = priceToEkuboParams;
|
|
|
12993
13015
|
exports.readDrop = readDrop;
|
|
12994
13016
|
exports.requestSiwsToken = requestSiwsToken;
|
|
12995
13017
|
exports.selfFundedExecutor = selfFundedExecutor;
|
|
13018
|
+
exports.signInWithWallet = signInWithWallet;
|
|
12996
13019
|
exports.sponsoredExecutor = sponsoredExecutor;
|
|
12997
13020
|
exports.storeSiwsToken = storeSiwsToken;
|
|
12998
13021
|
exports.syncTransactionBestEffort = syncTransactionBestEffort;
|