@zoralabs/protocol-sdk 0.7.0 → 0.7.2-ALLOWLIST.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 +12 -0
- package/dist/allow-list/allow-list-client.d.ts +25 -0
- package/dist/allow-list/allow-list-client.d.ts.map +1 -0
- package/dist/allow-list/types.d.ts +14 -0
- package/dist/allow-list/types.d.ts.map +1 -0
- package/dist/apis/generated/allow-list-api-types.d.ts +288 -0
- package/dist/apis/generated/allow-list-api-types.d.ts.map +1 -0
- package/dist/apis/http-api-base.d.ts.map +1 -1
- package/dist/create/1155-create-helper.d.ts +1 -0
- package/dist/create/1155-create-helper.d.ts.map +1 -1
- package/dist/create/token-setup.d.ts +3 -4
- package/dist/create/token-setup.d.ts.map +1 -1
- package/dist/create/types.d.ts +24 -4
- package/dist/create/types.d.ts.map +1 -1
- package/dist/index.cjs +1388 -54
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1382 -51
- package/dist/index.js.map +1 -1
- package/dist/ipfs/arweave.d.ts +3 -0
- package/dist/ipfs/arweave.d.ts.map +1 -0
- package/dist/ipfs/gateway.d.ts +4 -0
- package/dist/ipfs/gateway.d.ts.map +1 -0
- package/dist/ipfs/index.d.ts +4 -0
- package/dist/ipfs/index.d.ts.map +1 -0
- package/dist/ipfs/ipfs.d.ts +5 -0
- package/dist/ipfs/ipfs.d.ts.map +1 -0
- package/dist/ipfs/mimeTypes.d.ts +25 -0
- package/dist/ipfs/mimeTypes.d.ts.map +1 -0
- package/dist/ipfs/text-metadata.d.ts +5 -0
- package/dist/ipfs/text-metadata.d.ts.map +1 -0
- package/dist/ipfs/token-metadata.d.ts +14 -0
- package/dist/ipfs/token-metadata.d.ts.map +1 -0
- package/dist/ipfs/types.d.ts +49 -0
- package/dist/ipfs/types.d.ts.map +1 -0
- package/dist/mint/mint-queries.d.ts +3 -1
- package/dist/mint/mint-queries.d.ts.map +1 -1
- package/dist/mint/mint-transactions.d.ts +5 -3
- package/dist/mint/mint-transactions.d.ts.map +1 -1
- package/dist/mint/subgraph-mint-getter.d.ts.map +1 -1
- package/dist/mint/subgraph-queries.d.ts +27 -13
- package/dist/mint/subgraph-queries.d.ts.map +1 -1
- package/dist/mint/types.d.ts +22 -11
- package/dist/mint/types.d.ts.map +1 -1
- package/dist/premint/premint-client.d.ts +2 -1
- package/dist/premint/premint-client.d.ts.map +1 -1
- package/package.json +3 -1
- package/src/allow-list/allow-list-client.ts +102 -0
- package/src/allow-list/types.ts +15 -0
- package/src/apis/generated/allow-list-api-types.ts +288 -0
- package/src/apis/http-api-base.ts +12 -0
- package/src/create/1155-create-helper.ts +17 -0
- package/src/create/token-setup.ts +116 -19
- package/src/create/types.ts +32 -4
- package/src/index.ts +6 -0
- package/src/ipfs/arweave.ts +5 -0
- package/src/ipfs/gateway.ts +48 -0
- package/src/ipfs/index.ts +7 -0
- package/src/ipfs/ipfs.ts +82 -0
- package/src/ipfs/mimeTypes.ts +141 -0
- package/src/ipfs/text-metadata.ts +128 -0
- package/src/ipfs/token-metadata.ts +99 -0
- package/src/ipfs/types.ts +54 -0
- package/src/mint/mint-queries.ts +6 -0
- package/src/mint/mint-transactions.ts +72 -6
- package/src/mint/subgraph-mint-getter.ts +12 -3
- package/src/mint/subgraph-queries.ts +39 -17
- package/src/mint/types.ts +38 -12
- package/src/premint/premint-client.ts +9 -1
- package/yarn-error.log +8602 -0
- package/.turbo/turbo-build.log +0 -15
- package/src/create/1155-create-helper.test.ts +0 -325
- package/src/mint/mint-client.test.ts +0 -263
- package/src/mints/mints-contracts.test.ts +0 -529
- package/src/mints/mints-eth-unwrapper-and-caller.test.ts +0 -467
- package/src/mints/mints-queries.test.ts +0 -105
- package/src/premint/premint-client.test.ts +0 -290
- package/src/premint/preminter.test.ts +0 -866
- package/test-integration/setup-test-contracts.ts +0 -96
- package/tsconfig.build.json +0 -10
- package/tsup.config.ts +0 -12
package/dist/index.js
CHANGED
|
@@ -42,8 +42,8 @@ import { parseAbi } from "viem";
|
|
|
42
42
|
var ZORA_API_BASE = "https://api.zora.co/";
|
|
43
43
|
var OPEN_EDITION_MINT_SIZE = BigInt("18446744073709551615");
|
|
44
44
|
var SUBGRAPH_CONFIG_BASE = "https://api.goldsky.com/api/public/project_clhk16b61ay9t49vm6ntn4mkz/subgraphs";
|
|
45
|
-
function getSubgraph(name,
|
|
46
|
-
return `${SUBGRAPH_CONFIG_BASE}/${name}/${
|
|
45
|
+
function getSubgraph(name, version2) {
|
|
46
|
+
return `${SUBGRAPH_CONFIG_BASE}/${name}/${version2}/gn`;
|
|
47
47
|
}
|
|
48
48
|
var zora721Abi = parseAbi([
|
|
49
49
|
"function mintWithRewards(address recipient, uint256 quantity, string calldata comment, address mintReferral) external payable",
|
|
@@ -346,7 +346,7 @@ function migratePremintConfigToV2({
|
|
|
346
346
|
};
|
|
347
347
|
}
|
|
348
348
|
var recoverCreatorFromCreatorAttribution = async ({
|
|
349
|
-
creatorAttribution: { version, domainName, structHash, signature },
|
|
349
|
+
creatorAttribution: { version: version2, domainName, structHash, signature },
|
|
350
350
|
chainId,
|
|
351
351
|
tokenContract
|
|
352
352
|
}) => {
|
|
@@ -355,7 +355,7 @@ var recoverCreatorFromCreatorAttribution = async ({
|
|
|
355
355
|
chainId,
|
|
356
356
|
name: domainName,
|
|
357
357
|
verifyingContract: tokenContract,
|
|
358
|
-
version
|
|
358
|
+
version: version2
|
|
359
359
|
},
|
|
360
360
|
types: {
|
|
361
361
|
EIP712Domain: [
|
|
@@ -391,11 +391,11 @@ var supportedPremintVersions = async ({
|
|
|
391
391
|
});
|
|
392
392
|
};
|
|
393
393
|
var supportsPremintVersion = async ({
|
|
394
|
-
version,
|
|
394
|
+
version: version2,
|
|
395
395
|
tokenContract,
|
|
396
396
|
publicClient
|
|
397
397
|
}) => {
|
|
398
|
-
return (await supportedPremintVersions({ tokenContract, publicClient })).includes(
|
|
398
|
+
return (await supportedPremintVersions({ tokenContract, publicClient })).includes(version2);
|
|
399
399
|
};
|
|
400
400
|
async function getPremintCollectionAddress({
|
|
401
401
|
publicClient,
|
|
@@ -419,7 +419,7 @@ async function getPremintCollectionAddress({
|
|
|
419
419
|
}
|
|
420
420
|
function applyUpdateToPremint({
|
|
421
421
|
uid,
|
|
422
|
-
version,
|
|
422
|
+
version: version2,
|
|
423
423
|
tokenConfig,
|
|
424
424
|
tokenConfigUpdates
|
|
425
425
|
}) {
|
|
@@ -430,7 +430,7 @@ function applyUpdateToPremint({
|
|
|
430
430
|
const result = {
|
|
431
431
|
deleted: false,
|
|
432
432
|
uid,
|
|
433
|
-
version:
|
|
433
|
+
version: version2 + 1,
|
|
434
434
|
tokenConfig: updatedTokenConfig
|
|
435
435
|
};
|
|
436
436
|
return result;
|
|
@@ -580,14 +580,20 @@ var get = async (url) => {
|
|
|
580
580
|
return await response.json();
|
|
581
581
|
};
|
|
582
582
|
var post = async (url, data) => {
|
|
583
|
+
const controller = new AbortController();
|
|
584
|
+
const { signal } = controller;
|
|
585
|
+
const timeout = 30 * 60 * 1e3;
|
|
586
|
+
const timeoutId = setTimeout(() => controller.abort(), timeout);
|
|
583
587
|
const response = await fetch(url, {
|
|
584
588
|
method: "POST",
|
|
585
589
|
headers: {
|
|
586
590
|
"content-type": "application/json",
|
|
587
591
|
accept: "application/json"
|
|
588
592
|
},
|
|
589
|
-
body: JSON.stringify(data)
|
|
593
|
+
body: JSON.stringify(data),
|
|
594
|
+
signal
|
|
590
595
|
});
|
|
596
|
+
clearTimeout(timeoutId);
|
|
591
597
|
if (response.status !== 200) {
|
|
592
598
|
let json;
|
|
593
599
|
try {
|
|
@@ -673,6 +679,12 @@ fragment SaleStrategy on SalesStrategyConfig {
|
|
|
673
679
|
saleStart
|
|
674
680
|
maxTokensPerAddress
|
|
675
681
|
}
|
|
682
|
+
presale {
|
|
683
|
+
address
|
|
684
|
+
presaleStart
|
|
685
|
+
presaleEnd
|
|
686
|
+
merkleRoot
|
|
687
|
+
}
|
|
676
688
|
}`;
|
|
677
689
|
var TOKEN_FRAGMENT = `
|
|
678
690
|
fragment Token on ZoraCreateToken {
|
|
@@ -682,7 +694,7 @@ fragment Token on ZoraCreateToken {
|
|
|
682
694
|
totalMinted
|
|
683
695
|
maxSupply
|
|
684
696
|
tokenStandard
|
|
685
|
-
salesStrategies(where: {type_in: ["FIXED_PRICE", "ERC_20_MINTER"]}) {
|
|
697
|
+
salesStrategies(where: {type_in: ["FIXED_PRICE", "ERC_20_MINTER", "PRESALE"]}) {
|
|
686
698
|
...SaleStrategy
|
|
687
699
|
}
|
|
688
700
|
contract {
|
|
@@ -691,7 +703,7 @@ fragment Token on ZoraCreateToken {
|
|
|
691
703
|
contractVersion
|
|
692
704
|
contractURI
|
|
693
705
|
name
|
|
694
|
-
salesStrategies(where: {type_in: ["FIXED_PRICE", "ERC_20_MINTER"]}) {
|
|
706
|
+
salesStrategies(where: {type_in: ["FIXED_PRICE", "ERC_20_MINTER", "PRESALE"]}) {
|
|
695
707
|
...SaleStrategy
|
|
696
708
|
}
|
|
697
709
|
}
|
|
@@ -788,12 +800,23 @@ function parseSalesConfig(targetStrategy) {
|
|
|
788
800
|
pricePerToken: BigInt(targetStrategy.erc20Minter.pricePerToken)
|
|
789
801
|
};
|
|
790
802
|
}
|
|
803
|
+
if (targetStrategy.type === "PRESALE") {
|
|
804
|
+
return {
|
|
805
|
+
saleType: "allowlist",
|
|
806
|
+
address: targetStrategy.presale.address,
|
|
807
|
+
merkleRoot: targetStrategy.presale.merkleRoot,
|
|
808
|
+
saleStart: targetStrategy.presale.presaleStart,
|
|
809
|
+
saleEnd: targetStrategy.presale.presaleEnd
|
|
810
|
+
};
|
|
811
|
+
}
|
|
791
812
|
throw new Error("Unknown saleType");
|
|
792
813
|
}
|
|
793
814
|
function getSaleEnd(a) {
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
)
|
|
815
|
+
if (a.type === "FIXED_PRICE")
|
|
816
|
+
return BigInt(a.fixedPrice.saleEnd);
|
|
817
|
+
if (a.type === "ERC_20_MINTER")
|
|
818
|
+
return BigInt(a.erc20Minter.saleEnd);
|
|
819
|
+
return BigInt(a.presale.presaleEnd);
|
|
797
820
|
}
|
|
798
821
|
function getTargetStrategy({
|
|
799
822
|
tokenId,
|
|
@@ -1219,13 +1242,19 @@ function makePremintReturn({
|
|
|
1219
1242
|
premintConfigVersion
|
|
1220
1243
|
});
|
|
1221
1244
|
};
|
|
1245
|
+
const urls = makeUrls({
|
|
1246
|
+
chainId,
|
|
1247
|
+
address: collectionAddress,
|
|
1248
|
+
uid: premintConfig.uid
|
|
1249
|
+
});
|
|
1222
1250
|
return {
|
|
1223
1251
|
premintConfig,
|
|
1224
1252
|
premintConfigVersion,
|
|
1225
1253
|
typedDataDefinition,
|
|
1226
1254
|
collectionAddress,
|
|
1227
1255
|
signAndSubmit,
|
|
1228
|
-
submit
|
|
1256
|
+
submit,
|
|
1257
|
+
urls
|
|
1229
1258
|
};
|
|
1230
1259
|
}
|
|
1231
1260
|
async function signPremint({
|
|
@@ -1626,12 +1655,13 @@ function makePrepareMint1155TokenParams({
|
|
|
1626
1655
|
mintComment,
|
|
1627
1656
|
mintReferral,
|
|
1628
1657
|
mintRecipient,
|
|
1629
|
-
quantityToMint
|
|
1658
|
+
quantityToMint,
|
|
1659
|
+
allowListEntry
|
|
1630
1660
|
}) {
|
|
1631
1661
|
const mintQuantity = BigInt(quantityToMint || 1);
|
|
1632
1662
|
const mintTo = mintRecipientOrAccount({ mintRecipient, minterAccount });
|
|
1633
1663
|
const saleType = salesConfigAndTokenInfo.salesConfig.saleType;
|
|
1634
|
-
if (saleType === "fixedPrice") {
|
|
1664
|
+
if (saleType === "fixedPrice" || saleType === "allowlist") {
|
|
1635
1665
|
return makeEthMintCall({
|
|
1636
1666
|
mintComment,
|
|
1637
1667
|
minterAccount,
|
|
@@ -1640,7 +1670,8 @@ function makePrepareMint1155TokenParams({
|
|
|
1640
1670
|
mintTo,
|
|
1641
1671
|
salesConfigAndTokenInfo,
|
|
1642
1672
|
tokenContract,
|
|
1643
|
-
tokenId
|
|
1673
|
+
tokenId,
|
|
1674
|
+
allowListEntry
|
|
1644
1675
|
});
|
|
1645
1676
|
}
|
|
1646
1677
|
if (saleType === "erc20") {
|
|
@@ -1677,7 +1708,8 @@ function makePrepareMint721TokenParams({
|
|
|
1677
1708
|
const mintValue = parseMintCosts({
|
|
1678
1709
|
mintFeePerQuantity: salesConfigAndTokenInfo.mintFeePerQuantity,
|
|
1679
1710
|
salesConfig: salesConfigAndTokenInfo.salesConfig,
|
|
1680
|
-
quantityToMint: actualQuantityToMint
|
|
1711
|
+
quantityToMint: actualQuantityToMint,
|
|
1712
|
+
allowListEntry: void 0
|
|
1681
1713
|
}).totalCostEth;
|
|
1682
1714
|
return makeContractParameters({
|
|
1683
1715
|
abi: zora721Abi,
|
|
@@ -1693,6 +1725,29 @@ function makePrepareMint721TokenParams({
|
|
|
1693
1725
|
]
|
|
1694
1726
|
});
|
|
1695
1727
|
}
|
|
1728
|
+
function makeFixedPriceMinterArguments({
|
|
1729
|
+
mintTo,
|
|
1730
|
+
mintComment
|
|
1731
|
+
}) {
|
|
1732
|
+
return encodeAbiParameters(parseAbiParameters("address, string"), [
|
|
1733
|
+
mintTo,
|
|
1734
|
+
mintComment || ""
|
|
1735
|
+
]);
|
|
1736
|
+
}
|
|
1737
|
+
function makeAllowListMinterArguments({
|
|
1738
|
+
mintTo,
|
|
1739
|
+
allowListEntry
|
|
1740
|
+
}) {
|
|
1741
|
+
return encodeAbiParameters(
|
|
1742
|
+
parseAbiParameters("address, uint256, uint256, bytes32[]"),
|
|
1743
|
+
[
|
|
1744
|
+
mintTo,
|
|
1745
|
+
BigInt(allowListEntry.maxCanMint),
|
|
1746
|
+
allowListEntry.price,
|
|
1747
|
+
allowListEntry.proof
|
|
1748
|
+
]
|
|
1749
|
+
);
|
|
1750
|
+
}
|
|
1696
1751
|
function makeEthMintCall({
|
|
1697
1752
|
tokenContract,
|
|
1698
1753
|
tokenId,
|
|
@@ -1701,17 +1756,26 @@ function makeEthMintCall({
|
|
|
1701
1756
|
mintComment,
|
|
1702
1757
|
mintReferral,
|
|
1703
1758
|
mintQuantity,
|
|
1704
|
-
mintTo
|
|
1759
|
+
mintTo,
|
|
1760
|
+
allowListEntry
|
|
1705
1761
|
}) {
|
|
1706
1762
|
const mintValue = parseMintCosts({
|
|
1707
1763
|
mintFeePerQuantity: salesConfigAndTokenInfo.mintFeePerQuantity,
|
|
1708
1764
|
salesConfig: salesConfigAndTokenInfo.salesConfig,
|
|
1709
|
-
quantityToMint: mintQuantity
|
|
1765
|
+
quantityToMint: mintQuantity,
|
|
1766
|
+
allowListEntry
|
|
1710
1767
|
}).totalCostEth;
|
|
1711
|
-
const
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1768
|
+
const saleType = salesConfigAndTokenInfo.salesConfig.saleType;
|
|
1769
|
+
let minterArguments;
|
|
1770
|
+
if (saleType === "fixedPrice") {
|
|
1771
|
+
minterArguments = makeFixedPriceMinterArguments({ mintTo, mintComment });
|
|
1772
|
+
} else if (saleType === "allowlist") {
|
|
1773
|
+
if (!allowListEntry)
|
|
1774
|
+
throw new Error("Missing allowListEntry");
|
|
1775
|
+
minterArguments = makeAllowListMinterArguments({ mintTo, allowListEntry });
|
|
1776
|
+
} else {
|
|
1777
|
+
throw new Error("Unsupported sale type");
|
|
1778
|
+
}
|
|
1715
1779
|
if (contractSupportsNewMintFunction(salesConfigAndTokenInfo.contractVersion)) {
|
|
1716
1780
|
return makeContractParameters({
|
|
1717
1781
|
abi: zoraCreator1155ImplABI2,
|
|
@@ -1744,13 +1808,22 @@ function makeEthMintCall({
|
|
|
1744
1808
|
]
|
|
1745
1809
|
});
|
|
1746
1810
|
}
|
|
1811
|
+
function paidMintCost(salesConfig, allowListEntry) {
|
|
1812
|
+
if (salesConfig.saleType === "erc20" || salesConfig.saleType === "fixedPrice") {
|
|
1813
|
+
return salesConfig.pricePerToken;
|
|
1814
|
+
}
|
|
1815
|
+
if (allowListEntry)
|
|
1816
|
+
return allowListEntry.price;
|
|
1817
|
+
return 0n;
|
|
1818
|
+
}
|
|
1747
1819
|
function parseMintCosts({
|
|
1748
1820
|
salesConfig,
|
|
1749
1821
|
mintFeePerQuantity,
|
|
1750
|
-
quantityToMint
|
|
1822
|
+
quantityToMint,
|
|
1823
|
+
allowListEntry
|
|
1751
1824
|
}) {
|
|
1752
1825
|
const mintFeeForTokens = mintFeePerQuantity * quantityToMint;
|
|
1753
|
-
const tokenPurchaseCost =
|
|
1826
|
+
const tokenPurchaseCost = paidMintCost(salesConfig, allowListEntry) * quantityToMint;
|
|
1754
1827
|
const totalPurchaseCostCurrency = isErc20SaleStrategy(salesConfig) ? salesConfig.currency : void 0;
|
|
1755
1828
|
const totalPurchaseCostEth = totalPurchaseCostCurrency ? 0n : tokenPurchaseCost;
|
|
1756
1829
|
return {
|
|
@@ -1836,6 +1909,7 @@ async function getMintsOfContract({
|
|
|
1836
1909
|
}
|
|
1837
1910
|
async function getMintCosts({
|
|
1838
1911
|
params,
|
|
1912
|
+
allowListEntry,
|
|
1839
1913
|
mintGetter,
|
|
1840
1914
|
premintGetter,
|
|
1841
1915
|
publicClient
|
|
@@ -1850,7 +1924,8 @@ async function getMintCosts({
|
|
|
1850
1924
|
return parseMintCosts({
|
|
1851
1925
|
mintFeePerQuantity: salesConfigAndTokenInfo.mintFeePerQuantity,
|
|
1852
1926
|
salesConfig: salesConfigAndTokenInfo.salesConfig,
|
|
1853
|
-
quantityToMint: BigInt(quantityToMint)
|
|
1927
|
+
quantityToMint: BigInt(quantityToMint),
|
|
1928
|
+
allowListEntry
|
|
1854
1929
|
});
|
|
1855
1930
|
}
|
|
1856
1931
|
return getPremintMintCostsWithUnknownTokenPrice({
|
|
@@ -1932,7 +2007,8 @@ var makeOnchainPrepareMint = (result) => (params) => ({
|
|
|
1932
2007
|
costs: parseMintCosts({
|
|
1933
2008
|
salesConfig: result.salesConfig,
|
|
1934
2009
|
quantityToMint: BigInt(params.quantityToMint),
|
|
1935
|
-
mintFeePerQuantity: result.mintFeePerQuantity
|
|
2010
|
+
mintFeePerQuantity: result.mintFeePerQuantity,
|
|
2011
|
+
allowListEntry: params.allowListEntry
|
|
1936
2012
|
})
|
|
1937
2013
|
});
|
|
1938
2014
|
function toMintableReturn(result) {
|
|
@@ -1947,7 +2023,8 @@ var makePremintPrepareMint = (mintable, mintFee, premint) => (params) => ({
|
|
|
1947
2023
|
costs: parseMintCosts({
|
|
1948
2024
|
mintFeePerQuantity: mintFee,
|
|
1949
2025
|
quantityToMint: BigInt(params.quantityToMint),
|
|
1950
|
-
salesConfig: mintable.salesConfig
|
|
2026
|
+
salesConfig: mintable.salesConfig,
|
|
2027
|
+
allowListEntry: params.allowListEntry
|
|
1951
2028
|
})
|
|
1952
2029
|
});
|
|
1953
2030
|
function toPremintMintReturn({
|
|
@@ -2157,15 +2234,17 @@ import {
|
|
|
2157
2234
|
erc20MinterAddress as erc20MinterAddresses,
|
|
2158
2235
|
zoraCreator1155ImplABI as zoraCreator1155ImplABI4,
|
|
2159
2236
|
zoraCreatorFixedPriceSaleStrategyABI,
|
|
2160
|
-
zoraCreatorFixedPriceSaleStrategyAddress as zoraCreatorFixedPriceSaleStrategyAddress2
|
|
2237
|
+
zoraCreatorFixedPriceSaleStrategyAddress as zoraCreatorFixedPriceSaleStrategyAddress2,
|
|
2238
|
+
zoraCreatorMerkleMinterStrategyABI,
|
|
2239
|
+
zoraCreatorMerkleMinterStrategyAddress
|
|
2161
2240
|
} from "@zoralabs/protocol-deployments";
|
|
2162
2241
|
import { encodeFunctionData, zeroAddress as zeroAddress5 } from "viem";
|
|
2163
2242
|
import * as semver2 from "semver";
|
|
2164
2243
|
var PERMISSION_BITS = {
|
|
2165
2244
|
MINTER: 2n ** 2n
|
|
2166
2245
|
};
|
|
2246
|
+
var SALE_END_FOREVER = 18446744073709551615n;
|
|
2167
2247
|
var saleSettingsOrDefault = (saleSettings) => {
|
|
2168
|
-
const SALE_END_FOREVER = 18446744073709551615n;
|
|
2169
2248
|
const DEFAULT_SALE_SETTINGS = {
|
|
2170
2249
|
currency: zeroAddress5,
|
|
2171
2250
|
// Free Mint
|
|
@@ -2182,6 +2261,31 @@ var saleSettingsOrDefault = (saleSettings) => {
|
|
|
2182
2261
|
...saleSettings
|
|
2183
2262
|
};
|
|
2184
2263
|
};
|
|
2264
|
+
var allowListWithDefaults = (allowlist) => {
|
|
2265
|
+
const defaultAllowListSettings = {
|
|
2266
|
+
// Sale start time – defaults to beginning of unix time
|
|
2267
|
+
saleStart: 0n,
|
|
2268
|
+
// This is the end of uint64, plenty of time
|
|
2269
|
+
saleEnd: SALE_END_FOREVER
|
|
2270
|
+
};
|
|
2271
|
+
return {
|
|
2272
|
+
...defaultAllowListSettings,
|
|
2273
|
+
...allowlist
|
|
2274
|
+
};
|
|
2275
|
+
};
|
|
2276
|
+
var getSalesConfigOrAllowListWithDefaults = ({
|
|
2277
|
+
salesConfig,
|
|
2278
|
+
allowlist
|
|
2279
|
+
}) => {
|
|
2280
|
+
if (!allowlist) {
|
|
2281
|
+
return {
|
|
2282
|
+
salesConfig: saleSettingsOrDefault(salesConfig)
|
|
2283
|
+
};
|
|
2284
|
+
}
|
|
2285
|
+
return {
|
|
2286
|
+
allowlist: allowListWithDefaults(allowlist)
|
|
2287
|
+
};
|
|
2288
|
+
};
|
|
2185
2289
|
function applyNew1155Defaults(props, ownerAddress) {
|
|
2186
2290
|
const { payoutRecipient: fundsRecipient } = props;
|
|
2187
2291
|
const fundsRecipientOrOwner = fundsRecipient && fundsRecipient !== zeroAddress5 ? fundsRecipient : ownerAddress;
|
|
@@ -2190,8 +2294,11 @@ function applyNew1155Defaults(props, ownerAddress) {
|
|
|
2190
2294
|
createReferral: props.createReferral || zeroAddress5,
|
|
2191
2295
|
maxSupply: typeof props.maxSupply === "undefined" ? OPEN_EDITION_MINT_SIZE : BigInt(props.maxSupply),
|
|
2192
2296
|
royaltyBPS: props.royaltyBPS || 1e3,
|
|
2193
|
-
|
|
2194
|
-
|
|
2297
|
+
tokenMetadataURI: props.tokenMetadataURI,
|
|
2298
|
+
salesConfigOrAllowList: getSalesConfigOrAllowListWithDefaults({
|
|
2299
|
+
salesConfig: props.salesConfig,
|
|
2300
|
+
allowlist: props.allowlist
|
|
2301
|
+
})
|
|
2195
2302
|
};
|
|
2196
2303
|
}
|
|
2197
2304
|
function setupErc20Minter({
|
|
@@ -2280,21 +2387,64 @@ function setupFixedPriceMinter({
|
|
|
2280
2387
|
setupActions: [fixedPriceApproval, callSale]
|
|
2281
2388
|
};
|
|
2282
2389
|
}
|
|
2283
|
-
function
|
|
2284
|
-
|
|
2285
|
-
|
|
2286
|
-
|
|
2287
|
-
|
|
2288
|
-
|
|
2289
|
-
|
|
2290
|
-
|
|
2291
|
-
|
|
2292
|
-
|
|
2293
|
-
|
|
2294
|
-
|
|
2295
|
-
|
|
2296
|
-
|
|
2390
|
+
function setupAllowListMinter({
|
|
2391
|
+
chainId,
|
|
2392
|
+
tokenId: nextTokenId,
|
|
2393
|
+
allowlist,
|
|
2394
|
+
fundsRecipient
|
|
2395
|
+
}) {
|
|
2396
|
+
const merkleSaleStrategyAddress = zoraCreatorMerkleMinterStrategyAddress[chainId];
|
|
2397
|
+
const merkleApproval = encodeFunctionData({
|
|
2398
|
+
abi: zoraCreator1155ImplABI4,
|
|
2399
|
+
functionName: "addPermission",
|
|
2400
|
+
args: [nextTokenId, merkleSaleStrategyAddress, PERMISSION_BITS.MINTER]
|
|
2401
|
+
});
|
|
2402
|
+
const merkleRoot = allowlist.presaleMerkleRoot.startsWith("0x") ? allowlist.presaleMerkleRoot : `0x${allowlist.presaleMerkleRoot}`;
|
|
2403
|
+
const saleData = encodeFunctionData({
|
|
2404
|
+
abi: zoraCreatorMerkleMinterStrategyABI,
|
|
2405
|
+
functionName: "setSale",
|
|
2406
|
+
args: [
|
|
2407
|
+
BigInt(nextTokenId),
|
|
2408
|
+
{
|
|
2409
|
+
presaleStart: allowlist.saleStart,
|
|
2410
|
+
presaleEnd: allowlist.saleEnd,
|
|
2411
|
+
merkleRoot,
|
|
2412
|
+
fundsRecipient
|
|
2413
|
+
}
|
|
2414
|
+
]
|
|
2415
|
+
});
|
|
2416
|
+
const callSaleMerkle = encodeFunctionData({
|
|
2417
|
+
abi: zoraCreator1155ImplABI4,
|
|
2418
|
+
functionName: "callSale",
|
|
2419
|
+
args: [BigInt(nextTokenId), merkleSaleStrategyAddress, saleData]
|
|
2420
|
+
});
|
|
2421
|
+
return {
|
|
2422
|
+
minter: merkleSaleStrategyAddress,
|
|
2423
|
+
setupActions: [merkleApproval, callSaleMerkle]
|
|
2424
|
+
};
|
|
2425
|
+
}
|
|
2426
|
+
function setupMinters({
|
|
2427
|
+
salesConfigOrAllowList: { salesConfig, allowlist },
|
|
2428
|
+
...rest
|
|
2429
|
+
}) {
|
|
2430
|
+
if (salesConfig) {
|
|
2431
|
+
const { currency: currencyAddress } = salesConfig;
|
|
2432
|
+
if (currencyAddress === zeroAddress5) {
|
|
2433
|
+
return setupFixedPriceMinter({
|
|
2434
|
+
...salesConfig,
|
|
2435
|
+
...rest
|
|
2436
|
+
});
|
|
2437
|
+
} else {
|
|
2438
|
+
return setupErc20Minter({
|
|
2439
|
+
...salesConfig,
|
|
2440
|
+
...rest
|
|
2441
|
+
});
|
|
2442
|
+
}
|
|
2297
2443
|
}
|
|
2444
|
+
return setupAllowListMinter({
|
|
2445
|
+
allowlist,
|
|
2446
|
+
...rest
|
|
2447
|
+
});
|
|
2298
2448
|
}
|
|
2299
2449
|
function buildSetupNewToken({
|
|
2300
2450
|
tokenURI,
|
|
@@ -2387,7 +2537,7 @@ function constructCreate1155TokenCalls(props) {
|
|
|
2387
2537
|
tokenId: nextTokenId,
|
|
2388
2538
|
chainId,
|
|
2389
2539
|
fundsRecipient: new1155TokenPropsWithDefaults.payoutRecipient,
|
|
2390
|
-
|
|
2540
|
+
salesConfigOrAllowList: new1155TokenPropsWithDefaults.salesConfigOrAllowList
|
|
2391
2541
|
});
|
|
2392
2542
|
const adminMintCall = makeAdminMintCall({
|
|
2393
2543
|
ownerAddress,
|
|
@@ -2438,6 +2588,21 @@ var getTokenIdFromCreateReceipt = (receipt) => {
|
|
|
2438
2588
|
}
|
|
2439
2589
|
}
|
|
2440
2590
|
};
|
|
2591
|
+
var getContractAddressFromCreateReceipt = (receipt) => {
|
|
2592
|
+
for (const data of receipt.logs) {
|
|
2593
|
+
try {
|
|
2594
|
+
const decodedLog = decodeEventLog2({
|
|
2595
|
+
abi: zoraCreator1155FactoryImplABI2,
|
|
2596
|
+
eventName: "SetupNewContract",
|
|
2597
|
+
...data
|
|
2598
|
+
});
|
|
2599
|
+
if (decodedLog && decodedLog.eventName === "SetupNewContract") {
|
|
2600
|
+
return decodedLog.args.newContract;
|
|
2601
|
+
}
|
|
2602
|
+
} catch (err) {
|
|
2603
|
+
}
|
|
2604
|
+
}
|
|
2605
|
+
};
|
|
2441
2606
|
function makeCreateContractAndTokenCall({
|
|
2442
2607
|
contractExists,
|
|
2443
2608
|
contractAddress,
|
|
@@ -2867,13 +3032,13 @@ var unwrapAndForwardEthPermitAndTypedDataDefinition = ({
|
|
|
2867
3032
|
chainId,
|
|
2868
3033
|
tokenIds,
|
|
2869
3034
|
quantities,
|
|
2870
|
-
from,
|
|
3035
|
+
from: from2,
|
|
2871
3036
|
callWithEth,
|
|
2872
3037
|
safeTransferData,
|
|
2873
3038
|
deadline,
|
|
2874
3039
|
nonce
|
|
2875
3040
|
}) => makePermitTransferBatchAndTypeData({
|
|
2876
|
-
mintsOwner:
|
|
3041
|
+
mintsOwner: from2,
|
|
2877
3042
|
chainId,
|
|
2878
3043
|
deadline,
|
|
2879
3044
|
tokenIds,
|
|
@@ -2921,6 +3086,1167 @@ function createCollectorClient(params) {
|
|
|
2921
3086
|
getMintCosts: (p) => mintClient.getMintCosts(p)
|
|
2922
3087
|
};
|
|
2923
3088
|
}
|
|
3089
|
+
|
|
3090
|
+
// src/ipfs/arweave.ts
|
|
3091
|
+
function isArweaveURL(url) {
|
|
3092
|
+
return url && typeof url === "string" ? url.startsWith("ar://") : false;
|
|
3093
|
+
}
|
|
3094
|
+
|
|
3095
|
+
// ../../node_modules/multiformats/esm/vendor/varint.js
|
|
3096
|
+
var encode_1 = encode;
|
|
3097
|
+
var MSB = 128;
|
|
3098
|
+
var REST = 127;
|
|
3099
|
+
var MSBALL = ~REST;
|
|
3100
|
+
var INT = Math.pow(2, 31);
|
|
3101
|
+
function encode(num, out, offset) {
|
|
3102
|
+
out = out || [];
|
|
3103
|
+
offset = offset || 0;
|
|
3104
|
+
var oldOffset = offset;
|
|
3105
|
+
while (num >= INT) {
|
|
3106
|
+
out[offset++] = num & 255 | MSB;
|
|
3107
|
+
num /= 128;
|
|
3108
|
+
}
|
|
3109
|
+
while (num & MSBALL) {
|
|
3110
|
+
out[offset++] = num & 255 | MSB;
|
|
3111
|
+
num >>>= 7;
|
|
3112
|
+
}
|
|
3113
|
+
out[offset] = num | 0;
|
|
3114
|
+
encode.bytes = offset - oldOffset + 1;
|
|
3115
|
+
return out;
|
|
3116
|
+
}
|
|
3117
|
+
var decode = read;
|
|
3118
|
+
var MSB$1 = 128;
|
|
3119
|
+
var REST$1 = 127;
|
|
3120
|
+
function read(buf, offset) {
|
|
3121
|
+
var res = 0, offset = offset || 0, shift = 0, counter = offset, b, l = buf.length;
|
|
3122
|
+
do {
|
|
3123
|
+
if (counter >= l) {
|
|
3124
|
+
read.bytes = 0;
|
|
3125
|
+
throw new RangeError("Could not decode varint");
|
|
3126
|
+
}
|
|
3127
|
+
b = buf[counter++];
|
|
3128
|
+
res += shift < 28 ? (b & REST$1) << shift : (b & REST$1) * Math.pow(2, shift);
|
|
3129
|
+
shift += 7;
|
|
3130
|
+
} while (b >= MSB$1);
|
|
3131
|
+
read.bytes = counter - offset;
|
|
3132
|
+
return res;
|
|
3133
|
+
}
|
|
3134
|
+
var N1 = Math.pow(2, 7);
|
|
3135
|
+
var N2 = Math.pow(2, 14);
|
|
3136
|
+
var N3 = Math.pow(2, 21);
|
|
3137
|
+
var N4 = Math.pow(2, 28);
|
|
3138
|
+
var N5 = Math.pow(2, 35);
|
|
3139
|
+
var N6 = Math.pow(2, 42);
|
|
3140
|
+
var N7 = Math.pow(2, 49);
|
|
3141
|
+
var N8 = Math.pow(2, 56);
|
|
3142
|
+
var N9 = Math.pow(2, 63);
|
|
3143
|
+
var length = function(value) {
|
|
3144
|
+
return value < N1 ? 1 : value < N2 ? 2 : value < N3 ? 3 : value < N4 ? 4 : value < N5 ? 5 : value < N6 ? 6 : value < N7 ? 7 : value < N8 ? 8 : value < N9 ? 9 : 10;
|
|
3145
|
+
};
|
|
3146
|
+
var varint = {
|
|
3147
|
+
encode: encode_1,
|
|
3148
|
+
decode,
|
|
3149
|
+
encodingLength: length
|
|
3150
|
+
};
|
|
3151
|
+
var _brrp_varint = varint;
|
|
3152
|
+
var varint_default = _brrp_varint;
|
|
3153
|
+
|
|
3154
|
+
// ../../node_modules/multiformats/esm/src/varint.js
|
|
3155
|
+
var decode2 = (data, offset = 0) => {
|
|
3156
|
+
const code = varint_default.decode(data, offset);
|
|
3157
|
+
return [
|
|
3158
|
+
code,
|
|
3159
|
+
varint_default.decode.bytes
|
|
3160
|
+
];
|
|
3161
|
+
};
|
|
3162
|
+
var encodeTo = (int, target, offset = 0) => {
|
|
3163
|
+
varint_default.encode(int, target, offset);
|
|
3164
|
+
return target;
|
|
3165
|
+
};
|
|
3166
|
+
var encodingLength = (int) => {
|
|
3167
|
+
return varint_default.encodingLength(int);
|
|
3168
|
+
};
|
|
3169
|
+
|
|
3170
|
+
// ../../node_modules/multiformats/esm/src/bytes.js
|
|
3171
|
+
var empty = new Uint8Array(0);
|
|
3172
|
+
var equals = (aa, bb) => {
|
|
3173
|
+
if (aa === bb)
|
|
3174
|
+
return true;
|
|
3175
|
+
if (aa.byteLength !== bb.byteLength) {
|
|
3176
|
+
return false;
|
|
3177
|
+
}
|
|
3178
|
+
for (let ii = 0; ii < aa.byteLength; ii++) {
|
|
3179
|
+
if (aa[ii] !== bb[ii]) {
|
|
3180
|
+
return false;
|
|
3181
|
+
}
|
|
3182
|
+
}
|
|
3183
|
+
return true;
|
|
3184
|
+
};
|
|
3185
|
+
var coerce3 = (o) => {
|
|
3186
|
+
if (o instanceof Uint8Array && o.constructor.name === "Uint8Array")
|
|
3187
|
+
return o;
|
|
3188
|
+
if (o instanceof ArrayBuffer)
|
|
3189
|
+
return new Uint8Array(o);
|
|
3190
|
+
if (ArrayBuffer.isView(o)) {
|
|
3191
|
+
return new Uint8Array(o.buffer, o.byteOffset, o.byteLength);
|
|
3192
|
+
}
|
|
3193
|
+
throw new Error("Unknown type, must be binary type");
|
|
3194
|
+
};
|
|
3195
|
+
|
|
3196
|
+
// ../../node_modules/multiformats/esm/src/hashes/digest.js
|
|
3197
|
+
var create = (code, digest) => {
|
|
3198
|
+
const size = digest.byteLength;
|
|
3199
|
+
const sizeOffset = encodingLength(code);
|
|
3200
|
+
const digestOffset = sizeOffset + encodingLength(size);
|
|
3201
|
+
const bytes = new Uint8Array(digestOffset + size);
|
|
3202
|
+
encodeTo(code, bytes, 0);
|
|
3203
|
+
encodeTo(size, bytes, sizeOffset);
|
|
3204
|
+
bytes.set(digest, digestOffset);
|
|
3205
|
+
return new Digest(code, size, digest, bytes);
|
|
3206
|
+
};
|
|
3207
|
+
var decode3 = (multihash) => {
|
|
3208
|
+
const bytes = coerce3(multihash);
|
|
3209
|
+
const [code, sizeOffset] = decode2(bytes);
|
|
3210
|
+
const [size, digestOffset] = decode2(bytes.subarray(sizeOffset));
|
|
3211
|
+
const digest = bytes.subarray(sizeOffset + digestOffset);
|
|
3212
|
+
if (digest.byteLength !== size) {
|
|
3213
|
+
throw new Error("Incorrect length");
|
|
3214
|
+
}
|
|
3215
|
+
return new Digest(code, size, digest, bytes);
|
|
3216
|
+
};
|
|
3217
|
+
var equals2 = (a, b) => {
|
|
3218
|
+
if (a === b) {
|
|
3219
|
+
return true;
|
|
3220
|
+
} else {
|
|
3221
|
+
return a.code === b.code && a.size === b.size && equals(a.bytes, b.bytes);
|
|
3222
|
+
}
|
|
3223
|
+
};
|
|
3224
|
+
var Digest = class {
|
|
3225
|
+
constructor(code, size, digest, bytes) {
|
|
3226
|
+
this.code = code;
|
|
3227
|
+
this.size = size;
|
|
3228
|
+
this.digest = digest;
|
|
3229
|
+
this.bytes = bytes;
|
|
3230
|
+
}
|
|
3231
|
+
};
|
|
3232
|
+
|
|
3233
|
+
// ../../node_modules/multiformats/esm/vendor/base-x.js
|
|
3234
|
+
function base2(ALPHABET, name) {
|
|
3235
|
+
if (ALPHABET.length >= 255) {
|
|
3236
|
+
throw new TypeError("Alphabet too long");
|
|
3237
|
+
}
|
|
3238
|
+
var BASE_MAP = new Uint8Array(256);
|
|
3239
|
+
for (var j = 0; j < BASE_MAP.length; j++) {
|
|
3240
|
+
BASE_MAP[j] = 255;
|
|
3241
|
+
}
|
|
3242
|
+
for (var i = 0; i < ALPHABET.length; i++) {
|
|
3243
|
+
var x = ALPHABET.charAt(i);
|
|
3244
|
+
var xc = x.charCodeAt(0);
|
|
3245
|
+
if (BASE_MAP[xc] !== 255) {
|
|
3246
|
+
throw new TypeError(x + " is ambiguous");
|
|
3247
|
+
}
|
|
3248
|
+
BASE_MAP[xc] = i;
|
|
3249
|
+
}
|
|
3250
|
+
var BASE = ALPHABET.length;
|
|
3251
|
+
var LEADER = ALPHABET.charAt(0);
|
|
3252
|
+
var FACTOR = Math.log(BASE) / Math.log(256);
|
|
3253
|
+
var iFACTOR = Math.log(256) / Math.log(BASE);
|
|
3254
|
+
function encode3(source) {
|
|
3255
|
+
if (source instanceof Uint8Array)
|
|
3256
|
+
;
|
|
3257
|
+
else if (ArrayBuffer.isView(source)) {
|
|
3258
|
+
source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);
|
|
3259
|
+
} else if (Array.isArray(source)) {
|
|
3260
|
+
source = Uint8Array.from(source);
|
|
3261
|
+
}
|
|
3262
|
+
if (!(source instanceof Uint8Array)) {
|
|
3263
|
+
throw new TypeError("Expected Uint8Array");
|
|
3264
|
+
}
|
|
3265
|
+
if (source.length === 0) {
|
|
3266
|
+
return "";
|
|
3267
|
+
}
|
|
3268
|
+
var zeroes = 0;
|
|
3269
|
+
var length2 = 0;
|
|
3270
|
+
var pbegin = 0;
|
|
3271
|
+
var pend = source.length;
|
|
3272
|
+
while (pbegin !== pend && source[pbegin] === 0) {
|
|
3273
|
+
pbegin++;
|
|
3274
|
+
zeroes++;
|
|
3275
|
+
}
|
|
3276
|
+
var size = (pend - pbegin) * iFACTOR + 1 >>> 0;
|
|
3277
|
+
var b58 = new Uint8Array(size);
|
|
3278
|
+
while (pbegin !== pend) {
|
|
3279
|
+
var carry = source[pbegin];
|
|
3280
|
+
var i2 = 0;
|
|
3281
|
+
for (var it1 = size - 1; (carry !== 0 || i2 < length2) && it1 !== -1; it1--, i2++) {
|
|
3282
|
+
carry += 256 * b58[it1] >>> 0;
|
|
3283
|
+
b58[it1] = carry % BASE >>> 0;
|
|
3284
|
+
carry = carry / BASE >>> 0;
|
|
3285
|
+
}
|
|
3286
|
+
if (carry !== 0) {
|
|
3287
|
+
throw new Error("Non-zero carry");
|
|
3288
|
+
}
|
|
3289
|
+
length2 = i2;
|
|
3290
|
+
pbegin++;
|
|
3291
|
+
}
|
|
3292
|
+
var it2 = size - length2;
|
|
3293
|
+
while (it2 !== size && b58[it2] === 0) {
|
|
3294
|
+
it2++;
|
|
3295
|
+
}
|
|
3296
|
+
var str = LEADER.repeat(zeroes);
|
|
3297
|
+
for (; it2 < size; ++it2) {
|
|
3298
|
+
str += ALPHABET.charAt(b58[it2]);
|
|
3299
|
+
}
|
|
3300
|
+
return str;
|
|
3301
|
+
}
|
|
3302
|
+
function decodeUnsafe(source) {
|
|
3303
|
+
if (typeof source !== "string") {
|
|
3304
|
+
throw new TypeError("Expected String");
|
|
3305
|
+
}
|
|
3306
|
+
if (source.length === 0) {
|
|
3307
|
+
return new Uint8Array();
|
|
3308
|
+
}
|
|
3309
|
+
var psz = 0;
|
|
3310
|
+
if (source[psz] === " ") {
|
|
3311
|
+
return;
|
|
3312
|
+
}
|
|
3313
|
+
var zeroes = 0;
|
|
3314
|
+
var length2 = 0;
|
|
3315
|
+
while (source[psz] === LEADER) {
|
|
3316
|
+
zeroes++;
|
|
3317
|
+
psz++;
|
|
3318
|
+
}
|
|
3319
|
+
var size = (source.length - psz) * FACTOR + 1 >>> 0;
|
|
3320
|
+
var b256 = new Uint8Array(size);
|
|
3321
|
+
while (source[psz]) {
|
|
3322
|
+
var carry = BASE_MAP[source.charCodeAt(psz)];
|
|
3323
|
+
if (carry === 255) {
|
|
3324
|
+
return;
|
|
3325
|
+
}
|
|
3326
|
+
var i2 = 0;
|
|
3327
|
+
for (var it3 = size - 1; (carry !== 0 || i2 < length2) && it3 !== -1; it3--, i2++) {
|
|
3328
|
+
carry += BASE * b256[it3] >>> 0;
|
|
3329
|
+
b256[it3] = carry % 256 >>> 0;
|
|
3330
|
+
carry = carry / 256 >>> 0;
|
|
3331
|
+
}
|
|
3332
|
+
if (carry !== 0) {
|
|
3333
|
+
throw new Error("Non-zero carry");
|
|
3334
|
+
}
|
|
3335
|
+
length2 = i2;
|
|
3336
|
+
psz++;
|
|
3337
|
+
}
|
|
3338
|
+
if (source[psz] === " ") {
|
|
3339
|
+
return;
|
|
3340
|
+
}
|
|
3341
|
+
var it4 = size - length2;
|
|
3342
|
+
while (it4 !== size && b256[it4] === 0) {
|
|
3343
|
+
it4++;
|
|
3344
|
+
}
|
|
3345
|
+
var vch = new Uint8Array(zeroes + (size - it4));
|
|
3346
|
+
var j2 = zeroes;
|
|
3347
|
+
while (it4 !== size) {
|
|
3348
|
+
vch[j2++] = b256[it4++];
|
|
3349
|
+
}
|
|
3350
|
+
return vch;
|
|
3351
|
+
}
|
|
3352
|
+
function decode5(string) {
|
|
3353
|
+
var buffer = decodeUnsafe(string);
|
|
3354
|
+
if (buffer) {
|
|
3355
|
+
return buffer;
|
|
3356
|
+
}
|
|
3357
|
+
throw new Error(`Non-${name} character`);
|
|
3358
|
+
}
|
|
3359
|
+
return {
|
|
3360
|
+
encode: encode3,
|
|
3361
|
+
decodeUnsafe,
|
|
3362
|
+
decode: decode5
|
|
3363
|
+
};
|
|
3364
|
+
}
|
|
3365
|
+
var src = base2;
|
|
3366
|
+
var _brrp__multiformats_scope_baseX = src;
|
|
3367
|
+
var base_x_default = _brrp__multiformats_scope_baseX;
|
|
3368
|
+
|
|
3369
|
+
// ../../node_modules/multiformats/esm/src/bases/base.js
|
|
3370
|
+
var Encoder = class {
|
|
3371
|
+
constructor(name, prefix, baseEncode) {
|
|
3372
|
+
this.name = name;
|
|
3373
|
+
this.prefix = prefix;
|
|
3374
|
+
this.baseEncode = baseEncode;
|
|
3375
|
+
}
|
|
3376
|
+
encode(bytes) {
|
|
3377
|
+
if (bytes instanceof Uint8Array) {
|
|
3378
|
+
return `${this.prefix}${this.baseEncode(bytes)}`;
|
|
3379
|
+
} else {
|
|
3380
|
+
throw Error("Unknown type, must be binary type");
|
|
3381
|
+
}
|
|
3382
|
+
}
|
|
3383
|
+
};
|
|
3384
|
+
var Decoder = class {
|
|
3385
|
+
constructor(name, prefix, baseDecode) {
|
|
3386
|
+
this.name = name;
|
|
3387
|
+
this.prefix = prefix;
|
|
3388
|
+
if (prefix.codePointAt(0) === void 0) {
|
|
3389
|
+
throw new Error("Invalid prefix character");
|
|
3390
|
+
}
|
|
3391
|
+
this.prefixCodePoint = prefix.codePointAt(0);
|
|
3392
|
+
this.baseDecode = baseDecode;
|
|
3393
|
+
}
|
|
3394
|
+
decode(text) {
|
|
3395
|
+
if (typeof text === "string") {
|
|
3396
|
+
if (text.codePointAt(0) !== this.prefixCodePoint) {
|
|
3397
|
+
throw Error(`Unable to decode multibase string ${JSON.stringify(text)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);
|
|
3398
|
+
}
|
|
3399
|
+
return this.baseDecode(text.slice(this.prefix.length));
|
|
3400
|
+
} else {
|
|
3401
|
+
throw Error("Can only multibase decode strings");
|
|
3402
|
+
}
|
|
3403
|
+
}
|
|
3404
|
+
or(decoder) {
|
|
3405
|
+
return or(this, decoder);
|
|
3406
|
+
}
|
|
3407
|
+
};
|
|
3408
|
+
var ComposedDecoder = class {
|
|
3409
|
+
constructor(decoders) {
|
|
3410
|
+
this.decoders = decoders;
|
|
3411
|
+
}
|
|
3412
|
+
or(decoder) {
|
|
3413
|
+
return or(this, decoder);
|
|
3414
|
+
}
|
|
3415
|
+
decode(input) {
|
|
3416
|
+
const prefix = input[0];
|
|
3417
|
+
const decoder = this.decoders[prefix];
|
|
3418
|
+
if (decoder) {
|
|
3419
|
+
return decoder.decode(input);
|
|
3420
|
+
} else {
|
|
3421
|
+
throw RangeError(`Unable to decode multibase string ${JSON.stringify(input)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`);
|
|
3422
|
+
}
|
|
3423
|
+
}
|
|
3424
|
+
};
|
|
3425
|
+
var or = (left, right) => new ComposedDecoder({
|
|
3426
|
+
...left.decoders || { [left.prefix]: left },
|
|
3427
|
+
...right.decoders || { [right.prefix]: right }
|
|
3428
|
+
});
|
|
3429
|
+
var Codec = class {
|
|
3430
|
+
constructor(name, prefix, baseEncode, baseDecode) {
|
|
3431
|
+
this.name = name;
|
|
3432
|
+
this.prefix = prefix;
|
|
3433
|
+
this.baseEncode = baseEncode;
|
|
3434
|
+
this.baseDecode = baseDecode;
|
|
3435
|
+
this.encoder = new Encoder(name, prefix, baseEncode);
|
|
3436
|
+
this.decoder = new Decoder(name, prefix, baseDecode);
|
|
3437
|
+
}
|
|
3438
|
+
encode(input) {
|
|
3439
|
+
return this.encoder.encode(input);
|
|
3440
|
+
}
|
|
3441
|
+
decode(input) {
|
|
3442
|
+
return this.decoder.decode(input);
|
|
3443
|
+
}
|
|
3444
|
+
};
|
|
3445
|
+
var from = ({ name, prefix, encode: encode3, decode: decode5 }) => new Codec(name, prefix, encode3, decode5);
|
|
3446
|
+
var baseX = ({ prefix, name, alphabet }) => {
|
|
3447
|
+
const { encode: encode3, decode: decode5 } = base_x_default(alphabet, name);
|
|
3448
|
+
return from({
|
|
3449
|
+
prefix,
|
|
3450
|
+
name,
|
|
3451
|
+
encode: encode3,
|
|
3452
|
+
decode: (text) => coerce3(decode5(text))
|
|
3453
|
+
});
|
|
3454
|
+
};
|
|
3455
|
+
var decode4 = (string, alphabet, bitsPerChar, name) => {
|
|
3456
|
+
const codes = {};
|
|
3457
|
+
for (let i = 0; i < alphabet.length; ++i) {
|
|
3458
|
+
codes[alphabet[i]] = i;
|
|
3459
|
+
}
|
|
3460
|
+
let end = string.length;
|
|
3461
|
+
while (string[end - 1] === "=") {
|
|
3462
|
+
--end;
|
|
3463
|
+
}
|
|
3464
|
+
const out = new Uint8Array(end * bitsPerChar / 8 | 0);
|
|
3465
|
+
let bits = 0;
|
|
3466
|
+
let buffer = 0;
|
|
3467
|
+
let written = 0;
|
|
3468
|
+
for (let i = 0; i < end; ++i) {
|
|
3469
|
+
const value = codes[string[i]];
|
|
3470
|
+
if (value === void 0) {
|
|
3471
|
+
throw new SyntaxError(`Non-${name} character`);
|
|
3472
|
+
}
|
|
3473
|
+
buffer = buffer << bitsPerChar | value;
|
|
3474
|
+
bits += bitsPerChar;
|
|
3475
|
+
if (bits >= 8) {
|
|
3476
|
+
bits -= 8;
|
|
3477
|
+
out[written++] = 255 & buffer >> bits;
|
|
3478
|
+
}
|
|
3479
|
+
}
|
|
3480
|
+
if (bits >= bitsPerChar || 255 & buffer << 8 - bits) {
|
|
3481
|
+
throw new SyntaxError("Unexpected end of data");
|
|
3482
|
+
}
|
|
3483
|
+
return out;
|
|
3484
|
+
};
|
|
3485
|
+
var encode2 = (data, alphabet, bitsPerChar) => {
|
|
3486
|
+
const pad = alphabet[alphabet.length - 1] === "=";
|
|
3487
|
+
const mask = (1 << bitsPerChar) - 1;
|
|
3488
|
+
let out = "";
|
|
3489
|
+
let bits = 0;
|
|
3490
|
+
let buffer = 0;
|
|
3491
|
+
for (let i = 0; i < data.length; ++i) {
|
|
3492
|
+
buffer = buffer << 8 | data[i];
|
|
3493
|
+
bits += 8;
|
|
3494
|
+
while (bits > bitsPerChar) {
|
|
3495
|
+
bits -= bitsPerChar;
|
|
3496
|
+
out += alphabet[mask & buffer >> bits];
|
|
3497
|
+
}
|
|
3498
|
+
}
|
|
3499
|
+
if (bits) {
|
|
3500
|
+
out += alphabet[mask & buffer << bitsPerChar - bits];
|
|
3501
|
+
}
|
|
3502
|
+
if (pad) {
|
|
3503
|
+
while (out.length * bitsPerChar & 7) {
|
|
3504
|
+
out += "=";
|
|
3505
|
+
}
|
|
3506
|
+
}
|
|
3507
|
+
return out;
|
|
3508
|
+
};
|
|
3509
|
+
var rfc4648 = ({ name, prefix, bitsPerChar, alphabet }) => {
|
|
3510
|
+
return from({
|
|
3511
|
+
prefix,
|
|
3512
|
+
name,
|
|
3513
|
+
encode(input) {
|
|
3514
|
+
return encode2(input, alphabet, bitsPerChar);
|
|
3515
|
+
},
|
|
3516
|
+
decode(input) {
|
|
3517
|
+
return decode4(input, alphabet, bitsPerChar, name);
|
|
3518
|
+
}
|
|
3519
|
+
});
|
|
3520
|
+
};
|
|
3521
|
+
|
|
3522
|
+
// ../../node_modules/multiformats/esm/src/bases/base58.js
|
|
3523
|
+
var base58btc = baseX({
|
|
3524
|
+
name: "base58btc",
|
|
3525
|
+
prefix: "z",
|
|
3526
|
+
alphabet: "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
|
|
3527
|
+
});
|
|
3528
|
+
var base58flickr = baseX({
|
|
3529
|
+
name: "base58flickr",
|
|
3530
|
+
prefix: "Z",
|
|
3531
|
+
alphabet: "123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"
|
|
3532
|
+
});
|
|
3533
|
+
|
|
3534
|
+
// ../../node_modules/multiformats/esm/src/bases/base32.js
|
|
3535
|
+
var base32 = rfc4648({
|
|
3536
|
+
prefix: "b",
|
|
3537
|
+
name: "base32",
|
|
3538
|
+
alphabet: "abcdefghijklmnopqrstuvwxyz234567",
|
|
3539
|
+
bitsPerChar: 5
|
|
3540
|
+
});
|
|
3541
|
+
var base32upper = rfc4648({
|
|
3542
|
+
prefix: "B",
|
|
3543
|
+
name: "base32upper",
|
|
3544
|
+
alphabet: "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",
|
|
3545
|
+
bitsPerChar: 5
|
|
3546
|
+
});
|
|
3547
|
+
var base32pad = rfc4648({
|
|
3548
|
+
prefix: "c",
|
|
3549
|
+
name: "base32pad",
|
|
3550
|
+
alphabet: "abcdefghijklmnopqrstuvwxyz234567=",
|
|
3551
|
+
bitsPerChar: 5
|
|
3552
|
+
});
|
|
3553
|
+
var base32padupper = rfc4648({
|
|
3554
|
+
prefix: "C",
|
|
3555
|
+
name: "base32padupper",
|
|
3556
|
+
alphabet: "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",
|
|
3557
|
+
bitsPerChar: 5
|
|
3558
|
+
});
|
|
3559
|
+
var base32hex = rfc4648({
|
|
3560
|
+
prefix: "v",
|
|
3561
|
+
name: "base32hex",
|
|
3562
|
+
alphabet: "0123456789abcdefghijklmnopqrstuv",
|
|
3563
|
+
bitsPerChar: 5
|
|
3564
|
+
});
|
|
3565
|
+
var base32hexupper = rfc4648({
|
|
3566
|
+
prefix: "V",
|
|
3567
|
+
name: "base32hexupper",
|
|
3568
|
+
alphabet: "0123456789ABCDEFGHIJKLMNOPQRSTUV",
|
|
3569
|
+
bitsPerChar: 5
|
|
3570
|
+
});
|
|
3571
|
+
var base32hexpad = rfc4648({
|
|
3572
|
+
prefix: "t",
|
|
3573
|
+
name: "base32hexpad",
|
|
3574
|
+
alphabet: "0123456789abcdefghijklmnopqrstuv=",
|
|
3575
|
+
bitsPerChar: 5
|
|
3576
|
+
});
|
|
3577
|
+
var base32hexpadupper = rfc4648({
|
|
3578
|
+
prefix: "T",
|
|
3579
|
+
name: "base32hexpadupper",
|
|
3580
|
+
alphabet: "0123456789ABCDEFGHIJKLMNOPQRSTUV=",
|
|
3581
|
+
bitsPerChar: 5
|
|
3582
|
+
});
|
|
3583
|
+
var base32z = rfc4648({
|
|
3584
|
+
prefix: "h",
|
|
3585
|
+
name: "base32z",
|
|
3586
|
+
alphabet: "ybndrfg8ejkmcpqxot1uwisza345h769",
|
|
3587
|
+
bitsPerChar: 5
|
|
3588
|
+
});
|
|
3589
|
+
|
|
3590
|
+
// ../../node_modules/multiformats/esm/src/cid.js
|
|
3591
|
+
var CID = class _CID {
|
|
3592
|
+
constructor(version2, code, multihash, bytes) {
|
|
3593
|
+
this.code = code;
|
|
3594
|
+
this.version = version2;
|
|
3595
|
+
this.multihash = multihash;
|
|
3596
|
+
this.bytes = bytes;
|
|
3597
|
+
this.byteOffset = bytes.byteOffset;
|
|
3598
|
+
this.byteLength = bytes.byteLength;
|
|
3599
|
+
this.asCID = this;
|
|
3600
|
+
this._baseCache = /* @__PURE__ */ new Map();
|
|
3601
|
+
Object.defineProperties(this, {
|
|
3602
|
+
byteOffset: hidden,
|
|
3603
|
+
byteLength: hidden,
|
|
3604
|
+
code: readonly,
|
|
3605
|
+
version: readonly,
|
|
3606
|
+
multihash: readonly,
|
|
3607
|
+
bytes: readonly,
|
|
3608
|
+
_baseCache: hidden,
|
|
3609
|
+
asCID: hidden
|
|
3610
|
+
});
|
|
3611
|
+
}
|
|
3612
|
+
toV0() {
|
|
3613
|
+
switch (this.version) {
|
|
3614
|
+
case 0: {
|
|
3615
|
+
return this;
|
|
3616
|
+
}
|
|
3617
|
+
default: {
|
|
3618
|
+
const { code, multihash } = this;
|
|
3619
|
+
if (code !== DAG_PB_CODE) {
|
|
3620
|
+
throw new Error("Cannot convert a non dag-pb CID to CIDv0");
|
|
3621
|
+
}
|
|
3622
|
+
if (multihash.code !== SHA_256_CODE) {
|
|
3623
|
+
throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");
|
|
3624
|
+
}
|
|
3625
|
+
return _CID.createV0(multihash);
|
|
3626
|
+
}
|
|
3627
|
+
}
|
|
3628
|
+
}
|
|
3629
|
+
toV1() {
|
|
3630
|
+
switch (this.version) {
|
|
3631
|
+
case 0: {
|
|
3632
|
+
const { code, digest } = this.multihash;
|
|
3633
|
+
const multihash = create(code, digest);
|
|
3634
|
+
return _CID.createV1(this.code, multihash);
|
|
3635
|
+
}
|
|
3636
|
+
case 1: {
|
|
3637
|
+
return this;
|
|
3638
|
+
}
|
|
3639
|
+
default: {
|
|
3640
|
+
throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`);
|
|
3641
|
+
}
|
|
3642
|
+
}
|
|
3643
|
+
}
|
|
3644
|
+
equals(other) {
|
|
3645
|
+
return other && this.code === other.code && this.version === other.version && equals2(this.multihash, other.multihash);
|
|
3646
|
+
}
|
|
3647
|
+
toString(base3) {
|
|
3648
|
+
const { bytes, version: version2, _baseCache } = this;
|
|
3649
|
+
switch (version2) {
|
|
3650
|
+
case 0:
|
|
3651
|
+
return toStringV0(bytes, _baseCache, base3 || base58btc.encoder);
|
|
3652
|
+
default:
|
|
3653
|
+
return toStringV1(bytes, _baseCache, base3 || base32.encoder);
|
|
3654
|
+
}
|
|
3655
|
+
}
|
|
3656
|
+
toJSON() {
|
|
3657
|
+
return {
|
|
3658
|
+
code: this.code,
|
|
3659
|
+
version: this.version,
|
|
3660
|
+
hash: this.multihash.bytes
|
|
3661
|
+
};
|
|
3662
|
+
}
|
|
3663
|
+
get [Symbol.toStringTag]() {
|
|
3664
|
+
return "CID";
|
|
3665
|
+
}
|
|
3666
|
+
[Symbol.for("nodejs.util.inspect.custom")]() {
|
|
3667
|
+
return "CID(" + this.toString() + ")";
|
|
3668
|
+
}
|
|
3669
|
+
static isCID(value) {
|
|
3670
|
+
deprecate(/^0\.0/, IS_CID_DEPRECATION);
|
|
3671
|
+
return !!(value && (value[cidSymbol] || value.asCID === value));
|
|
3672
|
+
}
|
|
3673
|
+
get toBaseEncodedString() {
|
|
3674
|
+
throw new Error("Deprecated, use .toString()");
|
|
3675
|
+
}
|
|
3676
|
+
get codec() {
|
|
3677
|
+
throw new Error('"codec" property is deprecated, use integer "code" property instead');
|
|
3678
|
+
}
|
|
3679
|
+
get buffer() {
|
|
3680
|
+
throw new Error("Deprecated .buffer property, use .bytes to get Uint8Array instead");
|
|
3681
|
+
}
|
|
3682
|
+
get multibaseName() {
|
|
3683
|
+
throw new Error('"multibaseName" property is deprecated');
|
|
3684
|
+
}
|
|
3685
|
+
get prefix() {
|
|
3686
|
+
throw new Error('"prefix" property is deprecated');
|
|
3687
|
+
}
|
|
3688
|
+
static asCID(value) {
|
|
3689
|
+
if (value instanceof _CID) {
|
|
3690
|
+
return value;
|
|
3691
|
+
} else if (value != null && value.asCID === value) {
|
|
3692
|
+
const { version: version2, code, multihash, bytes } = value;
|
|
3693
|
+
return new _CID(version2, code, multihash, bytes || encodeCID(version2, code, multihash.bytes));
|
|
3694
|
+
} else if (value != null && value[cidSymbol] === true) {
|
|
3695
|
+
const { version: version2, multihash, code } = value;
|
|
3696
|
+
const digest = decode3(multihash);
|
|
3697
|
+
return _CID.create(version2, code, digest);
|
|
3698
|
+
} else {
|
|
3699
|
+
return null;
|
|
3700
|
+
}
|
|
3701
|
+
}
|
|
3702
|
+
static create(version2, code, digest) {
|
|
3703
|
+
if (typeof code !== "number") {
|
|
3704
|
+
throw new Error("String codecs are no longer supported");
|
|
3705
|
+
}
|
|
3706
|
+
switch (version2) {
|
|
3707
|
+
case 0: {
|
|
3708
|
+
if (code !== DAG_PB_CODE) {
|
|
3709
|
+
throw new Error(`Version 0 CID must use dag-pb (code: ${DAG_PB_CODE}) block encoding`);
|
|
3710
|
+
} else {
|
|
3711
|
+
return new _CID(version2, code, digest, digest.bytes);
|
|
3712
|
+
}
|
|
3713
|
+
}
|
|
3714
|
+
case 1: {
|
|
3715
|
+
const bytes = encodeCID(version2, code, digest.bytes);
|
|
3716
|
+
return new _CID(version2, code, digest, bytes);
|
|
3717
|
+
}
|
|
3718
|
+
default: {
|
|
3719
|
+
throw new Error("Invalid version");
|
|
3720
|
+
}
|
|
3721
|
+
}
|
|
3722
|
+
}
|
|
3723
|
+
static createV0(digest) {
|
|
3724
|
+
return _CID.create(0, DAG_PB_CODE, digest);
|
|
3725
|
+
}
|
|
3726
|
+
static createV1(code, digest) {
|
|
3727
|
+
return _CID.create(1, code, digest);
|
|
3728
|
+
}
|
|
3729
|
+
static decode(bytes) {
|
|
3730
|
+
const [cid, remainder] = _CID.decodeFirst(bytes);
|
|
3731
|
+
if (remainder.length) {
|
|
3732
|
+
throw new Error("Incorrect length");
|
|
3733
|
+
}
|
|
3734
|
+
return cid;
|
|
3735
|
+
}
|
|
3736
|
+
static decodeFirst(bytes) {
|
|
3737
|
+
const specs = _CID.inspectBytes(bytes);
|
|
3738
|
+
const prefixSize = specs.size - specs.multihashSize;
|
|
3739
|
+
const multihashBytes = coerce3(bytes.subarray(prefixSize, prefixSize + specs.multihashSize));
|
|
3740
|
+
if (multihashBytes.byteLength !== specs.multihashSize) {
|
|
3741
|
+
throw new Error("Incorrect length");
|
|
3742
|
+
}
|
|
3743
|
+
const digestBytes = multihashBytes.subarray(specs.multihashSize - specs.digestSize);
|
|
3744
|
+
const digest = new Digest(specs.multihashCode, specs.digestSize, digestBytes, multihashBytes);
|
|
3745
|
+
const cid = specs.version === 0 ? _CID.createV0(digest) : _CID.createV1(specs.codec, digest);
|
|
3746
|
+
return [
|
|
3747
|
+
cid,
|
|
3748
|
+
bytes.subarray(specs.size)
|
|
3749
|
+
];
|
|
3750
|
+
}
|
|
3751
|
+
static inspectBytes(initialBytes) {
|
|
3752
|
+
let offset = 0;
|
|
3753
|
+
const next = () => {
|
|
3754
|
+
const [i, length2] = decode2(initialBytes.subarray(offset));
|
|
3755
|
+
offset += length2;
|
|
3756
|
+
return i;
|
|
3757
|
+
};
|
|
3758
|
+
let version2 = next();
|
|
3759
|
+
let codec = DAG_PB_CODE;
|
|
3760
|
+
if (version2 === 18) {
|
|
3761
|
+
version2 = 0;
|
|
3762
|
+
offset = 0;
|
|
3763
|
+
} else if (version2 === 1) {
|
|
3764
|
+
codec = next();
|
|
3765
|
+
}
|
|
3766
|
+
if (version2 !== 0 && version2 !== 1) {
|
|
3767
|
+
throw new RangeError(`Invalid CID version ${version2}`);
|
|
3768
|
+
}
|
|
3769
|
+
const prefixSize = offset;
|
|
3770
|
+
const multihashCode = next();
|
|
3771
|
+
const digestSize = next();
|
|
3772
|
+
const size = offset + digestSize;
|
|
3773
|
+
const multihashSize = size - prefixSize;
|
|
3774
|
+
return {
|
|
3775
|
+
version: version2,
|
|
3776
|
+
codec,
|
|
3777
|
+
multihashCode,
|
|
3778
|
+
digestSize,
|
|
3779
|
+
multihashSize,
|
|
3780
|
+
size
|
|
3781
|
+
};
|
|
3782
|
+
}
|
|
3783
|
+
static parse(source, base3) {
|
|
3784
|
+
const [prefix, bytes] = parseCIDtoBytes(source, base3);
|
|
3785
|
+
const cid = _CID.decode(bytes);
|
|
3786
|
+
cid._baseCache.set(prefix, source);
|
|
3787
|
+
return cid;
|
|
3788
|
+
}
|
|
3789
|
+
};
|
|
3790
|
+
var parseCIDtoBytes = (source, base3) => {
|
|
3791
|
+
switch (source[0]) {
|
|
3792
|
+
case "Q": {
|
|
3793
|
+
const decoder = base3 || base58btc;
|
|
3794
|
+
return [
|
|
3795
|
+
base58btc.prefix,
|
|
3796
|
+
decoder.decode(`${base58btc.prefix}${source}`)
|
|
3797
|
+
];
|
|
3798
|
+
}
|
|
3799
|
+
case base58btc.prefix: {
|
|
3800
|
+
const decoder = base3 || base58btc;
|
|
3801
|
+
return [
|
|
3802
|
+
base58btc.prefix,
|
|
3803
|
+
decoder.decode(source)
|
|
3804
|
+
];
|
|
3805
|
+
}
|
|
3806
|
+
case base32.prefix: {
|
|
3807
|
+
const decoder = base3 || base32;
|
|
3808
|
+
return [
|
|
3809
|
+
base32.prefix,
|
|
3810
|
+
decoder.decode(source)
|
|
3811
|
+
];
|
|
3812
|
+
}
|
|
3813
|
+
default: {
|
|
3814
|
+
if (base3 == null) {
|
|
3815
|
+
throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");
|
|
3816
|
+
}
|
|
3817
|
+
return [
|
|
3818
|
+
source[0],
|
|
3819
|
+
base3.decode(source)
|
|
3820
|
+
];
|
|
3821
|
+
}
|
|
3822
|
+
}
|
|
3823
|
+
};
|
|
3824
|
+
var toStringV0 = (bytes, cache, base3) => {
|
|
3825
|
+
const { prefix } = base3;
|
|
3826
|
+
if (prefix !== base58btc.prefix) {
|
|
3827
|
+
throw Error(`Cannot string encode V0 in ${base3.name} encoding`);
|
|
3828
|
+
}
|
|
3829
|
+
const cid = cache.get(prefix);
|
|
3830
|
+
if (cid == null) {
|
|
3831
|
+
const cid2 = base3.encode(bytes).slice(1);
|
|
3832
|
+
cache.set(prefix, cid2);
|
|
3833
|
+
return cid2;
|
|
3834
|
+
} else {
|
|
3835
|
+
return cid;
|
|
3836
|
+
}
|
|
3837
|
+
};
|
|
3838
|
+
var toStringV1 = (bytes, cache, base3) => {
|
|
3839
|
+
const { prefix } = base3;
|
|
3840
|
+
const cid = cache.get(prefix);
|
|
3841
|
+
if (cid == null) {
|
|
3842
|
+
const cid2 = base3.encode(bytes);
|
|
3843
|
+
cache.set(prefix, cid2);
|
|
3844
|
+
return cid2;
|
|
3845
|
+
} else {
|
|
3846
|
+
return cid;
|
|
3847
|
+
}
|
|
3848
|
+
};
|
|
3849
|
+
var DAG_PB_CODE = 112;
|
|
3850
|
+
var SHA_256_CODE = 18;
|
|
3851
|
+
var encodeCID = (version2, code, multihash) => {
|
|
3852
|
+
const codeOffset = encodingLength(version2);
|
|
3853
|
+
const hashOffset = codeOffset + encodingLength(code);
|
|
3854
|
+
const bytes = new Uint8Array(hashOffset + multihash.byteLength);
|
|
3855
|
+
encodeTo(version2, bytes, 0);
|
|
3856
|
+
encodeTo(code, bytes, codeOffset);
|
|
3857
|
+
bytes.set(multihash, hashOffset);
|
|
3858
|
+
return bytes;
|
|
3859
|
+
};
|
|
3860
|
+
var cidSymbol = Symbol.for("@ipld/js-cid/CID");
|
|
3861
|
+
var readonly = {
|
|
3862
|
+
writable: false,
|
|
3863
|
+
configurable: false,
|
|
3864
|
+
enumerable: true
|
|
3865
|
+
};
|
|
3866
|
+
var hidden = {
|
|
3867
|
+
writable: false,
|
|
3868
|
+
enumerable: false,
|
|
3869
|
+
configurable: false
|
|
3870
|
+
};
|
|
3871
|
+
var version = "0.0.0-dev";
|
|
3872
|
+
var deprecate = (range, message) => {
|
|
3873
|
+
if (range.test(version)) {
|
|
3874
|
+
console.warn(message);
|
|
3875
|
+
} else {
|
|
3876
|
+
throw new Error(message);
|
|
3877
|
+
}
|
|
3878
|
+
};
|
|
3879
|
+
var IS_CID_DEPRECATION = `CID.isCID(v) is deprecated and will be removed in the next major release.
|
|
3880
|
+
Following code pattern:
|
|
3881
|
+
|
|
3882
|
+
if (CID.isCID(value)) {
|
|
3883
|
+
doSomethingWithCID(value)
|
|
3884
|
+
}
|
|
3885
|
+
|
|
3886
|
+
Is replaced with:
|
|
3887
|
+
|
|
3888
|
+
const cid = CID.asCID(value)
|
|
3889
|
+
if (cid) {
|
|
3890
|
+
// Make sure to use cid instead of value
|
|
3891
|
+
doSomethingWithCID(cid)
|
|
3892
|
+
}
|
|
3893
|
+
`;
|
|
3894
|
+
|
|
3895
|
+
// src/ipfs/ipfs.ts
|
|
3896
|
+
function isCID(str) {
|
|
3897
|
+
if (!str)
|
|
3898
|
+
return false;
|
|
3899
|
+
try {
|
|
3900
|
+
CID.parse(str);
|
|
3901
|
+
return true;
|
|
3902
|
+
} catch (e) {
|
|
3903
|
+
if (/^(bafy|Qm)/.test(str))
|
|
3904
|
+
return true;
|
|
3905
|
+
return false;
|
|
3906
|
+
}
|
|
3907
|
+
}
|
|
3908
|
+
function normalizeIPFSUrl(url) {
|
|
3909
|
+
if (!url || typeof url !== "string")
|
|
3910
|
+
return null;
|
|
3911
|
+
url = url.replace(/"/g, "");
|
|
3912
|
+
if (isNormalizedIPFSURL(url))
|
|
3913
|
+
return url;
|
|
3914
|
+
if (isCID(url))
|
|
3915
|
+
return `ipfs://${url}`;
|
|
3916
|
+
if (!isIPFSUrl(url))
|
|
3917
|
+
return null;
|
|
3918
|
+
if (isGatewayIPFSUrl(url)) {
|
|
3919
|
+
const parsed = new URL(url.replace(/^\/\//, "http://"));
|
|
3920
|
+
parsed.pathname = parsed.pathname.replace(/^\/ipfs\//, "");
|
|
3921
|
+
const cid = parsed.toString().replace(`${parsed.protocol}//${parsed.host}/`, "");
|
|
3922
|
+
return `ipfs://${cid}`;
|
|
3923
|
+
}
|
|
3924
|
+
return null;
|
|
3925
|
+
}
|
|
3926
|
+
function isNormalizedIPFSURL(url) {
|
|
3927
|
+
return url && typeof url === "string" ? url.startsWith("ipfs://") : false;
|
|
3928
|
+
}
|
|
3929
|
+
function isGatewayIPFSUrl(url) {
|
|
3930
|
+
if (url && typeof url === "string") {
|
|
3931
|
+
try {
|
|
3932
|
+
const parsed = new URL(url.replace(/^"|'(.*)"|'$/, "$1"));
|
|
3933
|
+
return !isNormalizedIPFSURL(url) && parsed && parsed.pathname.startsWith("/ipfs/");
|
|
3934
|
+
} catch {
|
|
3935
|
+
return false;
|
|
3936
|
+
}
|
|
3937
|
+
}
|
|
3938
|
+
return false;
|
|
3939
|
+
}
|
|
3940
|
+
function isIPFSUrl(url) {
|
|
3941
|
+
return url ? isNormalizedIPFSURL(url) || isGatewayIPFSUrl(url) : false;
|
|
3942
|
+
}
|
|
3943
|
+
function isNormalizeableIPFSUrl(url) {
|
|
3944
|
+
return url ? isIPFSUrl(url) || isCID(url) : false;
|
|
3945
|
+
}
|
|
3946
|
+
|
|
3947
|
+
// src/ipfs/gateway.ts
|
|
3948
|
+
var IPFS_GATEWAY = "https://magic.decentralized-content.com";
|
|
3949
|
+
var ARWEAVE_GATEWAY = "https://arweave.net";
|
|
3950
|
+
function arweaveGatewayUrl(normalizedArweaveUrl) {
|
|
3951
|
+
if (!normalizedArweaveUrl || typeof normalizedArweaveUrl !== "string")
|
|
3952
|
+
return null;
|
|
3953
|
+
return normalizedArweaveUrl.replace("ar://", `${ARWEAVE_GATEWAY}/`);
|
|
3954
|
+
}
|
|
3955
|
+
function ipfsGatewayUrl(url) {
|
|
3956
|
+
if (!url || typeof url !== "string")
|
|
3957
|
+
return null;
|
|
3958
|
+
const normalizedIPFSUrl = normalizeIPFSUrl(url);
|
|
3959
|
+
if (normalizedIPFSUrl) {
|
|
3960
|
+
return normalizedIPFSUrl.replace("ipfs://", `${IPFS_GATEWAY}/ipfs/`);
|
|
3961
|
+
}
|
|
3962
|
+
return null;
|
|
3963
|
+
}
|
|
3964
|
+
function getFetchableUrl(uri) {
|
|
3965
|
+
if (!uri || typeof uri !== "string")
|
|
3966
|
+
return null;
|
|
3967
|
+
if (uri.startsWith("http://"))
|
|
3968
|
+
return null;
|
|
3969
|
+
if (isNormalizeableIPFSUrl(uri)) {
|
|
3970
|
+
return ipfsGatewayUrl(uri);
|
|
3971
|
+
}
|
|
3972
|
+
if (isArweaveURL(uri)) {
|
|
3973
|
+
return arweaveGatewayUrl(uri);
|
|
3974
|
+
}
|
|
3975
|
+
if (/^(https|data|blob):/.test(uri)) {
|
|
3976
|
+
return uri;
|
|
3977
|
+
}
|
|
3978
|
+
return null;
|
|
3979
|
+
}
|
|
3980
|
+
|
|
3981
|
+
// src/ipfs/mimeTypes.ts
|
|
3982
|
+
var HTML = "text/html";
|
|
3983
|
+
var MARKDOWN = "text/markdown";
|
|
3984
|
+
var MARKDOWN_UTF8 = "text/markdown; charset=utf-8";
|
|
3985
|
+
var TEXT_PLAIN_UTF8 = "text/plain; charset=utf-8";
|
|
3986
|
+
var TEXT_PLAIN = "text/plain";
|
|
3987
|
+
var CSV = "text/csv";
|
|
3988
|
+
var NUMBERS = ".numbers";
|
|
3989
|
+
var EXCEL = ".xlsx";
|
|
3990
|
+
var PDF = "application/pdf";
|
|
3991
|
+
var JPG = "image/jpg";
|
|
3992
|
+
var JPEG = "image/jpeg";
|
|
3993
|
+
var PNG = "image/png";
|
|
3994
|
+
var WEBP = "image/webp";
|
|
3995
|
+
var SVG = "image/svg+xml";
|
|
3996
|
+
var TIFF = "image/tiff";
|
|
3997
|
+
var GIF = "image/gif";
|
|
3998
|
+
var isImage = (mimeType) => {
|
|
3999
|
+
if (!mimeType)
|
|
4000
|
+
return false;
|
|
4001
|
+
return [JPG, JPEG, PNG, WEBP, SVG, TIFF, GIF].includes(mimeType);
|
|
4002
|
+
};
|
|
4003
|
+
var DEFAULT_THUMBNAIL_CID_HASHES = {
|
|
4004
|
+
["AUDIO" /* AUDIO */]: "bafkreidir5laqi26ta6ivnpe2zpekgrfcyi4tb5x6vhwmwnledmzxshfb4",
|
|
4005
|
+
["VIDEO" /* VIDEO */]: "bafkreifm4edadl3j5luoyvw4p6elxeqd77la7bulee6vhq5gq4chfk32mu",
|
|
4006
|
+
["HTML" /* HTML */]: "bafkreifgvi6xfwqy2l6g45csyokejpaib52ee7zrw6etrxl2tas4xkkclq",
|
|
4007
|
+
["ZIP" /* ZIP */]: "bafkreihe5rr5jbkwzegisjlhxbb7jw22xw5oilfmgd2re6tz6buo4pasdq",
|
|
4008
|
+
// assuming all zip files are html directories
|
|
4009
|
+
["TEXT" /* TEXT */]: "bafkreiaez25nfgggzrnza2loxf6xueb2esm44pnyjyulwoslnipowrf56q",
|
|
4010
|
+
default: "bafkreihcoahllisbpb4eeypdwtm7go5uh275wxd7wf2tantpxlpjhviok4"
|
|
4011
|
+
};
|
|
4012
|
+
var MP4 = "video/mp4";
|
|
4013
|
+
var QUICKTIME = "video/quicktime";
|
|
4014
|
+
var M4V = "video/x-m4v";
|
|
4015
|
+
var WEBM = "video/webm";
|
|
4016
|
+
var M4A = "audio/x-m4a";
|
|
4017
|
+
var MPEG = "audio/mpeg";
|
|
4018
|
+
var MP3 = "audio/mp3";
|
|
4019
|
+
var WAV = "audio/wav";
|
|
4020
|
+
var VND_WAV = "audio/vnd.wav";
|
|
4021
|
+
var VND_WAVE = "audio/vnd.wave";
|
|
4022
|
+
var WAVE = "audio/wave";
|
|
4023
|
+
var X_WAV = "audio/x-wav";
|
|
4024
|
+
var AIFF = "audio/aiff";
|
|
4025
|
+
var GLTF = "model/gltf+json";
|
|
4026
|
+
var GLB = "model/gltf-binary";
|
|
4027
|
+
var GLTF_EXT = ".gltf";
|
|
4028
|
+
var GLB_EXT = ".glb";
|
|
4029
|
+
var JSON_MIME_TYPE = "application/json";
|
|
4030
|
+
var ZIP = "application/zip";
|
|
4031
|
+
var mimeToMediaType = {
|
|
4032
|
+
[HTML]: "HTML" /* HTML */,
|
|
4033
|
+
[JPG]: "IMAGE" /* IMAGE */,
|
|
4034
|
+
[JPEG]: "IMAGE" /* IMAGE */,
|
|
4035
|
+
[PNG]: "IMAGE" /* IMAGE */,
|
|
4036
|
+
[WEBP]: "IMAGE" /* IMAGE */,
|
|
4037
|
+
[SVG]: "IMAGE" /* IMAGE */,
|
|
4038
|
+
[TIFF]: "TIFF" /* TIFF */,
|
|
4039
|
+
[GIF]: "IMAGE" /* IMAGE */,
|
|
4040
|
+
[MP4]: "VIDEO" /* VIDEO */,
|
|
4041
|
+
[WEBM]: "VIDEO" /* VIDEO */,
|
|
4042
|
+
[QUICKTIME]: "VIDEO" /* VIDEO */,
|
|
4043
|
+
[M4V]: "VIDEO" /* VIDEO */,
|
|
4044
|
+
[MPEG]: "AUDIO" /* AUDIO */,
|
|
4045
|
+
[MP3]: "AUDIO" /* AUDIO */,
|
|
4046
|
+
[M4A]: "AUDIO" /* AUDIO */,
|
|
4047
|
+
[VND_WAV]: "AUDIO" /* AUDIO */,
|
|
4048
|
+
[VND_WAVE]: "AUDIO" /* AUDIO */,
|
|
4049
|
+
[WAV]: "AUDIO" /* AUDIO */,
|
|
4050
|
+
[WAVE]: "AUDIO" /* AUDIO */,
|
|
4051
|
+
[X_WAV]: "AUDIO" /* AUDIO */,
|
|
4052
|
+
[AIFF]: "AUDIO" /* AUDIO */,
|
|
4053
|
+
[TEXT_PLAIN]: "TEXT" /* TEXT */,
|
|
4054
|
+
[TEXT_PLAIN_UTF8]: "TEXT" /* TEXT */,
|
|
4055
|
+
[MARKDOWN]: "TEXT" /* TEXT */,
|
|
4056
|
+
[MARKDOWN_UTF8]: "TEXT" /* TEXT */,
|
|
4057
|
+
[CSV]: "CSV" /* CSV */,
|
|
4058
|
+
[NUMBERS]: "NUMBERS" /* NUMBERS */,
|
|
4059
|
+
[EXCEL]: "EXCEL" /* EXCEL */,
|
|
4060
|
+
[PDF]: "PDF" /* PDF */,
|
|
4061
|
+
[ZIP]: "ZIP" /* ZIP */,
|
|
4062
|
+
[GLTF]: "MODEL" /* MODEL */,
|
|
4063
|
+
[GLTF_EXT]: "MODEL" /* MODEL */,
|
|
4064
|
+
[GLB]: "MODEL" /* MODEL */,
|
|
4065
|
+
// GLTF returns 'application/json' as the mimetype,
|
|
4066
|
+
// and as the only JSON-encoded media we currently support,
|
|
4067
|
+
// we assume that if the mimetype is JSON, it's a GLTF
|
|
4068
|
+
[JSON_MIME_TYPE]: "MODEL" /* MODEL */,
|
|
4069
|
+
[GLB_EXT]: "MODEL" /* MODEL */
|
|
4070
|
+
};
|
|
4071
|
+
function mimeTypeToMedia(mimeType) {
|
|
4072
|
+
if (!mimeType)
|
|
4073
|
+
return "UNKNOWN" /* UNKNOWN */;
|
|
4074
|
+
return mimeToMediaType[mimeType] || "UNKNOWN" /* UNKNOWN */;
|
|
4075
|
+
}
|
|
4076
|
+
async function getMimeType(uri) {
|
|
4077
|
+
if (!uri)
|
|
4078
|
+
return uri;
|
|
4079
|
+
const res = await fetch(uri, { method: "HEAD" });
|
|
4080
|
+
let mimeType = res.headers.get("content-type");
|
|
4081
|
+
return mimeType;
|
|
4082
|
+
}
|
|
4083
|
+
|
|
4084
|
+
// src/ipfs/token-metadata.ts
|
|
4085
|
+
var makeTextTokenMetadata = (parameters) => {
|
|
4086
|
+
const { name, textFileUrl, thumbnailUrl, attributes = [] } = parameters;
|
|
4087
|
+
const content = textFileUrl ? {
|
|
4088
|
+
mime: TEXT_PLAIN,
|
|
4089
|
+
uri: textFileUrl
|
|
4090
|
+
} : null;
|
|
4091
|
+
const image = thumbnailUrl;
|
|
4092
|
+
const animation_url = textFileUrl;
|
|
4093
|
+
return {
|
|
4094
|
+
name,
|
|
4095
|
+
image,
|
|
4096
|
+
animation_url,
|
|
4097
|
+
content,
|
|
4098
|
+
attributes
|
|
4099
|
+
};
|
|
4100
|
+
};
|
|
4101
|
+
var makeMediaTokenMetadata = async ({
|
|
4102
|
+
name,
|
|
4103
|
+
description,
|
|
4104
|
+
attributes = [],
|
|
4105
|
+
mediaUrl,
|
|
4106
|
+
thumbnailUrl
|
|
4107
|
+
}) => {
|
|
4108
|
+
const contentUrl = mediaUrl;
|
|
4109
|
+
const fetchableContentUrl = getFetchableUrl(contentUrl);
|
|
4110
|
+
if (!fetchableContentUrl)
|
|
4111
|
+
throw new Error(`Content url (${contentUrl}) is not fetchable`);
|
|
4112
|
+
const mimeType = await getMimeType(fetchableContentUrl);
|
|
4113
|
+
const mediaType = mimeTypeToMedia(mimeType);
|
|
4114
|
+
let image = void 0;
|
|
4115
|
+
let animation_url = null;
|
|
4116
|
+
if (isImage(mimeType)) {
|
|
4117
|
+
image = contentUrl;
|
|
4118
|
+
} else {
|
|
4119
|
+
image = thumbnailUrl;
|
|
4120
|
+
animation_url = mediaUrl;
|
|
4121
|
+
}
|
|
4122
|
+
if (!image)
|
|
4123
|
+
image = `ipfs://${DEFAULT_THUMBNAIL_CID_HASHES[mediaType] || DEFAULT_THUMBNAIL_CID_HASHES.default}`;
|
|
4124
|
+
const content = contentUrl ? {
|
|
4125
|
+
mime: mimeType || "application/octet-stream",
|
|
4126
|
+
uri: contentUrl
|
|
4127
|
+
} : null;
|
|
4128
|
+
return {
|
|
4129
|
+
name,
|
|
4130
|
+
description,
|
|
4131
|
+
image,
|
|
4132
|
+
animation_url,
|
|
4133
|
+
content,
|
|
4134
|
+
attributes
|
|
4135
|
+
};
|
|
4136
|
+
};
|
|
4137
|
+
|
|
4138
|
+
// src/ipfs/text-metadata.ts
|
|
4139
|
+
var CHAR_LIMIT = 1111;
|
|
4140
|
+
var wrapText = ({
|
|
4141
|
+
ctx,
|
|
4142
|
+
text,
|
|
4143
|
+
x,
|
|
4144
|
+
y,
|
|
4145
|
+
maxWidth,
|
|
4146
|
+
lineHeight
|
|
4147
|
+
}) => {
|
|
4148
|
+
let words = text.replaceAll("\n", " \n ").split(/ +/);
|
|
4149
|
+
let line = "";
|
|
4150
|
+
let testLine = "";
|
|
4151
|
+
let lineArray = [];
|
|
4152
|
+
for (var n = 0; n < words.length; n++) {
|
|
4153
|
+
testLine += `${words[n]} `;
|
|
4154
|
+
let metrics = ctx.measureText(testLine);
|
|
4155
|
+
let testWidth = metrics.width;
|
|
4156
|
+
if (words[n]?.includes("\n") || testWidth > maxWidth && n > 0) {
|
|
4157
|
+
lineArray.push({ text: line, x, y });
|
|
4158
|
+
y += lineHeight;
|
|
4159
|
+
if (words[n]?.includes("\n")) {
|
|
4160
|
+
line = ``;
|
|
4161
|
+
testLine = ``;
|
|
4162
|
+
} else {
|
|
4163
|
+
line = `${words[n]} `;
|
|
4164
|
+
testLine = `${words[n]} `;
|
|
4165
|
+
}
|
|
4166
|
+
} else {
|
|
4167
|
+
line += `${words[n]} `;
|
|
4168
|
+
}
|
|
4169
|
+
if (n === words.length - 1) {
|
|
4170
|
+
lineArray.push({ text: line, x, y });
|
|
4171
|
+
}
|
|
4172
|
+
}
|
|
4173
|
+
return lineArray;
|
|
4174
|
+
};
|
|
4175
|
+
async function generateTextPreview(text) {
|
|
4176
|
+
const trimmedText = text.trim().slice(0, CHAR_LIMIT);
|
|
4177
|
+
const [width, height] = [500, 500];
|
|
4178
|
+
const padding = 20;
|
|
4179
|
+
const dpr = 2;
|
|
4180
|
+
const fontFamily = "Inter";
|
|
4181
|
+
const [fontSize, lineHeight] = [16, 24];
|
|
4182
|
+
const [textColor, backgroundColor] = ["black", "white"];
|
|
4183
|
+
return new Promise((resolve, reject) => {
|
|
4184
|
+
const canvas = document.createElement("canvas");
|
|
4185
|
+
canvas.width = width * dpr;
|
|
4186
|
+
canvas.height = height * dpr;
|
|
4187
|
+
const ctx = canvas.getContext("2d");
|
|
4188
|
+
if (!ctx) {
|
|
4189
|
+
return reject(new Error("Could not create canvas context"));
|
|
4190
|
+
}
|
|
4191
|
+
ctx.fillStyle = backgroundColor;
|
|
4192
|
+
ctx.fillRect(0, 0, width * dpr, width * dpr);
|
|
4193
|
+
ctx.fillStyle = textColor;
|
|
4194
|
+
ctx.font = `${fontSize * dpr}px ${fontFamily}`;
|
|
4195
|
+
const wrapped = wrapText({
|
|
4196
|
+
ctx,
|
|
4197
|
+
text: trimmedText,
|
|
4198
|
+
x: padding * dpr,
|
|
4199
|
+
y: fontSize * dpr + padding * dpr,
|
|
4200
|
+
maxWidth: width * dpr - padding * 2 * dpr,
|
|
4201
|
+
lineHeight: lineHeight * dpr
|
|
4202
|
+
});
|
|
4203
|
+
wrapped.forEach((line) => ctx.fillText(line.text, line.x, line.y));
|
|
4204
|
+
canvas.toBlob((blob) => {
|
|
4205
|
+
if (!blob) {
|
|
4206
|
+
return reject(new Error("Could not create blob"));
|
|
4207
|
+
}
|
|
4208
|
+
resolve(new File([blob], "thumbnail.png", { type: "image/png" }));
|
|
4209
|
+
});
|
|
4210
|
+
});
|
|
4211
|
+
}
|
|
4212
|
+
function generateTextTitle(text) {
|
|
4213
|
+
const firstLine = text.split("\n")[0];
|
|
4214
|
+
const firstSentence = firstLine?.split(". ")[0];
|
|
4215
|
+
if (firstSentence.length > 50) {
|
|
4216
|
+
return firstSentence.slice(0, 50) + "...";
|
|
4217
|
+
}
|
|
4218
|
+
return firstSentence;
|
|
4219
|
+
}
|
|
4220
|
+
var toTextFile = (text) => new File([text], "Untitled.txt", { type: "text/plain" });
|
|
4221
|
+
async function generateTextNftMetadataFiles(text) {
|
|
4222
|
+
const name = generateTextTitle(text);
|
|
4223
|
+
const textFile = toTextFile(text);
|
|
4224
|
+
const thumbnailFile = await generateTextPreview(text);
|
|
4225
|
+
return {
|
|
4226
|
+
name,
|
|
4227
|
+
mediaUrlFile: textFile,
|
|
4228
|
+
thumbnailFile
|
|
4229
|
+
};
|
|
4230
|
+
}
|
|
4231
|
+
|
|
4232
|
+
// src/allow-list/allow-list-client.ts
|
|
4233
|
+
var ALLOW_LIST_API_BASE = "http://allowlist.zora.co/";
|
|
4234
|
+
var createAllowList = async ({
|
|
4235
|
+
allowList,
|
|
4236
|
+
httpClient: httpClient2 = httpClient
|
|
4237
|
+
}) => {
|
|
4238
|
+
const { post: post2, retries: retries2 } = httpClient2;
|
|
4239
|
+
const data = {
|
|
4240
|
+
entries: allowList.entries.map((entry) => ({
|
|
4241
|
+
user: entry.user,
|
|
4242
|
+
maxCanMint: entry.maxCanMint,
|
|
4243
|
+
price: entry.price.toString()
|
|
4244
|
+
}))
|
|
4245
|
+
};
|
|
4246
|
+
return (await retries2(
|
|
4247
|
+
() => post2(`${ALLOW_LIST_API_BASE}allowlist`, data)
|
|
4248
|
+
)).root;
|
|
4249
|
+
};
|
|
2924
4250
|
export {
|
|
2925
4251
|
Create1155Client,
|
|
2926
4252
|
Errors,
|
|
@@ -2940,6 +4266,7 @@ export {
|
|
|
2940
4266
|
convertGetPremintApiResponse,
|
|
2941
4267
|
convertGetPremintOfCollectionApiResponse,
|
|
2942
4268
|
convertPremintFromApi,
|
|
4269
|
+
createAllowList,
|
|
2943
4270
|
createCollectorClient,
|
|
2944
4271
|
createCreatorClient,
|
|
2945
4272
|
decodeCallFailedError,
|
|
@@ -2950,7 +4277,9 @@ export {
|
|
|
2950
4277
|
encodeCollectOnManager,
|
|
2951
4278
|
encodePostSignatureInput,
|
|
2952
4279
|
encodePremintForAPI,
|
|
4280
|
+
generateTextNftMetadataFiles,
|
|
2953
4281
|
getApiNetworkConfigForChain,
|
|
4282
|
+
getContractAddressFromCreateReceipt,
|
|
2954
4283
|
getDataFromPremintReceipt,
|
|
2955
4284
|
getDefaultFixedPriceMinterAddress,
|
|
2956
4285
|
getMintsAccountBalanceWithPriceQuery,
|
|
@@ -2969,11 +4298,13 @@ export {
|
|
|
2969
4298
|
isPremintConfigV2,
|
|
2970
4299
|
isValidSignature,
|
|
2971
4300
|
makeCallWithEthSafeTransferData,
|
|
4301
|
+
makeMediaTokenMetadata,
|
|
2972
4302
|
makeMintRewardsRecipient,
|
|
2973
4303
|
makeNewPremint,
|
|
2974
4304
|
makePermitToCollectPremintOrNonPremint,
|
|
2975
4305
|
makePermitTransferBatchAndTypeData,
|
|
2976
4306
|
makePermitTransferTypeData,
|
|
4307
|
+
makeTextTokenMetadata,
|
|
2977
4308
|
makeUrls,
|
|
2978
4309
|
migratePremintConfigToV2,
|
|
2979
4310
|
mintWithEthParams,
|