starknet 6.2.1 → 6.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/CHANGELOG.md +17 -0
- package/dist/index.d.ts +75 -5
- package/dist/index.global.js +334 -22
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +334 -22
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +334 -22
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.global.js
CHANGED
|
@@ -17807,6 +17807,7 @@ var starknet = (() => {
|
|
|
17807
17807
|
formatSpaces: () => formatSpaces,
|
|
17808
17808
|
getSelector: () => getSelector,
|
|
17809
17809
|
getSelectorFromName: () => getSelectorFromName,
|
|
17810
|
+
hashByteCodeSegments: () => hashByteCodeSegments,
|
|
17810
17811
|
keccakBn: () => keccakBn,
|
|
17811
17812
|
poseidon: () => poseidon_exports,
|
|
17812
17813
|
starknetKeccak: () => starknetKeccak
|
|
@@ -18728,13 +18729,23 @@ var starknet = (() => {
|
|
|
18728
18729
|
});
|
|
18729
18730
|
return poseidonHashMany(base2);
|
|
18730
18731
|
}
|
|
18732
|
+
function hashByteCodeSegments(casm) {
|
|
18733
|
+
const byteCode = casm.bytecode.map((n) => BigInt(n));
|
|
18734
|
+
const bytecodeSegmentLengths = casm.bytecode_segment_lengths ?? [];
|
|
18735
|
+
let segmentStart = 0;
|
|
18736
|
+
const hashLeaves = bytecodeSegmentLengths.flatMap((len) => {
|
|
18737
|
+
const segment = byteCode.slice(segmentStart, segmentStart += len);
|
|
18738
|
+
return [BigInt(len), poseidonHashMany(segment)];
|
|
18739
|
+
});
|
|
18740
|
+
return 1n + poseidonHashMany(hashLeaves);
|
|
18741
|
+
}
|
|
18731
18742
|
function computeCompiledClassHash(casm) {
|
|
18732
18743
|
const COMPILED_CLASS_VERSION = "COMPILED_CLASS_V1";
|
|
18733
18744
|
const compiledClassVersion = BigInt(encodeShortString(COMPILED_CLASS_VERSION));
|
|
18734
18745
|
const externalEntryPointsHash = hashEntryPoint(casm.entry_points_by_type.EXTERNAL);
|
|
18735
18746
|
const l1Handlers = hashEntryPoint(casm.entry_points_by_type.L1_HANDLER);
|
|
18736
18747
|
const constructor = hashEntryPoint(casm.entry_points_by_type.CONSTRUCTOR);
|
|
18737
|
-
const bytecode = poseidonHashMany(casm.bytecode.map((it) => BigInt(it)));
|
|
18748
|
+
const bytecode = casm.bytecode_segment_lengths ? hashByteCodeSegments(casm) : poseidonHashMany(casm.bytecode.map((it) => BigInt(it)));
|
|
18738
18749
|
return toHex(
|
|
18739
18750
|
poseidonHashMany([
|
|
18740
18751
|
compiledClassVersion,
|
|
@@ -25034,7 +25045,20 @@ var starknet = (() => {
|
|
|
25034
25045
|
var starknetId_exports = {};
|
|
25035
25046
|
__export(starknetId_exports, {
|
|
25036
25047
|
StarknetIdContract: () => StarknetIdContract,
|
|
25048
|
+
StarknetIdIdentityContract: () => StarknetIdIdentityContract,
|
|
25049
|
+
StarknetIdMulticallContract: () => StarknetIdMulticallContract,
|
|
25050
|
+
StarknetIdPfpContract: () => StarknetIdPfpContract,
|
|
25051
|
+
StarknetIdPopContract: () => StarknetIdPopContract,
|
|
25052
|
+
StarknetIdVerifierContract: () => StarknetIdVerifierContract,
|
|
25053
|
+
dynamicCallData: () => dynamicCallData,
|
|
25054
|
+
dynamicFelt: () => dynamicFelt,
|
|
25055
|
+
execution: () => execution,
|
|
25037
25056
|
getStarknetIdContract: () => getStarknetIdContract,
|
|
25057
|
+
getStarknetIdIdentityContract: () => getStarknetIdIdentityContract,
|
|
25058
|
+
getStarknetIdMulticallContract: () => getStarknetIdMulticallContract,
|
|
25059
|
+
getStarknetIdPfpContract: () => getStarknetIdPfpContract,
|
|
25060
|
+
getStarknetIdPopContract: () => getStarknetIdPopContract,
|
|
25061
|
+
getStarknetIdVerifierContract: () => getStarknetIdVerifierContract,
|
|
25038
25062
|
useDecoded: () => useDecoded,
|
|
25039
25063
|
useEncoded: () => useEncoded
|
|
25040
25064
|
});
|
|
@@ -25122,6 +25146,7 @@ var starknet = (() => {
|
|
|
25122
25146
|
var StarknetIdContract = /* @__PURE__ */ ((StarknetIdContract2) => {
|
|
25123
25147
|
StarknetIdContract2["MAINNET"] = "0x6ac597f8116f886fa1c97a23fa4e08299975ecaf6b598873ca6792b9bbfb678";
|
|
25124
25148
|
StarknetIdContract2["TESTNET"] = "0x3bab268e932d2cecd1946f100ae67ce3dff9fd234119ea2f6da57d16d29fce";
|
|
25149
|
+
StarknetIdContract2["TESTNET_SEPOLIA"] = "0x5847d20f9757de24395a7b3b47303684003753858737bf288716855dfb0aaf2";
|
|
25125
25150
|
return StarknetIdContract2;
|
|
25126
25151
|
})(StarknetIdContract || {});
|
|
25127
25152
|
function getStarknetIdContract(chainId) {
|
|
@@ -25130,10 +25155,121 @@ var starknet = (() => {
|
|
|
25130
25155
|
return "0x6ac597f8116f886fa1c97a23fa4e08299975ecaf6b598873ca6792b9bbfb678" /* MAINNET */;
|
|
25131
25156
|
case "0x534e5f474f45524c49" /* SN_GOERLI */:
|
|
25132
25157
|
return "0x3bab268e932d2cecd1946f100ae67ce3dff9fd234119ea2f6da57d16d29fce" /* TESTNET */;
|
|
25158
|
+
case "0x534e5f5345504f4c4941" /* SN_SEPOLIA */:
|
|
25159
|
+
return "0x5847d20f9757de24395a7b3b47303684003753858737bf288716855dfb0aaf2" /* TESTNET_SEPOLIA */;
|
|
25133
25160
|
default:
|
|
25134
25161
|
throw new Error("Starknet.id is not yet deployed on this network");
|
|
25135
25162
|
}
|
|
25136
25163
|
}
|
|
25164
|
+
var StarknetIdIdentityContract = /* @__PURE__ */ ((StarknetIdIdentityContract2) => {
|
|
25165
|
+
StarknetIdIdentityContract2["MAINNET"] = "0x05dbdedc203e92749e2e746e2d40a768d966bd243df04a6b712e222bc040a9af";
|
|
25166
|
+
StarknetIdIdentityContract2["TESTNET"] = "0x783a9097b26eae0586373b2ce0ed3529ddc44069d1e0fbc4f66d42b69d6850d";
|
|
25167
|
+
StarknetIdIdentityContract2["TESTNET_SEPOLIA"] = "0x718d9172f6e36183abeeff1a0db76a1851cef4ed9b9c13896da79ef4bfcb4d0";
|
|
25168
|
+
return StarknetIdIdentityContract2;
|
|
25169
|
+
})(StarknetIdIdentityContract || {});
|
|
25170
|
+
function getStarknetIdIdentityContract(chainId) {
|
|
25171
|
+
switch (chainId) {
|
|
25172
|
+
case "0x534e5f4d41494e" /* SN_MAIN */:
|
|
25173
|
+
return "0x05dbdedc203e92749e2e746e2d40a768d966bd243df04a6b712e222bc040a9af" /* MAINNET */;
|
|
25174
|
+
case "0x534e5f474f45524c49" /* SN_GOERLI */:
|
|
25175
|
+
return "0x783a9097b26eae0586373b2ce0ed3529ddc44069d1e0fbc4f66d42b69d6850d" /* TESTNET */;
|
|
25176
|
+
case "0x534e5f5345504f4c4941" /* SN_SEPOLIA */:
|
|
25177
|
+
return "0x718d9172f6e36183abeeff1a0db76a1851cef4ed9b9c13896da79ef4bfcb4d0" /* TESTNET_SEPOLIA */;
|
|
25178
|
+
default:
|
|
25179
|
+
throw new Error("Starknet.id verifier contract is not yet deployed on this network");
|
|
25180
|
+
}
|
|
25181
|
+
}
|
|
25182
|
+
var StarknetIdMulticallContract = "0x034ffb8f4452df7a613a0210824d6414dbadcddce6c6e19bf4ddc9e22ce5f970";
|
|
25183
|
+
function getStarknetIdMulticallContract(chainId) {
|
|
25184
|
+
switch (chainId) {
|
|
25185
|
+
case "0x534e5f4d41494e" /* SN_MAIN */:
|
|
25186
|
+
return StarknetIdMulticallContract;
|
|
25187
|
+
case "0x534e5f474f45524c49" /* SN_GOERLI */:
|
|
25188
|
+
return StarknetIdMulticallContract;
|
|
25189
|
+
case "0x534e5f5345504f4c4941" /* SN_SEPOLIA */:
|
|
25190
|
+
return StarknetIdMulticallContract;
|
|
25191
|
+
default:
|
|
25192
|
+
throw new Error("Starknet.id multicall contract is not yet deployed on this network");
|
|
25193
|
+
}
|
|
25194
|
+
}
|
|
25195
|
+
var StarknetIdVerifierContract = /* @__PURE__ */ ((StarknetIdVerifierContract2) => {
|
|
25196
|
+
StarknetIdVerifierContract2["MAINNET"] = "0x07d14dfd8ee95b41fce179170d88ba1f0d5a512e13aeb232f19cfeec0a88f8bf";
|
|
25197
|
+
StarknetIdVerifierContract2["TESTNET"] = "0x057c942544063c3aea6ea6c37009cc9d1beacd750cb6801549a129c7265f0f11";
|
|
25198
|
+
StarknetIdVerifierContract2["TESTNET_SEPOLIA"] = "0x041a78e741e5af2fec34b695679bc6891742439f7afb8484ecd7766661ad02bf";
|
|
25199
|
+
return StarknetIdVerifierContract2;
|
|
25200
|
+
})(StarknetIdVerifierContract || {});
|
|
25201
|
+
function getStarknetIdVerifierContract(chainId) {
|
|
25202
|
+
switch (chainId) {
|
|
25203
|
+
case "0x534e5f4d41494e" /* SN_MAIN */:
|
|
25204
|
+
return "0x07d14dfd8ee95b41fce179170d88ba1f0d5a512e13aeb232f19cfeec0a88f8bf" /* MAINNET */;
|
|
25205
|
+
case "0x534e5f474f45524c49" /* SN_GOERLI */:
|
|
25206
|
+
return "0x057c942544063c3aea6ea6c37009cc9d1beacd750cb6801549a129c7265f0f11" /* TESTNET */;
|
|
25207
|
+
case "0x534e5f5345504f4c4941" /* SN_SEPOLIA */:
|
|
25208
|
+
return "0x041a78e741e5af2fec34b695679bc6891742439f7afb8484ecd7766661ad02bf" /* TESTNET_SEPOLIA */;
|
|
25209
|
+
default:
|
|
25210
|
+
throw new Error("Starknet.id verifier contract is not yet deployed on this network");
|
|
25211
|
+
}
|
|
25212
|
+
}
|
|
25213
|
+
var StarknetIdPfpContract = /* @__PURE__ */ ((StarknetIdPfpContract2) => {
|
|
25214
|
+
StarknetIdPfpContract2["MAINNET"] = "0x070aaa20ec4a46da57c932d9fd89ca5e6bb9ca3188d3df361a32306aff7d59c7";
|
|
25215
|
+
StarknetIdPfpContract2["TESTNET"] = "0x03cac3228b434259734ee0e4ff445f642206ea11adace7e4f45edd2596748698";
|
|
25216
|
+
StarknetIdPfpContract2["TESTNET_SEPOLIA"] = "0x070c035557d6fed57eed2ed7fa861616b487f8a95439347b805639ca076f29f0";
|
|
25217
|
+
return StarknetIdPfpContract2;
|
|
25218
|
+
})(StarknetIdPfpContract || {});
|
|
25219
|
+
function getStarknetIdPfpContract(chainId) {
|
|
25220
|
+
switch (chainId) {
|
|
25221
|
+
case "0x534e5f4d41494e" /* SN_MAIN */:
|
|
25222
|
+
return "0x070aaa20ec4a46da57c932d9fd89ca5e6bb9ca3188d3df361a32306aff7d59c7" /* MAINNET */;
|
|
25223
|
+
case "0x534e5f474f45524c49" /* SN_GOERLI */:
|
|
25224
|
+
return "0x03cac3228b434259734ee0e4ff445f642206ea11adace7e4f45edd2596748698" /* TESTNET */;
|
|
25225
|
+
case "0x534e5f5345504f4c4941" /* SN_SEPOLIA */:
|
|
25226
|
+
return "0x070c035557d6fed57eed2ed7fa861616b487f8a95439347b805639ca076f29f0" /* TESTNET_SEPOLIA */;
|
|
25227
|
+
default:
|
|
25228
|
+
throw new Error(
|
|
25229
|
+
"Starknet.id profile picture verifier contract is not yet deployed on this network"
|
|
25230
|
+
);
|
|
25231
|
+
}
|
|
25232
|
+
}
|
|
25233
|
+
var StarknetIdPopContract = /* @__PURE__ */ ((StarknetIdPopContract2) => {
|
|
25234
|
+
StarknetIdPopContract2["MAINNET"] = "0x0293eb2ba9862f762bd3036586d5755a782bd22e6f5028320f1d0405fd47bff4";
|
|
25235
|
+
StarknetIdPopContract2["TESTNET"] = "0x03528caf090179e337931ee669a5b0214041e1bae30d460ff07d2cea2c7a9106";
|
|
25236
|
+
StarknetIdPopContract2["TESTNET_SEPOLIA"] = "0x00f80f68443becd0e0a4a08ff5734e36dd8028507333e4a0ec034dcfdf1b793e";
|
|
25237
|
+
return StarknetIdPopContract2;
|
|
25238
|
+
})(StarknetIdPopContract || {});
|
|
25239
|
+
function getStarknetIdPopContract(chainId) {
|
|
25240
|
+
switch (chainId) {
|
|
25241
|
+
case "0x534e5f4d41494e" /* SN_MAIN */:
|
|
25242
|
+
return "0x0293eb2ba9862f762bd3036586d5755a782bd22e6f5028320f1d0405fd47bff4" /* MAINNET */;
|
|
25243
|
+
case "0x534e5f474f45524c49" /* SN_GOERLI */:
|
|
25244
|
+
return "0x03528caf090179e337931ee669a5b0214041e1bae30d460ff07d2cea2c7a9106" /* TESTNET */;
|
|
25245
|
+
case "0x534e5f5345504f4c4941" /* SN_SEPOLIA */:
|
|
25246
|
+
return "0x00f80f68443becd0e0a4a08ff5734e36dd8028507333e4a0ec034dcfdf1b793e" /* TESTNET_SEPOLIA */;
|
|
25247
|
+
default:
|
|
25248
|
+
throw new Error(
|
|
25249
|
+
"Starknet.id proof of personhood verifier contract is not yet deployed on this network"
|
|
25250
|
+
);
|
|
25251
|
+
}
|
|
25252
|
+
}
|
|
25253
|
+
function execution(staticEx, ifEqual = void 0, ifNotEqual = void 0) {
|
|
25254
|
+
return new CairoCustomEnum({
|
|
25255
|
+
Static: staticEx,
|
|
25256
|
+
IfEqual: ifEqual ? tuple(ifEqual[0], ifEqual[1], ifEqual[2]) : void 0,
|
|
25257
|
+
IfNotEqual: ifNotEqual ? tuple(ifNotEqual[0], ifNotEqual[1], ifNotEqual[2]) : void 0
|
|
25258
|
+
});
|
|
25259
|
+
}
|
|
25260
|
+
function dynamicFelt(hardcoded, reference = void 0) {
|
|
25261
|
+
return new CairoCustomEnum({
|
|
25262
|
+
Hardcoded: hardcoded,
|
|
25263
|
+
Reference: reference ? tuple(reference[0], reference[1]) : void 0
|
|
25264
|
+
});
|
|
25265
|
+
}
|
|
25266
|
+
function dynamicCallData(hardcoded, reference = void 0, arrayReference = void 0) {
|
|
25267
|
+
return new CairoCustomEnum({
|
|
25268
|
+
Hardcoded: hardcoded,
|
|
25269
|
+
Reference: reference ? tuple(reference[0], reference[1]) : void 0,
|
|
25270
|
+
ArrayReference: arrayReference ? tuple(arrayReference[0], arrayReference[1]) : void 0
|
|
25271
|
+
});
|
|
25272
|
+
}
|
|
25137
25273
|
|
|
25138
25274
|
// src/provider/extensions/starknetId.ts
|
|
25139
25275
|
var StarknetId = class _StarknetId {
|
|
@@ -25153,6 +25289,19 @@ var starknet = (() => {
|
|
|
25153
25289
|
StarknetIdContract2
|
|
25154
25290
|
);
|
|
25155
25291
|
}
|
|
25292
|
+
async getStarkProfile(address, StarknetIdContract2, StarknetIdIdentityContract2, StarknetIdVerifierContract2, StarknetIdPfpContract2, StarknetIdPopContract2, StarknetIdMulticallContract2) {
|
|
25293
|
+
return _StarknetId.getStarkProfile(
|
|
25294
|
+
// After Mixin, this is ProviderInterface
|
|
25295
|
+
this,
|
|
25296
|
+
address,
|
|
25297
|
+
StarknetIdContract2,
|
|
25298
|
+
StarknetIdIdentityContract2,
|
|
25299
|
+
StarknetIdVerifierContract2,
|
|
25300
|
+
StarknetIdPfpContract2,
|
|
25301
|
+
StarknetIdPopContract2,
|
|
25302
|
+
StarknetIdMulticallContract2
|
|
25303
|
+
);
|
|
25304
|
+
}
|
|
25156
25305
|
static async getStarkName(provider, address, StarknetIdContract2) {
|
|
25157
25306
|
const chainId = await provider.getChainId();
|
|
25158
25307
|
const contract = StarknetIdContract2 ?? getStarknetIdContract(chainId);
|
|
@@ -25181,18 +25330,159 @@ var starknet = (() => {
|
|
|
25181
25330
|
const chainId = await provider.getChainId();
|
|
25182
25331
|
const contract = StarknetIdContract2 ?? getStarknetIdContract(chainId);
|
|
25183
25332
|
try {
|
|
25333
|
+
const encodedDomain = name.replace(".stark", "").split(".").map((part) => useEncoded(part).toString(10));
|
|
25184
25334
|
const addressData = await provider.callContract({
|
|
25185
25335
|
contractAddress: contract,
|
|
25186
25336
|
entrypoint: "domain_to_address",
|
|
25187
|
-
calldata: CallData.compile({
|
|
25188
|
-
domain: [useEncoded(name.replace(".stark", "")).toString(10)]
|
|
25189
|
-
})
|
|
25337
|
+
calldata: CallData.compile({ domain: encodedDomain, hint: [] })
|
|
25190
25338
|
});
|
|
25191
25339
|
return addressData[0];
|
|
25192
25340
|
} catch {
|
|
25193
25341
|
throw Error("Could not get address from stark name");
|
|
25194
25342
|
}
|
|
25195
25343
|
}
|
|
25344
|
+
static async getStarkProfile(provider, address, StarknetIdContract2, StarknetIdIdentityContract2, StarknetIdVerifierContract2, StarknetIdPfpContract2, StarknetIdPopContract2, StarknetIdMulticallContract2) {
|
|
25345
|
+
const chainId = await provider.getChainId();
|
|
25346
|
+
const contract = StarknetIdContract2 ?? getStarknetIdContract(chainId);
|
|
25347
|
+
const identityContract = StarknetIdIdentityContract2 ?? getStarknetIdIdentityContract(chainId);
|
|
25348
|
+
const verifierContract = StarknetIdVerifierContract2 ?? getStarknetIdVerifierContract(chainId);
|
|
25349
|
+
const pfpContract = StarknetIdPfpContract2 ?? getStarknetIdPfpContract(chainId);
|
|
25350
|
+
const popContract = StarknetIdPopContract2 ?? getStarknetIdPopContract(chainId);
|
|
25351
|
+
const multicallAddress = StarknetIdMulticallContract2 ?? getStarknetIdMulticallContract(chainId);
|
|
25352
|
+
try {
|
|
25353
|
+
const data = await provider.callContract({
|
|
25354
|
+
contractAddress: multicallAddress,
|
|
25355
|
+
entrypoint: "aggregate",
|
|
25356
|
+
calldata: CallData.compile({
|
|
25357
|
+
calls: [
|
|
25358
|
+
{
|
|
25359
|
+
execution: execution({}),
|
|
25360
|
+
to: dynamicFelt(contract),
|
|
25361
|
+
selector: dynamicFelt(getSelectorFromName("address_to_domain")),
|
|
25362
|
+
calldata: [dynamicCallData(address)]
|
|
25363
|
+
},
|
|
25364
|
+
{
|
|
25365
|
+
execution: execution({}),
|
|
25366
|
+
to: dynamicFelt(contract),
|
|
25367
|
+
selector: dynamicFelt(getSelectorFromName("domain_to_id")),
|
|
25368
|
+
calldata: [dynamicCallData(void 0, void 0, [0, 0])]
|
|
25369
|
+
},
|
|
25370
|
+
{
|
|
25371
|
+
execution: execution({}),
|
|
25372
|
+
to: dynamicFelt(identityContract),
|
|
25373
|
+
selector: dynamicFelt(getSelectorFromName("get_verifier_data")),
|
|
25374
|
+
calldata: [
|
|
25375
|
+
dynamicCallData(void 0, [1, 0]),
|
|
25376
|
+
dynamicCallData(encodeShortString("twitter")),
|
|
25377
|
+
dynamicCallData(verifierContract),
|
|
25378
|
+
dynamicCallData("0")
|
|
25379
|
+
]
|
|
25380
|
+
},
|
|
25381
|
+
{
|
|
25382
|
+
execution: execution({}),
|
|
25383
|
+
to: dynamicFelt(identityContract),
|
|
25384
|
+
selector: dynamicFelt(getSelectorFromName("get_verifier_data")),
|
|
25385
|
+
calldata: [
|
|
25386
|
+
dynamicCallData(void 0, [1, 0]),
|
|
25387
|
+
dynamicCallData(encodeShortString("github")),
|
|
25388
|
+
dynamicCallData(verifierContract),
|
|
25389
|
+
dynamicCallData("0")
|
|
25390
|
+
]
|
|
25391
|
+
},
|
|
25392
|
+
{
|
|
25393
|
+
execution: execution({}),
|
|
25394
|
+
to: dynamicFelt(identityContract),
|
|
25395
|
+
selector: dynamicFelt(getSelectorFromName("get_verifier_data")),
|
|
25396
|
+
calldata: [
|
|
25397
|
+
dynamicCallData(void 0, [1, 0]),
|
|
25398
|
+
dynamicCallData(encodeShortString("discord")),
|
|
25399
|
+
dynamicCallData(verifierContract),
|
|
25400
|
+
dynamicCallData("0")
|
|
25401
|
+
]
|
|
25402
|
+
},
|
|
25403
|
+
{
|
|
25404
|
+
execution: execution({}),
|
|
25405
|
+
to: dynamicFelt(identityContract),
|
|
25406
|
+
selector: dynamicFelt(getSelectorFromName("get_verifier_data")),
|
|
25407
|
+
calldata: [
|
|
25408
|
+
dynamicCallData(void 0, [1, 0]),
|
|
25409
|
+
dynamicCallData(encodeShortString("proof_of_personhood")),
|
|
25410
|
+
dynamicCallData(popContract),
|
|
25411
|
+
dynamicCallData("0")
|
|
25412
|
+
]
|
|
25413
|
+
},
|
|
25414
|
+
// PFP
|
|
25415
|
+
{
|
|
25416
|
+
execution: execution({}),
|
|
25417
|
+
to: dynamicFelt(identityContract),
|
|
25418
|
+
selector: dynamicFelt(getSelectorFromName("get_verifier_data")),
|
|
25419
|
+
calldata: [
|
|
25420
|
+
dynamicCallData(void 0, [1, 0]),
|
|
25421
|
+
dynamicCallData(encodeShortString("nft_pp_contract")),
|
|
25422
|
+
dynamicCallData(pfpContract),
|
|
25423
|
+
dynamicCallData("0")
|
|
25424
|
+
]
|
|
25425
|
+
},
|
|
25426
|
+
{
|
|
25427
|
+
execution: execution({}),
|
|
25428
|
+
to: dynamicFelt(identityContract),
|
|
25429
|
+
selector: dynamicFelt(getSelectorFromName("get_extended_verifier_data")),
|
|
25430
|
+
calldata: [
|
|
25431
|
+
dynamicCallData(void 0, [1, 0]),
|
|
25432
|
+
dynamicCallData(encodeShortString("nft_pp_id")),
|
|
25433
|
+
dynamicCallData("2"),
|
|
25434
|
+
dynamicCallData(pfpContract),
|
|
25435
|
+
dynamicCallData("0")
|
|
25436
|
+
]
|
|
25437
|
+
},
|
|
25438
|
+
{
|
|
25439
|
+
execution: execution(void 0, void 0, [6, 0, 0]),
|
|
25440
|
+
to: dynamicFelt(void 0, [6, 0]),
|
|
25441
|
+
selector: dynamicFelt(getSelectorFromName("tokenURI")),
|
|
25442
|
+
calldata: [dynamicCallData(void 0, [7, 1]), dynamicCallData(void 0, [7, 2])]
|
|
25443
|
+
}
|
|
25444
|
+
]
|
|
25445
|
+
})
|
|
25446
|
+
});
|
|
25447
|
+
if (Array.isArray(data)) {
|
|
25448
|
+
const size = parseInt(data[0], 16);
|
|
25449
|
+
const finalArray = [];
|
|
25450
|
+
let index = 1;
|
|
25451
|
+
for (let i = 0; i < size; i += 1) {
|
|
25452
|
+
if (index < data.length) {
|
|
25453
|
+
const subArraySize = parseInt(data[index], 16);
|
|
25454
|
+
index += 1;
|
|
25455
|
+
const subArray = data.slice(index, index + subArraySize);
|
|
25456
|
+
finalArray.push(subArray);
|
|
25457
|
+
index += subArraySize;
|
|
25458
|
+
} else {
|
|
25459
|
+
break;
|
|
25460
|
+
}
|
|
25461
|
+
}
|
|
25462
|
+
const name = useDecoded(finalArray[0].slice(1).map((hexString) => BigInt(hexString)));
|
|
25463
|
+
const twitter = finalArray[2][0] !== "0x0" ? BigInt(finalArray[2][0]).toString() : void 0;
|
|
25464
|
+
const github = finalArray[3][0] !== "0x0" ? BigInt(finalArray[3][0]).toString() : void 0;
|
|
25465
|
+
const discord = finalArray[4][0] !== "0x0" ? BigInt(finalArray[4][0]).toString() : void 0;
|
|
25466
|
+
const proofOfPersonhood = finalArray[5][0] === "0x1";
|
|
25467
|
+
const profilePictureMetadata = data[0] === "0x9" ? finalArray[8].slice(1).map((val) => decodeShortString(val)).join("") : void 0;
|
|
25468
|
+
const profilePicture = profilePictureMetadata || `https://starknet.id/api/identicons/${BigInt(finalArray[1][0]).toString()}`;
|
|
25469
|
+
return {
|
|
25470
|
+
name,
|
|
25471
|
+
twitter,
|
|
25472
|
+
github,
|
|
25473
|
+
discord,
|
|
25474
|
+
proofOfPersonhood,
|
|
25475
|
+
profilePicture
|
|
25476
|
+
};
|
|
25477
|
+
}
|
|
25478
|
+
throw Error("Error while calling aggregate function");
|
|
25479
|
+
} catch (e) {
|
|
25480
|
+
if (e instanceof Error) {
|
|
25481
|
+
throw e;
|
|
25482
|
+
}
|
|
25483
|
+
throw Error("Could not get user stark profile data from address");
|
|
25484
|
+
}
|
|
25485
|
+
}
|
|
25196
25486
|
};
|
|
25197
25487
|
|
|
25198
25488
|
// src/provider/extensions/default.ts
|
|
@@ -25415,11 +25705,18 @@ var starknet = (() => {
|
|
|
25415
25705
|
return "raw";
|
|
25416
25706
|
}
|
|
25417
25707
|
function encodeType(types, type, revision = "0" /* Legacy */) {
|
|
25418
|
-
const
|
|
25708
|
+
const allTypes = revision === "1" /* Active */ ? { ...types, ...revisionConfiguration[revision].presetTypes } : types;
|
|
25709
|
+
const [primary, ...dependencies] = getDependencies(
|
|
25710
|
+
allTypes,
|
|
25711
|
+
type,
|
|
25712
|
+
void 0,
|
|
25713
|
+
void 0,
|
|
25714
|
+
revision
|
|
25715
|
+
);
|
|
25419
25716
|
const newTypes = !primary ? [] : [primary, ...dependencies.sort()];
|
|
25420
25717
|
const esc = revisionConfiguration[revision].escapeTypeString;
|
|
25421
25718
|
return newTypes.map((dependency) => {
|
|
25422
|
-
const dependencyElements =
|
|
25719
|
+
const dependencyElements = allTypes[dependency].map((t) => {
|
|
25423
25720
|
const targetType = t.type === "enum" && revision === "1" /* Active */ ? t.contains : t.type;
|
|
25424
25721
|
const typeString = targetType.match(/^\(.*\)$/) ? `(${targetType.slice(1, -1).split(",").map((e) => e ? esc(e) : e).join(",")})` : esc(targetType);
|
|
25425
25722
|
return `${esc(t.name)}:${typeString}`;
|
|
@@ -25893,7 +26190,12 @@ var starknet = (() => {
|
|
|
25893
26190
|
return this.estimateInvokeFee(calls, estimateFeeDetails);
|
|
25894
26191
|
}
|
|
25895
26192
|
async estimateInvokeFee(calls, details = {}) {
|
|
25896
|
-
const {
|
|
26193
|
+
const {
|
|
26194
|
+
nonce: providedNonce,
|
|
26195
|
+
blockIdentifier,
|
|
26196
|
+
version: providedVersion,
|
|
26197
|
+
skipValidate = true
|
|
26198
|
+
} = details;
|
|
25897
26199
|
const transactions = Array.isArray(calls) ? calls : [calls];
|
|
25898
26200
|
const nonce = toBigInt(providedNonce ?? await this.getNonce());
|
|
25899
26201
|
const version = toTransactionVersion(
|
|
@@ -25908,7 +26210,8 @@ var starknet = (() => {
|
|
|
25908
26210
|
maxFee: ZERO,
|
|
25909
26211
|
version,
|
|
25910
26212
|
chainId,
|
|
25911
|
-
cairoVersion: await this.getCairoVersion()
|
|
26213
|
+
cairoVersion: await this.getCairoVersion(),
|
|
26214
|
+
skipValidate
|
|
25912
26215
|
};
|
|
25913
26216
|
const invocation = await this.buildInvocation(transactions, signerDetails);
|
|
25914
26217
|
return super.getInvokeEstimateFee(
|
|
@@ -25919,7 +26222,12 @@ var starknet = (() => {
|
|
|
25919
26222
|
);
|
|
25920
26223
|
}
|
|
25921
26224
|
async estimateDeclareFee(payload, details = {}) {
|
|
25922
|
-
const {
|
|
26225
|
+
const {
|
|
26226
|
+
blockIdentifier,
|
|
26227
|
+
nonce: providedNonce,
|
|
26228
|
+
version: providedVersion,
|
|
26229
|
+
skipValidate = true
|
|
26230
|
+
} = details;
|
|
25923
26231
|
const nonce = toBigInt(providedNonce ?? await this.getNonce());
|
|
25924
26232
|
const version = toTransactionVersion(
|
|
25925
26233
|
!isSierra(payload.contract) ? "0x100000000000000000000000000000001" /* F1 */ : this.getPreferredVersion("0x100000000000000000000000000000002" /* F2 */, "0x100000000000000000000000000000003" /* F3 */),
|
|
@@ -25933,8 +26241,9 @@ var starknet = (() => {
|
|
|
25933
26241
|
version,
|
|
25934
26242
|
walletAddress: this.address,
|
|
25935
26243
|
maxFee: ZERO,
|
|
25936
|
-
cairoVersion: void 0
|
|
26244
|
+
cairoVersion: void 0,
|
|
25937
26245
|
// unused parameter
|
|
26246
|
+
skipValidate
|
|
25938
26247
|
});
|
|
25939
26248
|
return super.getDeclareEstimateFee(
|
|
25940
26249
|
declareContractTransaction,
|
|
@@ -25949,7 +26258,7 @@ var starknet = (() => {
|
|
|
25949
26258
|
constructorCalldata = [],
|
|
25950
26259
|
contractAddress
|
|
25951
26260
|
}, details = {}) {
|
|
25952
|
-
const { blockIdentifier, version: providedVersion } = details;
|
|
26261
|
+
const { blockIdentifier, version: providedVersion, skipValidate = true } = details;
|
|
25953
26262
|
const version = toTransactionVersion(
|
|
25954
26263
|
this.getPreferredVersion("0x100000000000000000000000000000001" /* F1 */, "0x100000000000000000000000000000003" /* F3 */),
|
|
25955
26264
|
toFeeVersion(providedVersion)
|
|
@@ -25966,8 +26275,9 @@ var starknet = (() => {
|
|
|
25966
26275
|
walletAddress: this.address,
|
|
25967
26276
|
// unused parameter
|
|
25968
26277
|
maxFee: ZERO,
|
|
25969
|
-
cairoVersion: void 0
|
|
26278
|
+
cairoVersion: void 0,
|
|
25970
26279
|
// unused parameter,
|
|
26280
|
+
skipValidate
|
|
25971
26281
|
}
|
|
25972
26282
|
);
|
|
25973
26283
|
return super.getDeployAccountEstimateFee(
|
|
@@ -26003,7 +26313,7 @@ var starknet = (() => {
|
|
|
26003
26313
|
});
|
|
26004
26314
|
}
|
|
26005
26315
|
async simulateTransaction(invocations, details = {}) {
|
|
26006
|
-
const { nonce, blockIdentifier, skipValidate, skipExecute, version } = details;
|
|
26316
|
+
const { nonce, blockIdentifier, skipValidate = true, skipExecute, version } = details;
|
|
26007
26317
|
const accountInvocations = await this.accountInvocationsFactory(invocations, {
|
|
26008
26318
|
...v3Details(details),
|
|
26009
26319
|
versions: [
|
|
@@ -26015,7 +26325,8 @@ var starknet = (() => {
|
|
|
26015
26325
|
)
|
|
26016
26326
|
],
|
|
26017
26327
|
nonce,
|
|
26018
|
-
blockIdentifier
|
|
26328
|
+
blockIdentifier,
|
|
26329
|
+
skipValidate
|
|
26019
26330
|
});
|
|
26020
26331
|
return super.getSimulateTransaction(accountInvocations, {
|
|
26021
26332
|
blockIdentifier,
|
|
@@ -26301,7 +26612,7 @@ var starknet = (() => {
|
|
|
26301
26612
|
}
|
|
26302
26613
|
async buildInvocation(call, details) {
|
|
26303
26614
|
const calldata = getExecuteCalldata(call, await this.getCairoVersion());
|
|
26304
|
-
const signature = await this.signer.signTransaction(call, details);
|
|
26615
|
+
const signature = !details.skipValidate ? await this.signer.signTransaction(call, details) : [];
|
|
26305
26616
|
return {
|
|
26306
26617
|
...v3Details(details),
|
|
26307
26618
|
contractAddress: this.address,
|
|
@@ -26315,14 +26626,14 @@ var starknet = (() => {
|
|
|
26315
26626
|
if (typeof compiledClassHash === "undefined" && (details.version === "0x100000000000000000000000000000003" /* F3 */ || details.version === "0x3" /* V3 */)) {
|
|
26316
26627
|
throw Error("V3 Transaction work with Cairo1 Contracts and require compiledClassHash");
|
|
26317
26628
|
}
|
|
26318
|
-
const signature = await this.signer.signDeclareTransaction({
|
|
26629
|
+
const signature = !details.skipValidate ? await this.signer.signDeclareTransaction({
|
|
26319
26630
|
...details,
|
|
26320
26631
|
...v3Details(details),
|
|
26321
26632
|
classHash,
|
|
26322
26633
|
compiledClassHash,
|
|
26323
|
-
// TODO: TS
|
|
26634
|
+
// TODO: TS, cast because optional for v2 and required for v3, thrown if not present
|
|
26324
26635
|
senderAddress: details.walletAddress
|
|
26325
|
-
});
|
|
26636
|
+
}) : [];
|
|
26326
26637
|
return {
|
|
26327
26638
|
senderAddress: details.walletAddress,
|
|
26328
26639
|
signature,
|
|
@@ -26338,14 +26649,14 @@ var starknet = (() => {
|
|
|
26338
26649
|
}, details) {
|
|
26339
26650
|
const compiledCalldata = CallData.compile(constructorCalldata);
|
|
26340
26651
|
const contractAddress = providedContractAddress ?? calculateContractAddressFromHash(addressSalt, classHash, compiledCalldata, 0);
|
|
26341
|
-
const signature = await this.signer.signDeployAccountTransaction({
|
|
26652
|
+
const signature = !details.skipValidate ? await this.signer.signDeployAccountTransaction({
|
|
26342
26653
|
...details,
|
|
26343
26654
|
...v3Details(details),
|
|
26344
26655
|
classHash,
|
|
26345
26656
|
contractAddress,
|
|
26346
26657
|
addressSalt,
|
|
26347
26658
|
constructorCalldata: compiledCalldata
|
|
26348
|
-
});
|
|
26659
|
+
}) : [];
|
|
26349
26660
|
return {
|
|
26350
26661
|
...v3Details(details),
|
|
26351
26662
|
classHash,
|
|
@@ -26378,7 +26689,7 @@ var starknet = (() => {
|
|
|
26378
26689
|
return calls;
|
|
26379
26690
|
}
|
|
26380
26691
|
async accountInvocationsFactory(invocations, details) {
|
|
26381
|
-
const { nonce, blockIdentifier } = details;
|
|
26692
|
+
const { nonce, blockIdentifier, skipValidate = true } = details;
|
|
26382
26693
|
const safeNonce = await this.getNonceSafe(nonce);
|
|
26383
26694
|
const chainId = await this.getChainId();
|
|
26384
26695
|
const versions = details.versions.map((it) => toTransactionVersion(it));
|
|
@@ -26394,7 +26705,8 @@ var starknet = (() => {
|
|
|
26394
26705
|
maxFee: ZERO,
|
|
26395
26706
|
chainId,
|
|
26396
26707
|
cairoVersion,
|
|
26397
|
-
version: ""
|
|
26708
|
+
version: "",
|
|
26709
|
+
skipValidate
|
|
26398
26710
|
};
|
|
26399
26711
|
const common2 = {
|
|
26400
26712
|
type: transaction.type,
|