starknet 6.9.0 → 6.10.1
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 +12 -0
- package/LICENSE +1 -1
- package/README.md +5 -9
- package/dist/account/default.cjs +655 -0
- package/dist/account/default.d.ts +67 -0
- package/dist/account/default.mjs +652 -0
- package/dist/account/index.cjs +27 -0
- package/dist/account/index.d.ts +2 -0
- package/dist/account/index.mjs +2 -0
- package/dist/account/interface.cjs +9 -0
- package/dist/account/interface.d.ts +301 -0
- package/dist/account/interface.mjs +3 -0
- package/dist/channel/index.cjs +27 -0
- package/dist/channel/index.d.ts +3 -0
- package/dist/channel/index.mjs +3 -0
- package/dist/channel/rpc_0_6.cjs +607 -0
- package/dist/channel/rpc_0_6.d.ts +78 -0
- package/dist/channel/rpc_0_6.mjs +543 -0
- package/dist/channel/rpc_0_7.cjs +619 -0
- package/dist/channel/rpc_0_7.d.ts +81 -0
- package/dist/channel/rpc_0_7.mjs +561 -0
- package/dist/constants.cjs +76 -0
- package/dist/constants.d.ts +70 -0
- package/dist/constants.mjs +60 -0
- package/dist/contract/contractFactory.cjs +93 -0
- package/dist/contract/contractFactory.d.ts +46 -0
- package/dist/contract/contractFactory.mjs +83 -0
- package/dist/contract/default.cjs +269 -0
- package/dist/contract/default.d.ts +58 -0
- package/dist/contract/default.mjs +254 -0
- package/dist/contract/index.cjs +38 -0
- package/dist/contract/index.d.ts +3 -0
- package/dist/contract/index.mjs +3 -0
- package/dist/contract/interface.cjs +13 -0
- package/dist/contract/interface.d.ts +128 -0
- package/dist/contract/interface.mjs +6 -0
- package/dist/index.cjs +267 -0
- package/dist/index.d.ts +45 -5991
- package/dist/index.global.js +728 -609
- package/dist/index.global.js.map +1 -1
- package/dist/index.mjs +39 -7320
- package/dist/provider/errors.cjs +50 -0
- package/dist/provider/errors.d.ts +16 -0
- package/dist/provider/errors.mjs +35 -0
- package/dist/provider/extensions/default.cjs +11 -0
- package/dist/provider/extensions/default.d.ts +6 -0
- package/dist/provider/extensions/default.mjs +5 -0
- package/dist/provider/extensions/starknetId.cjs +174 -0
- package/dist/provider/extensions/starknetId.d.ts +10 -0
- package/dist/provider/extensions/starknetId.mjs +230 -0
- package/dist/provider/index.cjs +56 -0
- package/dist/provider/index.d.ts +6 -0
- package/dist/provider/index.mjs +6 -0
- package/dist/provider/interface.cjs +8 -0
- package/dist/provider/interface.d.ts +261 -0
- package/dist/provider/interface.mjs +2 -0
- package/dist/provider/rpc.cjs +301 -0
- package/dist/provider/rpc.d.ts +115 -0
- package/dist/provider/rpc.mjs +302 -0
- package/dist/service/types.cjs +1 -0
- package/dist/service/types.d.ts +5 -0
- package/dist/service/types.mjs +0 -0
- package/dist/signer/default.cjs +105 -0
- package/dist/signer/default.d.ts +12 -0
- package/dist/signer/default.mjs +102 -0
- package/dist/signer/ethSigner.cjs +123 -0
- package/dist/signer/ethSigner.d.ts +25 -0
- package/dist/signer/ethSigner.mjs +140 -0
- package/dist/signer/index.cjs +38 -0
- package/dist/signer/index.d.ts +3 -0
- package/dist/signer/index.mjs +3 -0
- package/dist/signer/interface.cjs +8 -0
- package/dist/signer/interface.d.ts +115 -0
- package/dist/signer/interface.mjs +2 -0
- package/dist/types/account.cjs +1 -0
- package/dist/types/account.d.ts +79 -0
- package/dist/types/account.mjs +0 -0
- package/dist/types/api/index.cjs +30 -0
- package/dist/types/api/index.d.ts +4 -0
- package/dist/types/api/index.mjs +4 -0
- package/dist/types/api/jsonrpc/index.cjs +1 -0
- package/dist/types/api/jsonrpc/index.d.ts +21 -0
- package/dist/types/api/jsonrpc/index.mjs +0 -0
- package/dist/types/api/rpcspec_0_6/components.cjs +1 -0
- package/dist/types/api/rpcspec_0_6/components.d.ts +541 -0
- package/dist/types/api/rpcspec_0_6/components.mjs +0 -0
- package/dist/types/api/rpcspec_0_6/contract.cjs +1 -0
- package/dist/types/api/rpcspec_0_6/contract.d.ts +85 -0
- package/dist/types/api/rpcspec_0_6/contract.mjs +0 -0
- package/dist/types/api/rpcspec_0_6/errors.cjs +1 -0
- package/dist/types/api/rpcspec_0_6/errors.d.ts +128 -0
- package/dist/types/api/rpcspec_0_6/errors.mjs +0 -0
- package/dist/types/api/rpcspec_0_6/index.cjs +45 -0
- package/dist/types/api/rpcspec_0_6/index.d.ts +8 -0
- package/dist/types/api/rpcspec_0_6/index.mjs +5 -0
- package/dist/types/api/rpcspec_0_6/methods.cjs +1 -0
- package/dist/types/api/rpcspec_0_6/methods.d.ts +207 -0
- package/dist/types/api/rpcspec_0_6/methods.mjs +0 -0
- package/dist/types/api/rpcspec_0_6/nonspec.cjs +65 -0
- package/dist/types/api/rpcspec_0_6/nonspec.d.ts +147 -0
- package/dist/types/api/rpcspec_0_6/nonspec.mjs +59 -0
- package/dist/types/cairoEnum.cjs +1 -0
- package/dist/types/cairoEnum.d.ts +2 -0
- package/dist/types/cairoEnum.mjs +0 -0
- package/dist/types/calldata.cjs +27 -0
- package/dist/types/calldata.d.ts +23 -0
- package/dist/types/calldata.mjs +21 -0
- package/dist/types/contract.cjs +1 -0
- package/dist/types/contract.d.ts +27 -0
- package/dist/types/contract.mjs +0 -0
- package/dist/types/helpers/valuesType.cjs +1 -0
- package/dist/types/helpers/valuesType.d.ts +1 -0
- package/dist/types/helpers/valuesType.mjs +0 -0
- package/dist/types/index.cjs +121 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/types/index.mjs +10 -0
- package/dist/types/lib/contract/abi.cjs +1 -0
- package/dist/types/lib/contract/abi.d.ts +71 -0
- package/dist/types/lib/contract/abi.mjs +0 -0
- package/dist/types/lib/contract/index.cjs +50 -0
- package/dist/types/lib/contract/index.d.ts +26 -0
- package/dist/types/lib/contract/index.mjs +8 -0
- package/dist/types/lib/contract/legacy.cjs +1 -0
- package/dist/types/lib/contract/legacy.d.ts +33 -0
- package/dist/types/lib/contract/legacy.mjs +0 -0
- package/dist/types/lib/contract/sierra.cjs +1 -0
- package/dist/types/lib/contract/sierra.d.ts +52 -0
- package/dist/types/lib/contract/sierra.mjs +0 -0
- package/dist/types/lib/index.cjs +61 -0
- package/dist/types/lib/index.d.ts +259 -0
- package/dist/types/lib/index.mjs +36 -0
- package/dist/types/provider/configuration.cjs +1 -0
- package/dist/types/provider/configuration.d.ts +20 -0
- package/dist/types/provider/configuration.mjs +0 -0
- package/dist/types/provider/index.cjs +27 -0
- package/dist/types/provider/index.d.ts +2 -0
- package/dist/types/provider/index.mjs +2 -0
- package/dist/types/provider/response.cjs +30 -0
- package/dist/types/provider/response.d.ts +98 -0
- package/dist/types/provider/response.mjs +1 -0
- package/dist/types/provider/spec.cjs +1 -0
- package/dist/types/provider/spec.d.ts +49 -0
- package/dist/types/provider/spec.mjs +0 -0
- package/dist/types/signer.cjs +1 -0
- package/dist/types/signer.d.ts +49 -0
- package/dist/types/signer.mjs +0 -0
- package/dist/types/transactionReceipt.cjs +1 -0
- package/dist/types/transactionReceipt.d.ts +23 -0
- package/dist/types/transactionReceipt.mjs +0 -0
- package/dist/types/typedData.cjs +12 -0
- package/dist/types/typedData.d.ts +1 -0
- package/dist/types/typedData.mjs +3 -0
- package/dist/utils/address.cjs +44 -0
- package/dist/utils/address.d.ts +55 -0
- package/dist/utils/address.mjs +35 -0
- package/dist/utils/assert.cjs +11 -0
- package/dist/utils/assert.d.ts +12 -0
- package/dist/utils/assert.mjs +5 -0
- package/dist/utils/cairoDataTypes/felt.cjs +31 -0
- package/dist/utils/cairoDataTypes/felt.d.ts +6 -0
- package/dist/utils/cairoDataTypes/felt.mjs +27 -0
- package/dist/utils/cairoDataTypes/uint256.cjs +113 -0
- package/dist/utils/cairoDataTypes/uint256.d.ts +72 -0
- package/dist/utils/cairoDataTypes/uint256.mjs +103 -0
- package/dist/utils/cairoDataTypes/uint512.cjs +125 -0
- package/dist/utils/cairoDataTypes/uint512.d.ts +76 -0
- package/dist/utils/cairoDataTypes/uint512.mjs +123 -0
- package/dist/utils/calldata/byteArray.cjs +27 -0
- package/dist/utils/calldata/byteArray.d.ts +32 -0
- package/dist/utils/calldata/byteArray.mjs +20 -0
- package/dist/utils/calldata/cairo.cjs +114 -0
- package/dist/utils/calldata/cairo.d.ts +196 -0
- package/dist/utils/calldata/cairo.mjs +68 -0
- package/dist/utils/calldata/enum/CairoCustomEnum.cjs +55 -0
- package/dist/utils/calldata/enum/CairoCustomEnum.d.ts +38 -0
- package/dist/utils/calldata/enum/CairoCustomEnum.mjs +50 -0
- package/dist/utils/calldata/enum/CairoOption.cjs +55 -0
- package/dist/utils/calldata/enum/CairoOption.d.ts +37 -0
- package/dist/utils/calldata/enum/CairoOption.mjs +50 -0
- package/dist/utils/calldata/enum/CairoResult.cjs +54 -0
- package/dist/utils/calldata/enum/CairoResult.d.ts +36 -0
- package/dist/utils/calldata/enum/CairoResult.mjs +47 -0
- package/dist/utils/calldata/enum/index.cjs +38 -0
- package/dist/utils/calldata/enum/index.d.ts +3 -0
- package/dist/utils/calldata/enum/index.mjs +3 -0
- package/dist/utils/calldata/formatter.cjs +55 -0
- package/dist/utils/calldata/formatter.d.ts +9 -0
- package/dist/utils/calldata/formatter.mjs +58 -0
- package/dist/utils/calldata/index.cjs +272 -0
- package/dist/utils/calldata/index.d.ts +90 -0
- package/dist/utils/calldata/index.mjs +276 -0
- package/dist/utils/calldata/parser/index.cjs +29 -0
- package/dist/utils/calldata/parser/index.d.ts +5 -0
- package/dist/utils/calldata/parser/index.mjs +21 -0
- package/dist/utils/calldata/parser/interface.cjs +8 -0
- package/dist/utils/calldata/parser/interface.d.ts +20 -0
- package/dist/utils/calldata/parser/interface.mjs +2 -0
- package/dist/utils/calldata/parser/parser-0-1.1.0.cjs +38 -0
- package/dist/utils/calldata/parser/parser-0-1.1.0.d.ts +24 -0
- package/dist/utils/calldata/parser/parser-0-1.1.0.mjs +31 -0
- package/dist/utils/calldata/parser/parser-2.0.0.cjs +42 -0
- package/dist/utils/calldata/parser/parser-2.0.0.d.ts +23 -0
- package/dist/utils/calldata/parser/parser-2.0.0.mjs +37 -0
- package/dist/utils/calldata/propertyOrder.cjs +159 -0
- package/dist/utils/calldata/propertyOrder.d.ts +2 -0
- package/dist/utils/calldata/propertyOrder.mjs +189 -0
- package/dist/utils/calldata/requestParser.cjs +204 -0
- package/dist/utils/calldata/requestParser.d.ts +11 -0
- package/dist/utils/calldata/requestParser.mjs +231 -0
- package/dist/utils/calldata/responseParser.cjs +200 -0
- package/dist/utils/calldata/responseParser.d.ts +11 -0
- package/dist/utils/calldata/responseParser.mjs +201 -0
- package/dist/utils/calldata/tuple.cjs +106 -0
- package/dist/utils/calldata/tuple.d.ts +6 -0
- package/dist/utils/calldata/tuple.mjs +88 -0
- package/dist/utils/calldata/validate.cjs +241 -0
- package/dist/utils/calldata/validate.d.ts +6 -0
- package/dist/utils/calldata/validate.mjs +315 -0
- package/dist/utils/contract.cjs +40 -0
- package/dist/utils/contract.d.ts +37 -0
- package/dist/utils/contract.mjs +31 -0
- package/dist/utils/ec.cjs +12 -0
- package/dist/utils/ec.d.ts +2 -0
- package/dist/utils/ec.mjs +2 -0
- package/dist/utils/encode.cjs +78 -0
- package/dist/utils/encode.d.ts +207 -0
- package/dist/utils/encode.mjs +56 -0
- package/dist/utils/eth.cjs +22 -0
- package/dist/utils/eth.d.ts +22 -0
- package/dist/utils/eth.mjs +14 -0
- package/dist/utils/events/index.cjs +144 -0
- package/dist/utils/events/index.d.ts +84 -0
- package/dist/utils/events/index.mjs +136 -0
- package/dist/utils/fetchPonyfill.cjs +14 -0
- package/dist/utils/fetchPonyfill.d.ts +2 -0
- package/dist/utils/fetchPonyfill.mjs +5 -0
- package/dist/utils/hash/classHash.cjs +151 -0
- package/dist/utils/hash/classHash.d.ts +120 -0
- package/dist/utils/hash/classHash.mjs +168 -0
- package/dist/utils/hash/index.cjs +49 -0
- package/dist/utils/hash/index.d.ts +7 -0
- package/dist/utils/hash/index.mjs +4 -0
- package/dist/utils/hash/selector.cjs +37 -0
- package/dist/utils/hash/selector.d.ts +57 -0
- package/dist/utils/hash/selector.mjs +28 -0
- package/dist/utils/hash/transactionHash/index.cjs +38 -0
- package/dist/utils/hash/transactionHash/index.d.ts +81 -0
- package/dist/utils/hash/transactionHash/index.mjs +102 -0
- package/dist/utils/hash/transactionHash/v2.cjs +31 -0
- package/dist/utils/hash/transactionHash/v2.d.ts +34 -0
- package/dist/utils/hash/transactionHash/v2.mjs +57 -0
- package/dist/utils/hash/transactionHash/v3.cjs +45 -0
- package/dist/utils/hash/transactionHash/v3.d.ts +24 -0
- package/dist/utils/hash/transactionHash/v3.mjs +80 -0
- package/dist/utils/json.cjs +21 -0
- package/dist/utils/json.d.ts +50 -0
- package/dist/utils/json.mjs +10 -0
- package/dist/utils/merkle.cjs +118 -0
- package/dist/utils/merkle.d.ts +87 -0
- package/dist/utils/merkle.mjs +114 -0
- package/dist/utils/num.cjs +109 -0
- package/dist/utils/num.d.ts +283 -0
- package/dist/utils/num.mjs +86 -0
- package/dist/utils/provider.cjs +182 -0
- package/dist/utils/provider.d.ts +217 -0
- package/dist/utils/provider.mjs +158 -0
- package/dist/utils/responseParser/index.cjs +27 -0
- package/dist/utils/responseParser/index.d.ts +2 -0
- package/dist/utils/responseParser/index.mjs +2 -0
- package/dist/utils/responseParser/interface.cjs +8 -0
- package/dist/utils/responseParser/interface.d.ts +13 -0
- package/dist/utils/responseParser/interface.mjs +2 -0
- package/dist/utils/responseParser/rpc.cjs +83 -0
- package/dist/utils/responseParser/rpc.d.ts +19 -0
- package/dist/utils/responseParser/rpc.mjs +77 -0
- package/dist/utils/shortString.cjs +56 -0
- package/dist/utils/shortString.d.ts +116 -0
- package/dist/utils/shortString.mjs +39 -0
- package/dist/utils/stark.cjs +137 -0
- package/dist/utils/stark.d.ts +224 -0
- package/dist/utils/stark.mjs +109 -0
- package/dist/utils/starknetId.cjs +196 -0
- package/dist/utils/starknetId.d.ts +182 -0
- package/dist/utils/starknetId.mjs +185 -0
- package/dist/utils/transaction.cjs +115 -0
- package/dist/utils/transaction.d.ts +185 -0
- package/dist/utils/transaction.mjs +98 -0
- package/dist/utils/transactionReceipt.cjs +54 -0
- package/dist/utils/transactionReceipt.d.ts +33 -0
- package/dist/utils/transactionReceipt.mjs +49 -0
- package/dist/utils/typedData.cjs +285 -0
- package/dist/utils/typedData.d.ts +54 -0
- package/dist/utils/typedData.mjs +286 -0
- package/dist/utils/uint256.cjs +30 -0
- package/dist/utils/uint256.d.ts +45 -0
- package/dist/utils/uint256.mjs +11 -0
- package/dist/utils/url.cjs +35 -0
- package/dist/utils/url.d.ts +29 -0
- package/dist/utils/url.mjs +27 -0
- package/dist/wallet/account.cjs +115 -0
- package/dist/wallet/account.d.ts +31 -0
- package/dist/wallet/account.mjs +112 -0
- package/dist/wallet/connect.cjs +90 -0
- package/dist/wallet/connect.d.ts +82 -0
- package/dist/wallet/connect.mjs +64 -0
- package/dist/wallet/index.cjs +16 -0
- package/dist/wallet/index.d.ts +1 -0
- package/dist/wallet/index.mjs +1 -0
- package/dist/wallet/types.cjs +1 -0
- package/dist/wallet/types.d.ts +4 -0
- package/dist/wallet/types.mjs +0 -0
- package/package.json +13 -13
- package/dist/index.js +0 -7426
- package/dist/index.js.map +0 -1
- package/dist/index.mjs.map +0 -1
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.StarknetIdVerifierContract = exports.StarknetIdPopContract = exports.StarknetIdPfpContract = exports.StarknetIdMulticallContract = exports.StarknetIdIdentityContract = exports.StarknetIdContract = void 0;
|
|
7
|
+
exports.dynamicCallData = dynamicCallData;
|
|
8
|
+
exports.dynamicFelt = dynamicFelt;
|
|
9
|
+
exports.execution = execution;
|
|
10
|
+
exports.getStarknetIdContract = getStarknetIdContract;
|
|
11
|
+
exports.getStarknetIdIdentityContract = getStarknetIdIdentityContract;
|
|
12
|
+
exports.getStarknetIdMulticallContract = getStarknetIdMulticallContract;
|
|
13
|
+
exports.getStarknetIdPfpContract = getStarknetIdPfpContract;
|
|
14
|
+
exports.getStarknetIdPopContract = getStarknetIdPopContract;
|
|
15
|
+
exports.getStarknetIdVerifierContract = getStarknetIdVerifierContract;
|
|
16
|
+
exports.useDecoded = useDecoded;
|
|
17
|
+
exports.useEncoded = useEncoded;
|
|
18
|
+
var _constants = require("../constants.cjs");
|
|
19
|
+
var _cairo = require("./calldata/cairo.cjs");
|
|
20
|
+
var _CairoCustomEnum = require("./calldata/enum/CairoCustomEnum.cjs");
|
|
21
|
+
const basicAlphabet = "abcdefghijklmnopqrstuvwxyz0123456789-";
|
|
22
|
+
const basicSizePlusOne = BigInt(basicAlphabet.length + 1);
|
|
23
|
+
const bigAlphabet = "\u8FD9\u6765";
|
|
24
|
+
const basicAlphabetSize = BigInt(basicAlphabet.length);
|
|
25
|
+
const bigAlphabetSize = BigInt(bigAlphabet.length);
|
|
26
|
+
const bigAlphabetSizePlusOne = BigInt(bigAlphabet.length + 1);
|
|
27
|
+
function extractStars(str) {
|
|
28
|
+
let k = 0;
|
|
29
|
+
while (str.endsWith(bigAlphabet[bigAlphabet.length - 1])) {
|
|
30
|
+
str = str.substring(0, str.length - 1);
|
|
31
|
+
k += 1;
|
|
32
|
+
}
|
|
33
|
+
return [str, k];
|
|
34
|
+
}
|
|
35
|
+
function useDecoded(encoded) {
|
|
36
|
+
let decoded = "";
|
|
37
|
+
encoded.forEach(subdomain => {
|
|
38
|
+
while (subdomain !== _constants.ZERO) {
|
|
39
|
+
const code = subdomain % basicSizePlusOne;
|
|
40
|
+
subdomain /= basicSizePlusOne;
|
|
41
|
+
if (code === BigInt(basicAlphabet.length)) {
|
|
42
|
+
const nextSubdomain = subdomain / bigAlphabetSizePlusOne;
|
|
43
|
+
if (nextSubdomain === _constants.ZERO) {
|
|
44
|
+
const code2 = subdomain % bigAlphabetSizePlusOne;
|
|
45
|
+
subdomain = nextSubdomain;
|
|
46
|
+
if (code2 === _constants.ZERO) decoded += basicAlphabet[0];else decoded += bigAlphabet[Number(code2) - 1];
|
|
47
|
+
} else {
|
|
48
|
+
const code2 = subdomain % bigAlphabetSize;
|
|
49
|
+
decoded += bigAlphabet[Number(code2)];
|
|
50
|
+
subdomain /= bigAlphabetSize;
|
|
51
|
+
}
|
|
52
|
+
} else decoded += basicAlphabet[Number(code)];
|
|
53
|
+
}
|
|
54
|
+
const [str, k] = extractStars(decoded);
|
|
55
|
+
if (k) decoded = str + (k % 2 === 0 ? bigAlphabet[bigAlphabet.length - 1].repeat(k / 2 - 1) + bigAlphabet[0] + basicAlphabet[1] : bigAlphabet[bigAlphabet.length - 1].repeat((k - 1) / 2 + 1));
|
|
56
|
+
decoded += ".";
|
|
57
|
+
});
|
|
58
|
+
if (!decoded) {
|
|
59
|
+
return decoded;
|
|
60
|
+
}
|
|
61
|
+
return decoded.concat("stark");
|
|
62
|
+
}
|
|
63
|
+
function useEncoded(decoded) {
|
|
64
|
+
let encoded = BigInt(0);
|
|
65
|
+
let multiplier = BigInt(1);
|
|
66
|
+
if (decoded.endsWith(bigAlphabet[0] + basicAlphabet[1])) {
|
|
67
|
+
const [str, k] = extractStars(decoded.substring(0, decoded.length - 2));
|
|
68
|
+
decoded = str + bigAlphabet[bigAlphabet.length - 1].repeat(2 * (k + 1));
|
|
69
|
+
} else {
|
|
70
|
+
const [str, k] = extractStars(decoded);
|
|
71
|
+
if (k) decoded = str + bigAlphabet[bigAlphabet.length - 1].repeat(1 + 2 * (k - 1));
|
|
72
|
+
}
|
|
73
|
+
for (let i = 0; i < decoded.length; i += 1) {
|
|
74
|
+
const char = decoded[i];
|
|
75
|
+
const index = basicAlphabet.indexOf(char);
|
|
76
|
+
const bnIndex = BigInt(basicAlphabet.indexOf(char));
|
|
77
|
+
if (index !== -1) {
|
|
78
|
+
if (i === decoded.length - 1 && decoded[i] === basicAlphabet[0]) {
|
|
79
|
+
encoded += multiplier * basicAlphabetSize;
|
|
80
|
+
multiplier *= basicSizePlusOne;
|
|
81
|
+
multiplier *= basicSizePlusOne;
|
|
82
|
+
} else {
|
|
83
|
+
encoded += multiplier * bnIndex;
|
|
84
|
+
multiplier *= basicSizePlusOne;
|
|
85
|
+
}
|
|
86
|
+
} else if (bigAlphabet.indexOf(char) !== -1) {
|
|
87
|
+
encoded += multiplier * basicAlphabetSize;
|
|
88
|
+
multiplier *= basicSizePlusOne;
|
|
89
|
+
const newid = (i === decoded.length - 1 ? 1 : 0) + bigAlphabet.indexOf(char);
|
|
90
|
+
encoded += multiplier * BigInt(newid);
|
|
91
|
+
multiplier *= bigAlphabetSize;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return encoded;
|
|
95
|
+
}
|
|
96
|
+
const StarknetIdContract = exports.StarknetIdContract = {
|
|
97
|
+
MAINNET: "0x6ac597f8116f886fa1c97a23fa4e08299975ecaf6b598873ca6792b9bbfb678",
|
|
98
|
+
TESTNET_SEPOLIA: "0x154bc2e1af9260b9e66af0e9c46fc757ff893b3ff6a85718a810baf1474"
|
|
99
|
+
};
|
|
100
|
+
function getStarknetIdContract(chainId) {
|
|
101
|
+
switch (chainId) {
|
|
102
|
+
case _constants.StarknetChainId.SN_MAIN:
|
|
103
|
+
return StarknetIdContract.MAINNET;
|
|
104
|
+
case _constants.StarknetChainId.SN_SEPOLIA:
|
|
105
|
+
return StarknetIdContract.TESTNET_SEPOLIA;
|
|
106
|
+
default:
|
|
107
|
+
throw new Error("Starknet.id is not yet deployed on this network");
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
const StarknetIdIdentityContract = exports.StarknetIdIdentityContract = {
|
|
111
|
+
MAINNET: "0x05dbdedc203e92749e2e746e2d40a768d966bd243df04a6b712e222bc040a9af",
|
|
112
|
+
TESTNET_SEPOLIA: "0x3697660a0981d734780731949ecb2b4a38d6a58fc41629ed611e8defda"
|
|
113
|
+
};
|
|
114
|
+
function getStarknetIdIdentityContract(chainId) {
|
|
115
|
+
switch (chainId) {
|
|
116
|
+
case _constants.StarknetChainId.SN_MAIN:
|
|
117
|
+
return StarknetIdIdentityContract.MAINNET;
|
|
118
|
+
case _constants.StarknetChainId.SN_SEPOLIA:
|
|
119
|
+
return StarknetIdIdentityContract.TESTNET_SEPOLIA;
|
|
120
|
+
default:
|
|
121
|
+
throw new Error("Starknet.id verifier contract is not yet deployed on this network");
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
const StarknetIdMulticallContract = exports.StarknetIdMulticallContract = "0x034ffb8f4452df7a613a0210824d6414dbadcddce6c6e19bf4ddc9e22ce5f970";
|
|
125
|
+
function getStarknetIdMulticallContract(chainId) {
|
|
126
|
+
switch (chainId) {
|
|
127
|
+
case _constants.StarknetChainId.SN_MAIN:
|
|
128
|
+
return StarknetIdMulticallContract;
|
|
129
|
+
case _constants.StarknetChainId.SN_SEPOLIA:
|
|
130
|
+
return StarknetIdMulticallContract;
|
|
131
|
+
default:
|
|
132
|
+
throw new Error("Starknet.id multicall contract is not yet deployed on this network");
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
const StarknetIdVerifierContract = exports.StarknetIdVerifierContract = {
|
|
136
|
+
MAINNET: "0x07d14dfd8ee95b41fce179170d88ba1f0d5a512e13aeb232f19cfeec0a88f8bf",
|
|
137
|
+
TESTNET_SEPOLIA: "0x60B94fEDe525f815AE5E8377A463e121C787cCCf3a36358Aa9B18c12c4D566"
|
|
138
|
+
};
|
|
139
|
+
function getStarknetIdVerifierContract(chainId) {
|
|
140
|
+
switch (chainId) {
|
|
141
|
+
case _constants.StarknetChainId.SN_MAIN:
|
|
142
|
+
return StarknetIdVerifierContract.MAINNET;
|
|
143
|
+
case _constants.StarknetChainId.SN_SEPOLIA:
|
|
144
|
+
return StarknetIdVerifierContract.TESTNET_SEPOLIA;
|
|
145
|
+
default:
|
|
146
|
+
throw new Error("Starknet.id verifier contract is not yet deployed on this network");
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
const StarknetIdPfpContract = exports.StarknetIdPfpContract = {
|
|
150
|
+
MAINNET: "0x070aaa20ec4a46da57c932d9fd89ca5e6bb9ca3188d3df361a32306aff7d59c7",
|
|
151
|
+
TESTNET_SEPOLIA: "0x9e7bdb8dabd02ea8cfc23b1d1c5278e46490f193f87516ed5ff2dfec02"
|
|
152
|
+
};
|
|
153
|
+
function getStarknetIdPfpContract(chainId) {
|
|
154
|
+
switch (chainId) {
|
|
155
|
+
case _constants.StarknetChainId.SN_MAIN:
|
|
156
|
+
return StarknetIdPfpContract.MAINNET;
|
|
157
|
+
case _constants.StarknetChainId.SN_SEPOLIA:
|
|
158
|
+
return StarknetIdPfpContract.TESTNET_SEPOLIA;
|
|
159
|
+
default:
|
|
160
|
+
throw new Error("Starknet.id profile picture verifier contract is not yet deployed on this network");
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
const StarknetIdPopContract = exports.StarknetIdPopContract = {
|
|
164
|
+
MAINNET: "0x0293eb2ba9862f762bd3036586d5755a782bd22e6f5028320f1d0405fd47bff4",
|
|
165
|
+
TESTNET_SEPOLIA: "0x15ae88ae054caa74090b89025c1595683f12edf7a4ed2ad0274de3e1d4a"
|
|
166
|
+
};
|
|
167
|
+
function getStarknetIdPopContract(chainId) {
|
|
168
|
+
switch (chainId) {
|
|
169
|
+
case _constants.StarknetChainId.SN_MAIN:
|
|
170
|
+
return StarknetIdPopContract.MAINNET;
|
|
171
|
+
case _constants.StarknetChainId.SN_SEPOLIA:
|
|
172
|
+
return StarknetIdPopContract.TESTNET_SEPOLIA;
|
|
173
|
+
default:
|
|
174
|
+
throw new Error("Starknet.id proof of personhood verifier contract is not yet deployed on this network");
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
function execution(staticEx, ifEqual = void 0, ifNotEqual = void 0) {
|
|
178
|
+
return new _CairoCustomEnum.CairoCustomEnum({
|
|
179
|
+
Static: staticEx,
|
|
180
|
+
IfEqual: ifEqual ? (0, _cairo.tuple)(ifEqual[0], ifEqual[1], ifEqual[2]) : void 0,
|
|
181
|
+
IfNotEqual: ifNotEqual ? (0, _cairo.tuple)(ifNotEqual[0], ifNotEqual[1], ifNotEqual[2]) : void 0
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
function dynamicFelt(hardcoded, reference = void 0) {
|
|
185
|
+
return new _CairoCustomEnum.CairoCustomEnum({
|
|
186
|
+
Hardcoded: hardcoded,
|
|
187
|
+
Reference: reference ? (0, _cairo.tuple)(reference[0], reference[1]) : void 0
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
function dynamicCallData(hardcoded, reference = void 0, arrayReference = void 0) {
|
|
191
|
+
return new _CairoCustomEnum.CairoCustomEnum({
|
|
192
|
+
Hardcoded: hardcoded,
|
|
193
|
+
Reference: reference ? (0, _cairo.tuple)(reference[0], reference[1]) : void 0,
|
|
194
|
+
ArrayReference: arrayReference ? (0, _cairo.tuple)(arrayReference[0], arrayReference[1]) : void 0
|
|
195
|
+
});
|
|
196
|
+
}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import { StarknetChainId } from '../constants';
|
|
2
|
+
import { BigNumberish } from '../types';
|
|
3
|
+
import { CairoCustomEnum } from './calldata/enum/CairoCustomEnum';
|
|
4
|
+
/**
|
|
5
|
+
* Decodes an array of BigInts into a string using the given algorithm.
|
|
6
|
+
* @param {bigint[]} encoded The encoded array of BigInts.
|
|
7
|
+
* @return {string} The decoded string.
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* const result = starknetId.useDecoded([3015206943634620n]);
|
|
11
|
+
* // result = "starknetjs.stark"
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export declare function useDecoded(encoded: bigint[]): string;
|
|
15
|
+
/**
|
|
16
|
+
* Encodes a string into a bigint value.
|
|
17
|
+
*
|
|
18
|
+
* @param {string} decoded The string to be encoded.
|
|
19
|
+
* @returns {bigint} The encoded bigint value.
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* const result = starknetId.useEncoded("starknet.js");
|
|
23
|
+
* // result = 3015206943634620n
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare function useEncoded(decoded: string): bigint;
|
|
27
|
+
export declare const StarknetIdContract: {
|
|
28
|
+
readonly MAINNET: "0x6ac597f8116f886fa1c97a23fa4e08299975ecaf6b598873ca6792b9bbfb678";
|
|
29
|
+
readonly TESTNET_SEPOLIA: "0x154bc2e1af9260b9e66af0e9c46fc757ff893b3ff6a85718a810baf1474";
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Returns the Starknet ID contract address based on the provided chain ID.
|
|
33
|
+
*
|
|
34
|
+
* @param {StarknetChainId} chainId The chain ID of the Starknet network.
|
|
35
|
+
* @return {string} The Starknet ID contract address.
|
|
36
|
+
* @throws {Error} Throws an error if the Starknet ID contract is not deployed on the network.
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* const result = starknetId.getStarknetIdContract(constants.StarknetChainId.SN_SEPOLIA);
|
|
40
|
+
* // result = "0x154bc2e1af9260b9e66af0e9c46fc757ff893b3ff6a85718a810baf1474"
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export declare function getStarknetIdContract(chainId: StarknetChainId): string;
|
|
44
|
+
export declare const StarknetIdIdentityContract: {
|
|
45
|
+
readonly MAINNET: "0x05dbdedc203e92749e2e746e2d40a768d966bd243df04a6b712e222bc040a9af";
|
|
46
|
+
readonly TESTNET_SEPOLIA: "0x3697660a0981d734780731949ecb2b4a38d6a58fc41629ed611e8defda";
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Returns the Starknet ID identity contract address for the given chain ID.
|
|
50
|
+
*
|
|
51
|
+
* @param {StarknetChainId} chainId The chain ID for the specified network.
|
|
52
|
+
*
|
|
53
|
+
* @return {string} The Starknet ID identity contract address for the specified network.
|
|
54
|
+
*
|
|
55
|
+
* @throws {Error} If the Starknet ID verifier contract is not deployed on the network.
|
|
56
|
+
* @example
|
|
57
|
+
* ```typescript
|
|
58
|
+
* const result = starknetId.getStarknetIdIdentityContract(constants.StarknetChainId.SN_SEPOLIA);
|
|
59
|
+
* // result = "0x3697660a0981d734780731949ecb2b4a38d6a58fc41629ed611e8defda"
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export declare function getStarknetIdIdentityContract(chainId: StarknetChainId): string;
|
|
63
|
+
export declare const StarknetIdMulticallContract = "0x034ffb8f4452df7a613a0210824d6414dbadcddce6c6e19bf4ddc9e22ce5f970";
|
|
64
|
+
/**
|
|
65
|
+
* Returns the Starknet.id multicall contract address based on the provided chainId.
|
|
66
|
+
*
|
|
67
|
+
* @param {StarknetChainId} chainId - The chainId of the network.
|
|
68
|
+
* @return {string} - The address of the Starknet.id multicall contract.
|
|
69
|
+
* @throws {Error} - If the Starknet.id multicall contract is not deployed on the network.
|
|
70
|
+
* @example
|
|
71
|
+
* ```typescript
|
|
72
|
+
* const result = starknetId.getStarknetIdMulticallContract(constants.StarknetChainId.SN_SEPOLIA);
|
|
73
|
+
* // result = "0x034ffb8f4452df7a613a0210824d6414dbadcddce6c6e19bf4ddc9e22ce5f970"
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
export declare function getStarknetIdMulticallContract(chainId: StarknetChainId): string;
|
|
77
|
+
export declare const StarknetIdVerifierContract: {
|
|
78
|
+
readonly MAINNET: "0x07d14dfd8ee95b41fce179170d88ba1f0d5a512e13aeb232f19cfeec0a88f8bf";
|
|
79
|
+
readonly TESTNET_SEPOLIA: "0x60B94fEDe525f815AE5E8377A463e121C787cCCf3a36358Aa9B18c12c4D566";
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* Returns the address of the Starknet ID Verifier contract based on the specified chain ID.
|
|
83
|
+
*
|
|
84
|
+
* @param {StarknetChainId} chainId - The ID of the Starknet chain.
|
|
85
|
+
* @return {string} - The address of the Starknet ID Verifier contract.
|
|
86
|
+
* @throws {Error} - If the Starknet ID Verifier contract is not deployed on the specified network.
|
|
87
|
+
* @example
|
|
88
|
+
* ```typescript
|
|
89
|
+
* const result = starknetId.getStarknetIdVerifierContract(constants.StarknetChainId.SN_SEPOLIA);
|
|
90
|
+
* // result = "0x60B94fEDe525f815AE5E8377A463e121C787cCCf3a36358Aa9B18c12c4D566"
|
|
91
|
+
* ```
|
|
92
|
+
*/
|
|
93
|
+
export declare function getStarknetIdVerifierContract(chainId: StarknetChainId): string;
|
|
94
|
+
export declare const StarknetIdPfpContract: {
|
|
95
|
+
readonly MAINNET: "0x070aaa20ec4a46da57c932d9fd89ca5e6bb9ca3188d3df361a32306aff7d59c7";
|
|
96
|
+
readonly TESTNET_SEPOLIA: "0x9e7bdb8dabd02ea8cfc23b1d1c5278e46490f193f87516ed5ff2dfec02";
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* Retrieves the contract address of the Starknet.id profile picture verifier contract based on the given chain ID.
|
|
100
|
+
*
|
|
101
|
+
* @param {StarknetChainId} chainId - The chain ID of the network.
|
|
102
|
+
* @returns {string} - The contract address of the Starknet.id profile picture verifier contract.
|
|
103
|
+
* @throws {Error} - Throws an error if the Starknet.id profile picture verifier contract is not yet deployed on the network.
|
|
104
|
+
* @example
|
|
105
|
+
* ```typescript
|
|
106
|
+
* const result = starknetId.getStarknetIdPfpContract(constants.StarknetChainId.SN_SEPOLIA);
|
|
107
|
+
* // result = "0x9e7bdb8dabd02ea8cfc23b1d1c5278e46490f193f87516ed5ff2dfec02"
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
export declare function getStarknetIdPfpContract(chainId: StarknetChainId): string;
|
|
111
|
+
export declare const StarknetIdPopContract: {
|
|
112
|
+
readonly MAINNET: "0x0293eb2ba9862f762bd3036586d5755a782bd22e6f5028320f1d0405fd47bff4";
|
|
113
|
+
readonly TESTNET_SEPOLIA: "0x15ae88ae054caa74090b89025c1595683f12edf7a4ed2ad0274de3e1d4a";
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* Retrieves the Starknet ID Proof of Personhood (IdPop) verifier contract address for the given chain ID.
|
|
117
|
+
*
|
|
118
|
+
* @param {StarknetChainId} chainId - The chain ID of the Starknet network.
|
|
119
|
+
* @return {string} - The Starknet ID Pop contract address.
|
|
120
|
+
* @throws {Error} - If the Starknet ID Pop contract is not deployed on the specified network.
|
|
121
|
+
* @example
|
|
122
|
+
* ```typescript
|
|
123
|
+
* const result = starknetId.getStarknetIdPopContract(constants.StarknetChainId.SN_SEPOLIA);
|
|
124
|
+
* // result = "0x15ae88ae054caa74090b89025c1595683f12edf7a4ed2ad0274de3e1d4a"
|
|
125
|
+
* ```
|
|
126
|
+
*/
|
|
127
|
+
export declare function getStarknetIdPopContract(chainId: StarknetChainId): string;
|
|
128
|
+
/**
|
|
129
|
+
* Returns a CairoCustomEnum object.
|
|
130
|
+
*
|
|
131
|
+
* Functions to build CairoCustomEnum for multiCall contracts
|
|
132
|
+
* @param {Object} [staticEx] An optional object defining the "Static" value of the CairoCustomEnum.
|
|
133
|
+
* @param {number[]} [ifEqual] An optional array defining the "IfEqual" value of the CairoCustomEnum.
|
|
134
|
+
* @param {number[]} [ifNotEqual] An optional array defining the "IfNotEqual" value of the CairoCustomEnum.
|
|
135
|
+
* @return {CairoCustomEnum} - The created CairoCustomEnum object.
|
|
136
|
+
* @example
|
|
137
|
+
* ```typescript
|
|
138
|
+
* const result: CairoCustomEnum = starknetId.execution(undefined, [1, 2, 3], undefined);
|
|
139
|
+
* // result = CairoCustomEnum {
|
|
140
|
+
* // variant: {
|
|
141
|
+
* // Static: undefined,
|
|
142
|
+
* // IfEqual: { '0': 1, '1': 2, '2': 3 },
|
|
143
|
+
* // IfNotEqual: undefined
|
|
144
|
+
* // }
|
|
145
|
+
* // }
|
|
146
|
+
* ```
|
|
147
|
+
*/
|
|
148
|
+
export declare function execution(staticEx: {} | undefined, ifEqual?: number[] | undefined, ifNotEqual?: number[] | undefined): CairoCustomEnum;
|
|
149
|
+
/**
|
|
150
|
+
* Creates a new instance of CairoCustomEnum.
|
|
151
|
+
*
|
|
152
|
+
* @param {BigNumberish} [hardcoded] The hardcoded value for the CairoCustomEnum.
|
|
153
|
+
* @param {number[]} [reference] The reference array for the CairoCustomEnum.
|
|
154
|
+
* @returns {CairoCustomEnum} The new instance of CairoCustomEnum.
|
|
155
|
+
* @example
|
|
156
|
+
* ```typescript
|
|
157
|
+
* const result: CairoCustomEnum = starknetId.dynamicFelt(undefined, [1, 2]);
|
|
158
|
+
* // result = CairoCustomEnum {
|
|
159
|
+
* // variant: { Hardcoded: undefined, Reference: { '0': 1, '1': 2 } }
|
|
160
|
+
* // }
|
|
161
|
+
* ```
|
|
162
|
+
*/
|
|
163
|
+
export declare function dynamicFelt(hardcoded: BigNumberish | undefined, reference?: number[] | undefined): CairoCustomEnum;
|
|
164
|
+
/**
|
|
165
|
+
* Creates a new instance of CairoCustomEnum with the given parameters.
|
|
166
|
+
* @param {BigNumberish} [hardcoded] The hardcoded value.
|
|
167
|
+
* @param {BigNumberish[]} [reference] The reference value (optional).
|
|
168
|
+
* @param {BigNumberish[]} [arrayReference] The array reference value (optional).
|
|
169
|
+
* @return {CairoCustomEnum} The new instance of CairoCustomEnum.
|
|
170
|
+
* @example
|
|
171
|
+
* ```typescript
|
|
172
|
+
* const result: CairoCustomEnum = starknetId.dynamicCallData(undefined, [1, 2], undefined);
|
|
173
|
+
* // result = CairoCustomEnum {
|
|
174
|
+
* // variant: {
|
|
175
|
+
* // Hardcoded: undefined,
|
|
176
|
+
* // Reference: { '0': 1, '1': 2 },
|
|
177
|
+
* // ArrayReference: undefined
|
|
178
|
+
* // }
|
|
179
|
+
* // }
|
|
180
|
+
* ```
|
|
181
|
+
*/
|
|
182
|
+
export declare function dynamicCallData(hardcoded: BigNumberish | undefined, reference?: BigNumberish[] | undefined, arrayReference?: BigNumberish[] | undefined): CairoCustomEnum;
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { StarknetChainId, ZERO } from "../constants.mjs";
|
|
2
|
+
import { tuple } from "./calldata/cairo.mjs";
|
|
3
|
+
import { CairoCustomEnum } from "./calldata/enum/CairoCustomEnum.mjs";
|
|
4
|
+
const basicAlphabet = "abcdefghijklmnopqrstuvwxyz0123456789-";
|
|
5
|
+
const basicSizePlusOne = BigInt(basicAlphabet.length + 1);
|
|
6
|
+
const bigAlphabet = "\u8FD9\u6765";
|
|
7
|
+
const basicAlphabetSize = BigInt(basicAlphabet.length);
|
|
8
|
+
const bigAlphabetSize = BigInt(bigAlphabet.length);
|
|
9
|
+
const bigAlphabetSizePlusOne = BigInt(bigAlphabet.length + 1);
|
|
10
|
+
function extractStars(str) {
|
|
11
|
+
let k = 0;
|
|
12
|
+
while (str.endsWith(bigAlphabet[bigAlphabet.length - 1])) {
|
|
13
|
+
str = str.substring(0, str.length - 1);
|
|
14
|
+
k += 1;
|
|
15
|
+
}
|
|
16
|
+
return [str, k];
|
|
17
|
+
}
|
|
18
|
+
export function useDecoded(encoded) {
|
|
19
|
+
let decoded = "";
|
|
20
|
+
encoded.forEach((subdomain) => {
|
|
21
|
+
while (subdomain !== ZERO) {
|
|
22
|
+
const code = subdomain % basicSizePlusOne;
|
|
23
|
+
subdomain /= basicSizePlusOne;
|
|
24
|
+
if (code === BigInt(basicAlphabet.length)) {
|
|
25
|
+
const nextSubdomain = subdomain / bigAlphabetSizePlusOne;
|
|
26
|
+
if (nextSubdomain === ZERO) {
|
|
27
|
+
const code2 = subdomain % bigAlphabetSizePlusOne;
|
|
28
|
+
subdomain = nextSubdomain;
|
|
29
|
+
if (code2 === ZERO) decoded += basicAlphabet[0];
|
|
30
|
+
else decoded += bigAlphabet[Number(code2) - 1];
|
|
31
|
+
} else {
|
|
32
|
+
const code2 = subdomain % bigAlphabetSize;
|
|
33
|
+
decoded += bigAlphabet[Number(code2)];
|
|
34
|
+
subdomain /= bigAlphabetSize;
|
|
35
|
+
}
|
|
36
|
+
} else decoded += basicAlphabet[Number(code)];
|
|
37
|
+
}
|
|
38
|
+
const [str, k] = extractStars(decoded);
|
|
39
|
+
if (k)
|
|
40
|
+
decoded = str + (k % 2 === 0 ? bigAlphabet[bigAlphabet.length - 1].repeat(k / 2 - 1) + bigAlphabet[0] + basicAlphabet[1] : bigAlphabet[bigAlphabet.length - 1].repeat((k - 1) / 2 + 1));
|
|
41
|
+
decoded += ".";
|
|
42
|
+
});
|
|
43
|
+
if (!decoded) {
|
|
44
|
+
return decoded;
|
|
45
|
+
}
|
|
46
|
+
return decoded.concat("stark");
|
|
47
|
+
}
|
|
48
|
+
export function useEncoded(decoded) {
|
|
49
|
+
let encoded = BigInt(0);
|
|
50
|
+
let multiplier = BigInt(1);
|
|
51
|
+
if (decoded.endsWith(bigAlphabet[0] + basicAlphabet[1])) {
|
|
52
|
+
const [str, k] = extractStars(decoded.substring(0, decoded.length - 2));
|
|
53
|
+
decoded = str + bigAlphabet[bigAlphabet.length - 1].repeat(2 * (k + 1));
|
|
54
|
+
} else {
|
|
55
|
+
const [str, k] = extractStars(decoded);
|
|
56
|
+
if (k) decoded = str + bigAlphabet[bigAlphabet.length - 1].repeat(1 + 2 * (k - 1));
|
|
57
|
+
}
|
|
58
|
+
for (let i = 0; i < decoded.length; i += 1) {
|
|
59
|
+
const char = decoded[i];
|
|
60
|
+
const index = basicAlphabet.indexOf(char);
|
|
61
|
+
const bnIndex = BigInt(basicAlphabet.indexOf(char));
|
|
62
|
+
if (index !== -1) {
|
|
63
|
+
if (i === decoded.length - 1 && decoded[i] === basicAlphabet[0]) {
|
|
64
|
+
encoded += multiplier * basicAlphabetSize;
|
|
65
|
+
multiplier *= basicSizePlusOne;
|
|
66
|
+
multiplier *= basicSizePlusOne;
|
|
67
|
+
} else {
|
|
68
|
+
encoded += multiplier * bnIndex;
|
|
69
|
+
multiplier *= basicSizePlusOne;
|
|
70
|
+
}
|
|
71
|
+
} else if (bigAlphabet.indexOf(char) !== -1) {
|
|
72
|
+
encoded += multiplier * basicAlphabetSize;
|
|
73
|
+
multiplier *= basicSizePlusOne;
|
|
74
|
+
const newid = (i === decoded.length - 1 ? 1 : 0) + bigAlphabet.indexOf(char);
|
|
75
|
+
encoded += multiplier * BigInt(newid);
|
|
76
|
+
multiplier *= bigAlphabetSize;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return encoded;
|
|
80
|
+
}
|
|
81
|
+
export const StarknetIdContract = {
|
|
82
|
+
MAINNET: "0x6ac597f8116f886fa1c97a23fa4e08299975ecaf6b598873ca6792b9bbfb678",
|
|
83
|
+
TESTNET_SEPOLIA: "0x154bc2e1af9260b9e66af0e9c46fc757ff893b3ff6a85718a810baf1474"
|
|
84
|
+
};
|
|
85
|
+
export function getStarknetIdContract(chainId) {
|
|
86
|
+
switch (chainId) {
|
|
87
|
+
case StarknetChainId.SN_MAIN:
|
|
88
|
+
return StarknetIdContract.MAINNET;
|
|
89
|
+
case StarknetChainId.SN_SEPOLIA:
|
|
90
|
+
return StarknetIdContract.TESTNET_SEPOLIA;
|
|
91
|
+
default:
|
|
92
|
+
throw new Error("Starknet.id is not yet deployed on this network");
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
export const StarknetIdIdentityContract = {
|
|
96
|
+
MAINNET: "0x05dbdedc203e92749e2e746e2d40a768d966bd243df04a6b712e222bc040a9af",
|
|
97
|
+
TESTNET_SEPOLIA: "0x3697660a0981d734780731949ecb2b4a38d6a58fc41629ed611e8defda"
|
|
98
|
+
};
|
|
99
|
+
export function getStarknetIdIdentityContract(chainId) {
|
|
100
|
+
switch (chainId) {
|
|
101
|
+
case StarknetChainId.SN_MAIN:
|
|
102
|
+
return StarknetIdIdentityContract.MAINNET;
|
|
103
|
+
case StarknetChainId.SN_SEPOLIA:
|
|
104
|
+
return StarknetIdIdentityContract.TESTNET_SEPOLIA;
|
|
105
|
+
default:
|
|
106
|
+
throw new Error("Starknet.id verifier contract is not yet deployed on this network");
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
export const StarknetIdMulticallContract = "0x034ffb8f4452df7a613a0210824d6414dbadcddce6c6e19bf4ddc9e22ce5f970";
|
|
110
|
+
export function getStarknetIdMulticallContract(chainId) {
|
|
111
|
+
switch (chainId) {
|
|
112
|
+
case StarknetChainId.SN_MAIN:
|
|
113
|
+
return StarknetIdMulticallContract;
|
|
114
|
+
case StarknetChainId.SN_SEPOLIA:
|
|
115
|
+
return StarknetIdMulticallContract;
|
|
116
|
+
default:
|
|
117
|
+
throw new Error("Starknet.id multicall contract is not yet deployed on this network");
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
export const StarknetIdVerifierContract = {
|
|
121
|
+
MAINNET: "0x07d14dfd8ee95b41fce179170d88ba1f0d5a512e13aeb232f19cfeec0a88f8bf",
|
|
122
|
+
TESTNET_SEPOLIA: "0x60B94fEDe525f815AE5E8377A463e121C787cCCf3a36358Aa9B18c12c4D566"
|
|
123
|
+
};
|
|
124
|
+
export function getStarknetIdVerifierContract(chainId) {
|
|
125
|
+
switch (chainId) {
|
|
126
|
+
case StarknetChainId.SN_MAIN:
|
|
127
|
+
return StarknetIdVerifierContract.MAINNET;
|
|
128
|
+
case StarknetChainId.SN_SEPOLIA:
|
|
129
|
+
return StarknetIdVerifierContract.TESTNET_SEPOLIA;
|
|
130
|
+
default:
|
|
131
|
+
throw new Error("Starknet.id verifier contract is not yet deployed on this network");
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
export const StarknetIdPfpContract = {
|
|
135
|
+
MAINNET: "0x070aaa20ec4a46da57c932d9fd89ca5e6bb9ca3188d3df361a32306aff7d59c7",
|
|
136
|
+
TESTNET_SEPOLIA: "0x9e7bdb8dabd02ea8cfc23b1d1c5278e46490f193f87516ed5ff2dfec02"
|
|
137
|
+
};
|
|
138
|
+
export function getStarknetIdPfpContract(chainId) {
|
|
139
|
+
switch (chainId) {
|
|
140
|
+
case StarknetChainId.SN_MAIN:
|
|
141
|
+
return StarknetIdPfpContract.MAINNET;
|
|
142
|
+
case StarknetChainId.SN_SEPOLIA:
|
|
143
|
+
return StarknetIdPfpContract.TESTNET_SEPOLIA;
|
|
144
|
+
default:
|
|
145
|
+
throw new Error(
|
|
146
|
+
"Starknet.id profile picture verifier contract is not yet deployed on this network"
|
|
147
|
+
);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
export const StarknetIdPopContract = {
|
|
151
|
+
MAINNET: "0x0293eb2ba9862f762bd3036586d5755a782bd22e6f5028320f1d0405fd47bff4",
|
|
152
|
+
TESTNET_SEPOLIA: "0x15ae88ae054caa74090b89025c1595683f12edf7a4ed2ad0274de3e1d4a"
|
|
153
|
+
};
|
|
154
|
+
export function getStarknetIdPopContract(chainId) {
|
|
155
|
+
switch (chainId) {
|
|
156
|
+
case StarknetChainId.SN_MAIN:
|
|
157
|
+
return StarknetIdPopContract.MAINNET;
|
|
158
|
+
case StarknetChainId.SN_SEPOLIA:
|
|
159
|
+
return StarknetIdPopContract.TESTNET_SEPOLIA;
|
|
160
|
+
default:
|
|
161
|
+
throw new Error(
|
|
162
|
+
"Starknet.id proof of personhood verifier contract is not yet deployed on this network"
|
|
163
|
+
);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
export function execution(staticEx, ifEqual = void 0, ifNotEqual = void 0) {
|
|
167
|
+
return new CairoCustomEnum({
|
|
168
|
+
Static: staticEx,
|
|
169
|
+
IfEqual: ifEqual ? tuple(ifEqual[0], ifEqual[1], ifEqual[2]) : void 0,
|
|
170
|
+
IfNotEqual: ifNotEqual ? tuple(ifNotEqual[0], ifNotEqual[1], ifNotEqual[2]) : void 0
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
export function dynamicFelt(hardcoded, reference = void 0) {
|
|
174
|
+
return new CairoCustomEnum({
|
|
175
|
+
Hardcoded: hardcoded,
|
|
176
|
+
Reference: reference ? tuple(reference[0], reference[1]) : void 0
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
export function dynamicCallData(hardcoded, reference = void 0, arrayReference = void 0) {
|
|
180
|
+
return new CairoCustomEnum({
|
|
181
|
+
Hardcoded: hardcoded,
|
|
182
|
+
Reference: reference ? tuple(reference[0], reference[1]) : void 0,
|
|
183
|
+
ArrayReference: arrayReference ? tuple(arrayReference[0], arrayReference[1]) : void 0
|
|
184
|
+
});
|
|
185
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.buildUDCCall = buildUDCCall;
|
|
7
|
+
exports.getExecuteCalldata = exports.fromCallsToExecuteCalldata_cairo1 = exports.fromCallsToExecuteCalldataWithNonce = exports.fromCallsToExecuteCalldata = void 0;
|
|
8
|
+
exports.getVersionsByType = getVersionsByType;
|
|
9
|
+
exports.transformCallsToMulticallArrays_cairo1 = exports.transformCallsToMulticallArrays = void 0;
|
|
10
|
+
var _constants = require("../constants.cjs");
|
|
11
|
+
var _api = require("../types/api/index.cjs");
|
|
12
|
+
var _calldata = require("./calldata/index.cjs");
|
|
13
|
+
var _ec = require("./ec.cjs");
|
|
14
|
+
var _hash = require("./hash/index.cjs");
|
|
15
|
+
var _num = require("./num.cjs");
|
|
16
|
+
var _stark = require("./stark.cjs");
|
|
17
|
+
const transformCallsToMulticallArrays = calls => {
|
|
18
|
+
const callArray = [];
|
|
19
|
+
const calldata = [];
|
|
20
|
+
calls.forEach(call => {
|
|
21
|
+
const data = _calldata.CallData.compile(call.calldata || []);
|
|
22
|
+
callArray.push({
|
|
23
|
+
to: (0, _num.toBigInt)(call.contractAddress).toString(10),
|
|
24
|
+
selector: (0, _num.toBigInt)((0, _hash.getSelectorFromName)(call.entrypoint)).toString(10),
|
|
25
|
+
data_offset: calldata.length.toString(),
|
|
26
|
+
data_len: data.length.toString()
|
|
27
|
+
});
|
|
28
|
+
calldata.push(...data);
|
|
29
|
+
});
|
|
30
|
+
return {
|
|
31
|
+
callArray,
|
|
32
|
+
calldata: _calldata.CallData.compile({
|
|
33
|
+
calldata
|
|
34
|
+
})
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
exports.transformCallsToMulticallArrays = transformCallsToMulticallArrays;
|
|
38
|
+
const fromCallsToExecuteCalldata = calls => {
|
|
39
|
+
const {
|
|
40
|
+
callArray,
|
|
41
|
+
calldata
|
|
42
|
+
} = transformCallsToMulticallArrays(calls);
|
|
43
|
+
const compiledCalls = _calldata.CallData.compile({
|
|
44
|
+
callArray
|
|
45
|
+
});
|
|
46
|
+
return [...compiledCalls, ...calldata];
|
|
47
|
+
};
|
|
48
|
+
exports.fromCallsToExecuteCalldata = fromCallsToExecuteCalldata;
|
|
49
|
+
const fromCallsToExecuteCalldataWithNonce = (calls, nonce) => {
|
|
50
|
+
return [...fromCallsToExecuteCalldata(calls), (0, _num.toBigInt)(nonce).toString()];
|
|
51
|
+
};
|
|
52
|
+
exports.fromCallsToExecuteCalldataWithNonce = fromCallsToExecuteCalldataWithNonce;
|
|
53
|
+
const transformCallsToMulticallArrays_cairo1 = calls => {
|
|
54
|
+
const callArray = calls.map(call => ({
|
|
55
|
+
to: (0, _num.toBigInt)(call.contractAddress).toString(10),
|
|
56
|
+
selector: (0, _num.toBigInt)((0, _hash.getSelectorFromName)(call.entrypoint)).toString(10),
|
|
57
|
+
calldata: _calldata.CallData.compile(call.calldata || [])
|
|
58
|
+
}));
|
|
59
|
+
return callArray;
|
|
60
|
+
};
|
|
61
|
+
exports.transformCallsToMulticallArrays_cairo1 = transformCallsToMulticallArrays_cairo1;
|
|
62
|
+
const fromCallsToExecuteCalldata_cairo1 = calls => {
|
|
63
|
+
const orderCalls = calls.map(call => ({
|
|
64
|
+
contractAddress: call.contractAddress,
|
|
65
|
+
entrypoint: call.entrypoint,
|
|
66
|
+
calldata: Array.isArray(call.calldata) && "__compiled__" in call.calldata ? call.calldata : _calldata.CallData.compile(call.calldata)
|
|
67
|
+
// RawArgsObject | RawArgsArray type
|
|
68
|
+
}));
|
|
69
|
+
return _calldata.CallData.compile({
|
|
70
|
+
orderCalls
|
|
71
|
+
});
|
|
72
|
+
};
|
|
73
|
+
exports.fromCallsToExecuteCalldata_cairo1 = fromCallsToExecuteCalldata_cairo1;
|
|
74
|
+
const getExecuteCalldata = (calls, cairoVersion = "0") => {
|
|
75
|
+
if (cairoVersion === "1") {
|
|
76
|
+
return fromCallsToExecuteCalldata_cairo1(calls);
|
|
77
|
+
}
|
|
78
|
+
return fromCallsToExecuteCalldata(calls);
|
|
79
|
+
};
|
|
80
|
+
exports.getExecuteCalldata = getExecuteCalldata;
|
|
81
|
+
function buildUDCCall(payload, address) {
|
|
82
|
+
const params = [].concat(payload).map(it => {
|
|
83
|
+
const {
|
|
84
|
+
classHash,
|
|
85
|
+
salt,
|
|
86
|
+
unique = true,
|
|
87
|
+
constructorCalldata = []
|
|
88
|
+
} = it;
|
|
89
|
+
const compiledConstructorCallData = _calldata.CallData.compile(constructorCalldata);
|
|
90
|
+
const deploySalt = salt ?? (0, _stark.randomAddress)();
|
|
91
|
+
return {
|
|
92
|
+
call: {
|
|
93
|
+
contractAddress: _constants.UDC.ADDRESS,
|
|
94
|
+
entrypoint: _constants.UDC.ENTRYPOINT,
|
|
95
|
+
calldata: [classHash, deploySalt, (0, _num.toCairoBool)(unique), compiledConstructorCallData.length, ...compiledConstructorCallData]
|
|
96
|
+
},
|
|
97
|
+
address: (0, _hash.calculateContractAddressFromHash)(unique ? _ec.starkCurve.pedersen(address, deploySalt) : deploySalt, classHash, compiledConstructorCallData, unique ? _constants.UDC.ADDRESS : 0)
|
|
98
|
+
};
|
|
99
|
+
});
|
|
100
|
+
return {
|
|
101
|
+
calls: params.map(it => it.call),
|
|
102
|
+
addresses: params.map(it => it.address)
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
function getVersionsByType(versionType) {
|
|
106
|
+
return versionType === "fee" ? {
|
|
107
|
+
v1: _api.ETransactionVersion.F1,
|
|
108
|
+
v2: _api.ETransactionVersion.F2,
|
|
109
|
+
v3: _api.ETransactionVersion.F3
|
|
110
|
+
} : {
|
|
111
|
+
v1: _api.ETransactionVersion.V1,
|
|
112
|
+
v2: _api.ETransactionVersion.V2,
|
|
113
|
+
v3: _api.ETransactionVersion.V3
|
|
114
|
+
};
|
|
115
|
+
}
|