Skip to content

Commit 8b090a7

Browse files
author
ikethirdweb
committed
Merge branch 'main' into ike/i18n
2 parents 34dcc21 + 8ea8f6e commit 8b090a7

25 files changed

+151
-49
lines changed

packages/sdk/src/evm/common/any-evm-utils/fetchPublishedContractFromPolygon.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { Contract } from "ethers";
2-
import ContractPublisherAbi from "@thirdweb-dev/contracts-js/dist/abis/ContractPublisher.json";
32
import type { ContractPublisher } from "@thirdweb-dev/contracts-js";
43
import { getContractPublisherAddress } from "../../constants/addresses/getContractPublisherAddress";
54
import { getChainProvider } from "../../constants/urls";
@@ -25,6 +24,9 @@ export async function fetchPublishedContractFromPolygon(
2524
const polygonChain = getSupportedChains().find((c) => c.chainId === 137);
2625
const chain = polygonChain || Polygon;
2726
const publisher = await resolveAddress(publisherAddress);
27+
const ContractPublisherAbi = (
28+
await import("@thirdweb-dev/contracts-js/dist/abis/ContractPublisher.json")
29+
).default;
2830
const contract = new Contract(
2931
getContractPublisherAddress(),
3032
ContractPublisherAbi,

packages/sdk/src/evm/common/currency/approveErc20Allowance.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import type { IERC20 } from "@thirdweb-dev/contracts-js";
2-
import ERC20Abi from "@thirdweb-dev/contracts-js/dist/abis/IERC20.json";
32
import { BigNumber, utils, type BigNumberish } from "ethers";
43
import { ContractWrapper } from "../../core/classes/contract-wrapper";
54

@@ -12,6 +11,9 @@ export async function approveErc20Allowance(
1211
) {
1312
const signer = contractToApprove.getSigner();
1413
const provider = contractToApprove.getProvider();
14+
const ERC20Abi = (
15+
await import("@thirdweb-dev/contracts-js/dist/abis/IERC20.json")
16+
).default;
1517
const erc20 = new ContractWrapper<IERC20>(
1618
signer || provider,
1719
currencyAddress,

packages/sdk/src/evm/common/currency/fetchCurrencyMetadata.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { getNativeTokenByChainId } from "../../constants/currency";
22
import { Currency } from "../../types/currency";
33
import type { IERC20Metadata } from "@thirdweb-dev/contracts-js";
4-
import ERC20MetadataAbi from "@thirdweb-dev/contracts-js/dist/abis/IERC20Metadata.json";
54
import { Contract, providers } from "ethers";
65
import { isNativeToken } from "./isNativeToken";
76

@@ -25,6 +24,9 @@ export async function fetchCurrencyMetadata(
2524
decimals: nativeToken.decimals,
2625
};
2726
} else {
27+
const ERC20MetadataAbi = (
28+
await import("@thirdweb-dev/contracts-js/dist/abis/IERC20Metadata.json")
29+
).default;
2830
const erc20 = new Contract(
2931
asset,
3032
ERC20MetadataAbi,

packages/sdk/src/evm/common/currency/hasERC20Allowance.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import type { IERC20 } from "@thirdweb-dev/contracts-js";
2-
import ERC20Abi from "@thirdweb-dev/contracts-js/dist/abis/IERC20.json";
32
import { BigNumber } from "ethers";
43
import { ContractWrapper } from "../../core/classes/contract-wrapper";
54

@@ -9,6 +8,9 @@ export async function hasERC20Allowance(
98
value: BigNumber,
109
) {
1110
const provider = contractToApprove.getProvider();
11+
const ERC20Abi = (
12+
await import("@thirdweb-dev/contracts-js/dist/abis/IERC20.json")
13+
).default;
1214
const erc20 = new ContractWrapper<IERC20>(
1315
provider,
1416
currencyAddress,

packages/sdk/src/evm/common/currency/setErc20Allowance.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import type { IERC20 } from "@thirdweb-dev/contracts-js";
2-
import ERC20Abi from "@thirdweb-dev/contracts-js/dist/abis/IERC20.json";
32
import { BigNumber } from "ethers";
43
import { ContractWrapper } from "../../core/classes/contract-wrapper";
54
import { isNativeToken } from "./isNativeToken";
@@ -13,6 +12,9 @@ export async function setErc20Allowance(
1312
if (isNativeToken(currencyAddress)) {
1413
overrides["value"] = value;
1514
} else {
15+
const ERC20Abi = (
16+
await import("@thirdweb-dev/contracts-js/dist/abis/IERC20.json")
17+
).default;
1618
const signer = contractToApprove.getSigner();
1719
const provider = contractToApprove.getProvider();
1820
const erc20 = new ContractWrapper<IERC20>(

packages/sdk/src/evm/common/legacy.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
1-
import IThirdwebContractABI from "@thirdweb-dev/contracts-js/dist/abis/IThirdwebContract.json";
21
import { providers, Contract, utils } from "ethers";
32

43
export async function getPrebuiltInfo(
54
address: string,
65
provider: providers.Provider,
76
): Promise<{ type: string; version: number } | undefined> {
87
try {
8+
const IThirdwebContractABI = (
9+
await import(
10+
"@thirdweb-dev/contracts-js/dist/abis/IThirdwebContract.json"
11+
)
12+
).default;
913
const contract = new Contract(address, IThirdwebContractABI, provider);
1014
const [_type, version] = await Promise.all([
1115
contract.contractType(),

packages/sdk/src/evm/common/marketplace.ts

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
import type { IERC1155, IERC165, IERC721 } from "@thirdweb-dev/contracts-js";
2-
import ERC1155Abi from "@thirdweb-dev/contracts-js/dist/abis/IERC1155.json";
3-
import ERC165Abi from "@thirdweb-dev/contracts-js/dist/abis/IERC165.json";
4-
import ERC721Abi from "@thirdweb-dev/contracts-js/dist/abis/IERC721.json";
52
import {
63
BigNumber,
74
BigNumberish,
@@ -43,12 +40,18 @@ export async function isTokenApprovedForTransfer(
4340
owner: string,
4441
): Promise<boolean> {
4542
try {
43+
const ERC165Abi = (
44+
await import("@thirdweb-dev/contracts-js/dist/abis/IERC165.json")
45+
).default;
4646
const erc165 = new Contract(assetContract, ERC165Abi, provider) as IERC165;
4747
const [isERC721, isERC1155] = await Promise.all([
4848
erc165.supportsInterface(InterfaceId_IERC721),
4949
erc165.supportsInterface(InterfaceId_IERC1155),
5050
]);
5151
if (isERC721) {
52+
const ERC721Abi = (
53+
await import("@thirdweb-dev/contracts-js/dist/abis/IERC721.json")
54+
).default;
5255
const asset = new Contract(assetContract, ERC721Abi, provider) as IERC721;
5356

5457
const approved = await asset.isApprovedForAll(
@@ -69,6 +72,9 @@ export async function isTokenApprovedForTransfer(
6972
transferrerContractAddress.toLowerCase()
7073
);
7174
} else if (isERC1155) {
75+
const ERC1155Abi = (
76+
await import("@thirdweb-dev/contracts-js/dist/abis/IERC1155.json")
77+
).default;
7278
const asset = new Contract(
7379
assetContract,
7480
ERC1155Abi,
@@ -101,6 +107,9 @@ export async function handleTokenApproval(
101107
tokenId: BigNumberish,
102108
from: string,
103109
): Promise<void> {
110+
const ERC165Abi = (
111+
await import("@thirdweb-dev/contracts-js/dist/abis/IERC165.json")
112+
).default;
104113
const erc165 = new ContractWrapper<IERC165>(
105114
contractWrapper.getSignerOrProvider(),
106115
assetContract,
@@ -114,6 +123,9 @@ export async function handleTokenApproval(
114123
]);
115124
// check for token approval
116125
if (isERC721) {
126+
const ERC721Abi = (
127+
await import("@thirdweb-dev/contracts-js/dist/abis/IERC721.json")
128+
).default;
117129
const asset = new ContractWrapper<IERC721>(
118130
contractWrapper.getSignerOrProvider(),
119131
assetContract,
@@ -138,6 +150,9 @@ export async function handleTokenApproval(
138150
}
139151
}
140152
} else if (isERC1155) {
153+
const ERC1155Abi = (
154+
await import("@thirdweb-dev/contracts-js/dist/abis/IERC1155.json")
155+
).default;
141156
const asset = new ContractWrapper<IERC1155>(
142157
contractWrapper.getSignerOrProvider(),
143158
assetContract,

packages/sdk/src/evm/common/metadata-resolver.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import { resolveContractUriAndBytecode } from "./feature-detection/resolveContra
44
import { ThirdwebStorage } from "@thirdweb-dev/storage";
55
import { Contract, providers } from "ethers";
66
import { fetchContractMetadata } from "./fetchContractMetadata";
7-
import TWRegistryABI from "@thirdweb-dev/contracts-js/dist/abis/TWMultichainRegistryLogic.json";
87
import { getMultichainRegistryAddress } from "../constants/addresses/getMultichainRegistryAddress";
98
import { getChainProvider } from "../constants/urls";
109
import type { TWMultichainRegistryLogic } from "@thirdweb-dev/contracts-js";
@@ -113,6 +112,11 @@ async function getMetadataUriFromMultichainRegistry(
113112
chainId: number,
114113
sdkOptions: SDKOptions,
115114
) {
115+
const TWRegistryABI = (
116+
await import(
117+
"@thirdweb-dev/contracts-js/dist/abis/TWMultichainRegistryLogic.json"
118+
)
119+
).default;
116120
if (!multichainRegistry) {
117121
const polygonChain = sdkOptions?.supportedChains?.find(
118122
(c) => c.chainId === 137,

packages/sdk/src/evm/common/nft.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,6 @@ import type {
1414
IERC165,
1515
IERC721Metadata,
1616
} from "@thirdweb-dev/contracts-js";
17-
import ERC165MetadataAbi from "@thirdweb-dev/contracts-js/dist/abis/IERC165.json";
18-
import ERC721MetadataAbi from "@thirdweb-dev/contracts-js/dist/abis/IERC721Metadata.json";
19-
import ERC1155MetadataAbi from "@thirdweb-dev/contracts-js/dist/abis/IERC1155Metadata.json";
2017
import type {
2118
ThirdwebStorage,
2219
UploadProgressEvent,
@@ -109,6 +106,9 @@ export async function fetchTokenMetadataForContract(
109106
storage: ThirdwebStorage,
110107
): Promise<NFTMetadata> {
111108
let uri: string | undefined;
109+
const ERC165MetadataAbi = (
110+
await import("@thirdweb-dev/contracts-js/dist/abis/IERC165.json")
111+
).default;
112112
const erc165 = new Contract(
113113
contractAddress,
114114
ERC165MetadataAbi,
@@ -119,13 +119,19 @@ export async function fetchTokenMetadataForContract(
119119
erc165.supportsInterface(InterfaceId_IERC1155),
120120
]);
121121
if (isERC721) {
122+
const ERC721MetadataAbi = (
123+
await import("@thirdweb-dev/contracts-js/dist/abis/IERC721Metadata.json")
124+
).default;
122125
const erc721 = new Contract(
123126
contractAddress,
124127
ERC721MetadataAbi,
125128
provider,
126129
) as IERC721Metadata;
127130
uri = await erc721.tokenURI(tokenId);
128131
} else if (isERC1155) {
132+
const ERC1155MetadataAbi = (
133+
await import("@thirdweb-dev/contracts-js/dist/abis/IERC1155Metadata.json")
134+
).default;
129135
const erc1155 = new Contract(
130136
contractAddress,
131137
ERC1155MetadataAbi,

packages/sdk/src/evm/common/verification.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import { getChainProvider } from "../constants/urls";
1313
import invariant from "tiny-invariant";
1414
import { fetchContractMetadataFromAddress } from "./metadata-resolver";
1515
import type { ContractPublisher } from "@thirdweb-dev/contracts-js";
16-
import ContractPublisherAbi from "@thirdweb-dev/contracts-js/dist/abis/ContractPublisher.json";
1716
import { fetchExtendedReleaseMetadata } from "./feature-detection/fetchExtendedReleaseMetadata";
1817
import { getContractPublisherAddress } from "../constants/addresses/getContractPublisherAddress";
1918

@@ -457,14 +456,20 @@ async function fetchDeployBytecodeFromPublishedContractMetadata(
457456
provider,
458457
);
459458
if (compilerMetaUri) {
459+
const ContractPublisherAbi = (
460+
await import(
461+
"@thirdweb-dev/contracts-js/dist/abis/ContractPublisher.json"
462+
)
463+
).default;
460464
const contract = new Contract(
461465
getContractPublisherAddress(),
462466
ContractPublisherAbi,
463467
getChainProvider("polygon", {}),
464468
) as ContractPublisher;
465469

466-
const publishedMetadataUri =
467-
await contract.getPublishedUriFromCompilerUri(compilerMetaUri);
470+
const publishedMetadataUri = await contract.getPublishedUriFromCompilerUri(
471+
compilerMetaUri,
472+
);
468473
if (publishedMetadataUri.length === 0) {
469474
throw Error(
470475
`Could not resolve published metadata URI from ${compilerMetaUri}`,

packages/sdk/src/evm/contracts/prebuilt-implementations/split.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import type {
22
IERC20,
33
Split as SplitContract,
44
} from "@thirdweb-dev/contracts-js";
5-
import ERC20Abi from "@thirdweb-dev/contracts-js/dist/abis/IERC20.json";
65
import { ThirdwebStorage } from "@thirdweb-dev/storage";
76
import { BigNumber, CallOverrides, Contract } from "ethers";
87
import { fetchCurrencyValue } from "../../common/currency/fetchCurrencyValue";
@@ -247,6 +246,9 @@ export class Split implements UpdateableNetwork {
247246
resolveAddress(tokenAddress),
248247
resolveAddress(walletAddress),
249248
]);
249+
const ERC20Abi = (
250+
await import("@thirdweb-dev/contracts-js/dist/abis/IERC20.json")
251+
).default;
250252
const erc20 = new Contract(
251253
resolvedToken,
252254
ERC20Abi,

packages/sdk/src/evm/contracts/prebuilt-implementations/vote.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import type { IERC20, VoteERC20 } from "@thirdweb-dev/contracts-js";
2-
import ERC20Abi from "@thirdweb-dev/contracts-js/dist/abis/IERC20.json";
32
import { ProposalCreatedEvent } from "@thirdweb-dev/contracts-js/dist/declarations/src/VoteERC20";
43
import { ThirdwebStorage } from "@thirdweb-dev/storage";
54
import {
@@ -301,6 +300,9 @@ export class Vote implements UpdateableNetwork {
301300
public async balanceOfToken(
302301
tokenAddress: AddressOrEns,
303302
): Promise<CurrencyValue> {
303+
const ERC20Abi = (
304+
await import("@thirdweb-dev/contracts-js/dist/abis/IERC20.json")
305+
).default;
304306
const erc20 = new Contract(
305307
await resolveAddress(tokenAddress),
306308
ERC20Abi,

packages/sdk/src/evm/core/classes/contract-wrapper.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import ForwarderABI from "@thirdweb-dev/contracts-js/dist/abis/Forwarder.json";
21
import { ThirdwebStorage } from "@thirdweb-dev/storage";
32
import {
43
BaseContract,
@@ -759,6 +758,9 @@ export class ContractWrapper<
759758
const provider = this.getProvider();
760759
invariant(signer, "provider is not set");
761760
invariant(provider, "provider is not set");
761+
const ForwarderABI = (
762+
await import("@thirdweb-dev/contracts-js/dist/abis/Forwarder.json")
763+
).default;
762764
const forwarderAddress =
763765
this.options.gasless.openzeppelin.relayerForwarderAddress ||
764766
(this.options.gasless.openzeppelin.useEOAForwarder

packages/sdk/src/evm/core/classes/delayed-reveal.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import type {
33
IThirdwebContract,
44
SignatureDrop,
55
} from "@thirdweb-dev/contracts-js";
6-
import DeprecatedAbi from "@thirdweb-dev/contracts-js/dist/abis/IDelayedRevealDeprecated.json";
76
import { TokensLazyMintedEvent } from "@thirdweb-dev/contracts-js/dist/declarations/src/DropERC721";
87
import { ThirdwebStorage } from "@thirdweb-dev/storage";
98
import { BigNumber, Contract, utils, type BigNumberish } from "ethers";
@@ -353,6 +352,11 @@ export class DelayedReveal<
353352
}
354353

355354
private async getLegacyEncryptedData(index: BigNumber) {
355+
const DeprecatedAbi = (
356+
await import(
357+
"@thirdweb-dev/contracts-js/dist/abis/IDelayedRevealDeprecated.json"
358+
)
359+
).default;
356360
const legacy = new Contract(
357361
this.contractWrapper.address,
358362
DeprecatedAbi,

packages/sdk/src/evm/core/classes/drop-claim-conditions.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import type {
1010
IERC20Metadata,
1111
Multicall,
1212
} from "@thirdweb-dev/contracts-js";
13-
import ERC20Abi from "@thirdweb-dev/contracts-js/dist/abis/IERC20.json";
1413
import type { IDropSinglePhase } from "@thirdweb-dev/contracts-js/src/DropSinglePhase";
1514
import type { IClaimCondition } from "@thirdweb-dev/contracts-js/src/IDrop";
1615
import { ThirdwebStorage } from "@thirdweb-dev/storage";
@@ -503,6 +502,9 @@ export class DropClaimConditions<
503502
reasons.push(ClaimEligibility.NotEnoughTokens);
504503
}
505504
} else {
505+
const ERC20Abi = (
506+
await import("@thirdweb-dev/contracts-js/dist/abis/IERC20.json")
507+
).default;
506508
const erc20 = new ContractWrapper<IERC20>(
507509
provider,
508510
claimCondition.currencyAddress,

packages/sdk/src/evm/core/classes/drop-erc1155-claim-conditions.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import type {
99
IERC20,
1010
Multicall,
1111
} from "@thirdweb-dev/contracts-js";
12-
import IERC20ABI from "@thirdweb-dev/contracts-js/dist/abis/IERC20.json";
1312
import { ThirdwebStorage } from "@thirdweb-dev/storage";
1413
import { BigNumber, constants, utils, type BigNumberish } from "ethers";
1514
import deepEqual from "fast-deep-equal";
@@ -486,6 +485,9 @@ export class DropErc1155ClaimConditions<
486485
reasons.push(ClaimEligibility.NotEnoughTokens);
487486
}
488487
} else {
488+
const IERC20ABI = (
489+
await import("@thirdweb-dev/contracts-js/dist/abis/IERC20.json")
490+
).default;
489491
const erc20 = new ContractWrapper<IERC20>(
490492
provider,
491493
claimCondition.currencyAddress,

0 commit comments

Comments
 (0)