thirdweb 5.53.0-nightly-9d84aff26615b6a553ac002e7f51a0ed5172eb5d-20240909000344 → 5.53.1-nightly-865c5e3b16af70c3660f30ba8cffc5d6e360a389-20240911000352
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/chains/chain-definitions/assetchain-testnet.js +25 -0
- package/dist/cjs/chains/chain-definitions/assetchain-testnet.js.map +1 -0
- package/dist/cjs/contract/deployment/utils/bootstrap.js +1 -1
- package/dist/cjs/contract/deployment/utils/bootstrap.js.map +1 -1
- package/dist/cjs/exports/contract.js +4 -1
- package/dist/cjs/exports/contract.js.map +1 -1
- package/dist/cjs/exports/deploys.js +2 -1
- package/dist/cjs/exports/deploys.js.map +1 -1
- package/dist/cjs/exports/extensions/erc721.js +4 -2
- package/dist/cjs/exports/extensions/erc721.js.map +1 -1
- package/dist/cjs/exports/react.native.js +4 -1
- package/dist/cjs/exports/react.native.js.map +1 -1
- package/dist/cjs/extensions/erc721/lazyMinting/read/getBatchesToReveal.js +14 -16
- package/dist/cjs/extensions/erc721/lazyMinting/read/getBatchesToReveal.js.map +1 -1
- package/dist/cjs/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.js +19 -0
- package/dist/cjs/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.js.map +1 -1
- package/dist/cjs/extensions/erc721/lazyMinting/write/reveal.js +3 -20
- package/dist/cjs/extensions/erc721/lazyMinting/write/reveal.js.map +1 -1
- package/dist/cjs/extensions/prebuilts/deploy-published.js +30 -14
- package/dist/cjs/extensions/prebuilts/deploy-published.js.map +1 -1
- package/dist/cjs/react/core/hooks/others/useProfiles.js +1 -1
- package/dist/cjs/react/core/hooks/transaction/useSendTransaction.js +4 -2
- package/dist/cjs/react/core/hooks/transaction/useSendTransaction.js.map +1 -1
- package/dist/cjs/react/core/utils/walletIcon.js +5 -1
- package/dist/cjs/react/core/utils/walletIcon.js.map +1 -1
- package/dist/cjs/react/native/ui/components/WalletImage.js +2 -0
- package/dist/cjs/react/native/ui/components/WalletImage.js.map +1 -1
- package/dist/cjs/react/native/ui/connect/InAppWalletUI.js +1 -0
- package/dist/cjs/react/native/ui/connect/InAppWalletUI.js.map +1 -1
- package/dist/cjs/react/native/ui/icons/svgs.js +2 -1
- package/dist/cjs/react/native/ui/icons/svgs.js.map +1 -1
- package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js +1 -0
- package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
- package/dist/cjs/react/web/wallets/shared/oauthSignIn.js +1 -0
- package/dist/cjs/react/web/wallets/shared/oauthSignIn.js.map +1 -1
- package/dist/cjs/social/profiles.js.map +1 -1
- package/dist/cjs/utils/any-evm/compute-published-contract-address.js +0 -4
- package/dist/cjs/utils/any-evm/compute-published-contract-address.js.map +1 -1
- package/dist/cjs/utils/any-evm/compute-published-contract-deploy-info.js +2 -3
- package/dist/cjs/utils/any-evm/compute-published-contract-deploy-info.js.map +1 -1
- package/dist/cjs/utils/any-evm/deploy-metadata.js +0 -19
- package/dist/cjs/utils/any-evm/deploy-metadata.js.map +1 -1
- package/dist/cjs/utils/bytecode/resolveImplementation.js +17 -10
- package/dist/cjs/utils/bytecode/resolveImplementation.js.map +1 -1
- package/dist/cjs/utils/domains.js +1 -1
- package/dist/cjs/utils/domains.js.map +1 -1
- package/dist/cjs/utils/ipfs.js +2 -0
- package/dist/cjs/utils/ipfs.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/wallets/coinbase/coinbaseMobileSDK.js +52 -24
- package/dist/cjs/wallets/coinbase/coinbaseMobileSDK.js.map +1 -1
- package/dist/cjs/wallets/coinbase/coinbaseWebSDK.js.map +1 -1
- package/dist/cjs/wallets/coinbase/utils.js +1 -1
- package/dist/cjs/wallets/coinbase/utils.js.map +1 -1
- package/dist/cjs/wallets/in-app/core/authentication/types.js +1 -0
- package/dist/cjs/wallets/in-app/core/authentication/types.js.map +1 -1
- package/dist/cjs/wallets/in-app/native/native-connector.js +2 -0
- package/dist/cjs/wallets/in-app/native/native-connector.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/in-app.js +2 -0
- package/dist/cjs/wallets/in-app/web/in-app.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/web-connector.js +2 -0
- package/dist/cjs/wallets/in-app/web/lib/web-connector.js.map +1 -1
- package/dist/cjs/wallets/types.js +1 -0
- package/dist/cjs/wallets/types.js.map +1 -1
- package/dist/esm/chains/chain-definitions/assetchain-testnet.js +22 -0
- package/dist/esm/chains/chain-definitions/assetchain-testnet.js.map +1 -0
- package/dist/esm/contract/deployment/utils/bootstrap.js +1 -1
- package/dist/esm/contract/deployment/utils/bootstrap.js.map +1 -1
- package/dist/esm/exports/contract.js +2 -0
- package/dist/esm/exports/contract.js.map +1 -1
- package/dist/esm/exports/deploys.js +1 -1
- package/dist/esm/exports/deploys.js.map +1 -1
- package/dist/esm/exports/extensions/erc721.js +3 -3
- package/dist/esm/exports/extensions/erc721.js.map +1 -1
- package/dist/esm/exports/react.native.js +2 -0
- package/dist/esm/exports/react.native.js.map +1 -1
- package/dist/esm/exports/social.js +0 -1
- package/dist/esm/exports/social.js.map +1 -1
- package/dist/esm/extensions/erc721/lazyMinting/read/getBatchesToReveal.js +13 -15
- package/dist/esm/extensions/erc721/lazyMinting/read/getBatchesToReveal.js.map +1 -1
- package/dist/esm/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.js +21 -3
- package/dist/esm/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.js.map +1 -1
- package/dist/esm/extensions/erc721/lazyMinting/write/reveal.js +1 -20
- package/dist/esm/extensions/erc721/lazyMinting/write/reveal.js.map +1 -1
- package/dist/esm/extensions/prebuilts/deploy-published.js +29 -14
- package/dist/esm/extensions/prebuilts/deploy-published.js.map +1 -1
- package/dist/esm/react/core/hooks/others/useProfiles.js +1 -1
- package/dist/esm/react/core/hooks/transaction/useSendTransaction.js +4 -2
- package/dist/esm/react/core/hooks/transaction/useSendTransaction.js.map +1 -1
- package/dist/esm/react/core/utils/walletIcon.js +4 -0
- package/dist/esm/react/core/utils/walletIcon.js.map +1 -1
- package/dist/esm/react/native/ui/components/WalletImage.js +3 -1
- package/dist/esm/react/native/ui/components/WalletImage.js.map +1 -1
- package/dist/esm/react/native/ui/connect/InAppWalletUI.js +2 -1
- package/dist/esm/react/native/ui/connect/InAppWalletUI.js.map +1 -1
- package/dist/esm/react/native/ui/icons/svgs.js +1 -0
- package/dist/esm/react/native/ui/icons/svgs.js.map +1 -1
- package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js +1 -0
- package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
- package/dist/esm/react/web/wallets/shared/oauthSignIn.js +1 -0
- package/dist/esm/react/web/wallets/shared/oauthSignIn.js.map +1 -1
- package/dist/esm/social/profiles.js.map +1 -1
- package/dist/esm/utils/any-evm/compute-published-contract-address.js +0 -4
- package/dist/esm/utils/any-evm/compute-published-contract-address.js.map +1 -1
- package/dist/esm/utils/any-evm/compute-published-contract-deploy-info.js +2 -3
- package/dist/esm/utils/any-evm/compute-published-contract-deploy-info.js.map +1 -1
- package/dist/esm/utils/any-evm/deploy-metadata.js +0 -19
- package/dist/esm/utils/any-evm/deploy-metadata.js.map +1 -1
- package/dist/esm/utils/bytecode/resolveImplementation.js +17 -10
- package/dist/esm/utils/bytecode/resolveImplementation.js.map +1 -1
- package/dist/esm/utils/domains.js +1 -1
- package/dist/esm/utils/domains.js.map +1 -1
- package/dist/esm/utils/ipfs.js +2 -0
- package/dist/esm/utils/ipfs.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/wallets/coinbase/coinbaseMobileSDK.js +50 -22
- package/dist/esm/wallets/coinbase/coinbaseMobileSDK.js.map +1 -1
- package/dist/esm/wallets/coinbase/coinbaseWebSDK.js.map +1 -1
- package/dist/esm/wallets/coinbase/utils.js +1 -1
- package/dist/esm/wallets/coinbase/utils.js.map +1 -1
- package/dist/esm/wallets/in-app/core/authentication/types.js +1 -0
- package/dist/esm/wallets/in-app/core/authentication/types.js.map +1 -1
- package/dist/esm/wallets/in-app/native/native-connector.js +2 -0
- package/dist/esm/wallets/in-app/native/native-connector.js.map +1 -1
- package/dist/esm/wallets/in-app/web/in-app.js +2 -0
- package/dist/esm/wallets/in-app/web/in-app.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/web-connector.js +2 -0
- package/dist/esm/wallets/in-app/web/lib/web-connector.js.map +1 -1
- package/dist/esm/wallets/types.js +1 -0
- package/dist/esm/wallets/types.js.map +1 -1
- package/dist/types/chains/chain-definitions/assetchain-testnet.d.ts +7 -0
- package/dist/types/chains/chain-definitions/assetchain-testnet.d.ts.map +1 -0
- package/dist/types/contract/actions/compiler-metadata.d.ts +2 -2
- package/dist/types/contract/actions/compiler-metadata.d.ts.map +1 -1
- package/dist/types/contract/actions/get-compiler-metadata.d.ts +1 -1
- package/dist/types/contract/actions/get-compiler-metadata.d.ts.map +1 -1
- package/dist/types/contract/verification/source-files.d.ts +2 -2
- package/dist/types/contract/verification/source-files.d.ts.map +1 -1
- package/dist/types/exports/contract.d.ts +1 -0
- package/dist/types/exports/contract.d.ts.map +1 -1
- package/dist/types/exports/deploys.d.ts +1 -1
- package/dist/types/exports/deploys.d.ts.map +1 -1
- package/dist/types/exports/extensions/erc721.d.ts +3 -3
- package/dist/types/exports/extensions/erc721.d.ts.map +1 -1
- package/dist/types/exports/react.d.ts +1 -0
- package/dist/types/exports/react.d.ts.map +1 -1
- package/dist/types/exports/react.native.d.ts +2 -0
- package/dist/types/exports/react.native.d.ts.map +1 -1
- package/dist/types/exports/social.d.ts +1 -1
- package/dist/types/exports/social.d.ts.map +1 -1
- package/dist/types/extensions/erc721/lazyMinting/read/getBatchesToReveal.d.ts +1 -1
- package/dist/types/extensions/erc721/lazyMinting/read/getBatchesToReveal.d.ts.map +1 -1
- package/dist/types/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.d.ts +12 -0
- package/dist/types/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.d.ts.map +1 -1
- package/dist/types/extensions/erc721/lazyMinting/write/reveal.d.ts +1 -0
- package/dist/types/extensions/erc721/lazyMinting/write/reveal.d.ts.map +1 -1
- package/dist/types/extensions/prebuilts/deploy-published.d.ts +16 -0
- package/dist/types/extensions/prebuilts/deploy-published.d.ts.map +1 -1
- package/dist/types/react/core/hooks/others/useProfiles.d.ts +1 -1
- package/dist/types/react/core/hooks/transaction/useSendTransaction.d.ts.map +1 -1
- package/dist/types/react/core/social/useSocialProfiles.d.ts +1 -1
- package/dist/types/react/core/social/useSocialProfiles.d.ts.map +1 -1
- package/dist/types/react/core/utils/storage.d.ts +1 -1
- package/dist/types/react/core/utils/storage.d.ts.map +1 -1
- package/dist/types/react/core/utils/wallet.d.ts +1 -1
- package/dist/types/react/core/utils/walletIcon.d.ts +3 -1
- package/dist/types/react/core/utils/walletIcon.d.ts.map +1 -1
- package/dist/types/react/native/ui/components/WalletImage.d.ts.map +1 -1
- package/dist/types/react/native/ui/connect/InAppWalletUI.d.ts.map +1 -1
- package/dist/types/react/native/ui/icons/svgs.d.ts +1 -0
- package/dist/types/react/native/ui/icons/svgs.d.ts.map +1 -1
- package/dist/types/react/web/wallets/shared/ConnectWalletSocialOptions.d.ts.map +1 -1
- package/dist/types/react/web/wallets/shared/oauthSignIn.d.ts.map +1 -1
- package/dist/types/social/profiles.d.ts +2 -2
- package/dist/types/social/profiles.d.ts.map +1 -1
- package/dist/types/social/types.d.ts +2 -2
- package/dist/types/social/types.d.ts.map +1 -1
- package/dist/types/utils/any-evm/compute-published-contract-address.d.ts +0 -4
- package/dist/types/utils/any-evm/compute-published-contract-address.d.ts.map +1 -1
- package/dist/types/utils/any-evm/compute-published-contract-deploy-info.d.ts.map +1 -1
- package/dist/types/utils/any-evm/deploy-metadata.d.ts +3 -6
- package/dist/types/utils/any-evm/deploy-metadata.d.ts.map +1 -1
- package/dist/types/utils/ipfs.d.ts +1 -1
- package/dist/types/utils/ipfs.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/wallets/coinbase/coinbaseMobileSDK.d.ts +2 -3
- package/dist/types/wallets/coinbase/coinbaseMobileSDK.d.ts.map +1 -1
- package/dist/types/wallets/coinbase/coinbaseWebSDK.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/authentication/types.d.ts +1 -0
- package/dist/types/wallets/in-app/core/authentication/types.d.ts.map +1 -1
- package/dist/types/wallets/in-app/native/native-connector.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/in-app.d.ts +2 -0
- package/dist/types/wallets/in-app/web/in-app.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/web-connector.d.ts.map +1 -1
- package/dist/types/wallets/types.d.ts +2 -2
- package/dist/types/wallets/types.d.ts.map +1 -1
- package/package.json +15 -2
- package/src/chains/chain-definitions/assetchain-testnet.ts +22 -0
- package/src/contract/actions/compiler-metadata.ts +2 -2
- package/src/contract/deployment/publisher.test.ts +2 -2
- package/src/contract/deployment/utils/bootstrap.ts +1 -1
- package/src/contract/verification/source-files.ts +2 -2
- package/src/event/actions/get-events.test.ts +13 -0
- package/src/exports/contract.ts +6 -0
- package/src/exports/deploys.ts +2 -0
- package/src/exports/extensions/erc721.ts +3 -1
- package/src/exports/react.native.ts +9 -0
- package/src/exports/react.ts +6 -0
- package/src/exports/social.ts +6 -1
- package/src/extensions/erc721/lazyMinting/read/getBatchesToReveal.ts +15 -15
- package/src/extensions/erc721/lazyMinting/write/createAndReveal.test.ts +84 -0
- package/src/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.ts +33 -3
- package/src/extensions/erc721/lazyMinting/write/reveal.test.ts +1 -45
- package/src/extensions/erc721/lazyMinting/write/reveal.ts +2 -23
- package/src/extensions/modules/ClaimableERC1155/claimableERC1155.test.ts +1 -1
- package/src/extensions/modules/ClaimableERC20/claimableERC20.test.ts +1 -1
- package/src/extensions/modules/ClaimableERC721/claimableERC721.test.ts +1 -1
- package/src/extensions/modules/OpenEditionMetadataERC721/openEditionERC721.test.ts +1 -1
- package/src/extensions/prebuilts/deploy-modular-core.test.ts +1 -1
- package/src/extensions/prebuilts/deploy-published.ts +61 -22
- package/src/react/core/hooks/others/useProfiles.ts +1 -1
- package/src/react/core/hooks/transaction/useSendTransaction.ts +4 -2
- package/src/react/core/utils/walletIcon.ts +5 -0
- package/src/react/native/ui/components/WalletImage.tsx +3 -0
- package/src/react/native/ui/connect/InAppWalletUI.tsx +2 -0
- package/src/react/native/ui/icons/svgs.ts +2 -0
- package/src/react/web/wallets/shared/ConnectWalletSocialOptions.tsx +1 -0
- package/src/react/web/wallets/shared/oauthSignIn.ts +1 -0
- package/src/social/profiles.ts +3 -3
- package/src/social/types.ts +2 -2
- package/src/utils/any-evm/compute-published-contract-address.ts +0 -4
- package/src/utils/any-evm/compute-published-contract-deploy-info.ts +2 -3
- package/src/utils/any-evm/deploy-metadata.ts +9 -34
- package/src/utils/bytecode/resolveImplementation.test.ts +9 -0
- package/src/utils/bytecode/resolveImplementation.ts +21 -13
- package/src/utils/domains.ts +1 -1
- package/src/utils/ipfs.ts +3 -1
- package/src/version.ts +1 -1
- package/src/wallets/coinbase/coinbaseMobileSDK.ts +66 -35
- package/src/wallets/coinbase/coinbaseWebSDK.ts +0 -1
- package/src/wallets/coinbase/utils.ts +1 -1
- package/src/wallets/in-app/core/authentication/types.ts +1 -0
- package/src/wallets/in-app/native/native-connector.ts +2 -0
- package/src/wallets/in-app/web/in-app.ts +2 -0
- package/src/wallets/in-app/web/lib/web-connector.ts +2 -0
- package/src/wallets/types.ts +1 -0
@@ -9,6 +9,7 @@ import { simulateTransaction } from "../../transaction/actions/simulate.js";
|
|
9
9
|
import { prepareContractCall } from "../../transaction/prepare-contract-call.js";
|
10
10
|
import { resolveMethod } from "../../transaction/resolve-method.js";
|
11
11
|
import type { CompilerMetadata } from "../../utils/any-evm/deploy-metadata.js";
|
12
|
+
import type { FetchDeployMetadataResult } from "../../utils/any-evm/deploy-metadata.js";
|
12
13
|
import { isZkSyncChain } from "../../utils/any-evm/zksync/isZkSyncChain.js";
|
13
14
|
import type { Account } from "../../wallets/interfaces/wallet.js";
|
14
15
|
|
@@ -58,21 +59,56 @@ export async function deployPublishedContract(
|
|
58
59
|
version,
|
59
60
|
implementationConstructorParams,
|
60
61
|
} = options;
|
61
|
-
const
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
62
|
+
const deployMetadata = await fetchPublishedContractMetadata({
|
63
|
+
client,
|
64
|
+
contractId: isZkSyncChain(chain) ? `${contractId}_ZkSync` : contractId,
|
65
|
+
publisher,
|
66
|
+
version,
|
67
|
+
});
|
68
|
+
|
69
|
+
return deployContractfromDeployMetadata({
|
70
|
+
account,
|
71
|
+
chain,
|
72
|
+
deployMetadata,
|
73
|
+
client,
|
74
|
+
contractParams,
|
75
|
+
implementationConstructorParams,
|
76
|
+
});
|
77
|
+
}
|
78
|
+
|
79
|
+
/**
|
80
|
+
* @internal
|
81
|
+
*/
|
82
|
+
export type DeployContractfromDeployMetadataOptions = {
|
83
|
+
client: ThirdwebClient;
|
84
|
+
chain: Chain;
|
85
|
+
account: Account;
|
86
|
+
deployMetadata: FetchDeployMetadataResult;
|
87
|
+
contractParams: unknown[];
|
88
|
+
implementationConstructorParams?: unknown[];
|
89
|
+
};
|
68
90
|
|
69
|
-
|
91
|
+
/**
|
92
|
+
* @internal
|
93
|
+
*/
|
94
|
+
export async function deployContractfromDeployMetadata(
|
95
|
+
options: DeployContractfromDeployMetadataOptions,
|
96
|
+
) {
|
97
|
+
const {
|
98
|
+
client,
|
99
|
+
account,
|
100
|
+
chain,
|
101
|
+
contractParams,
|
102
|
+
deployMetadata,
|
103
|
+
implementationConstructorParams,
|
104
|
+
} = options;
|
105
|
+
switch (deployMetadata?.deployType) {
|
70
106
|
case "standard": {
|
71
107
|
return directDeploy({
|
72
108
|
account,
|
73
109
|
client,
|
74
110
|
chain,
|
75
|
-
compilerMetadata,
|
111
|
+
compilerMetadata: deployMetadata,
|
76
112
|
contractParams,
|
77
113
|
});
|
78
114
|
}
|
@@ -89,19 +125,21 @@ export async function deployPublishedContract(
|
|
89
125
|
chain,
|
90
126
|
client,
|
91
127
|
account,
|
92
|
-
contractId,
|
128
|
+
contractId: deployMetadata.name,
|
93
129
|
constructorParams: implementationConstructorParams || [],
|
94
|
-
publisher,
|
130
|
+
publisher: deployMetadata.publisher,
|
95
131
|
});
|
96
|
-
const initializeFunction =
|
132
|
+
const initializeFunction = deployMetadata.abi.find(
|
97
133
|
(i) =>
|
98
134
|
i.type === "function" &&
|
99
135
|
i.name ===
|
100
|
-
(
|
136
|
+
(deployMetadata.factoryDeploymentData
|
101
137
|
?.implementationInitializerFunction || "initialize"),
|
102
138
|
) as AbiFunction;
|
103
139
|
if (!initializeFunction) {
|
104
|
-
throw new Error(
|
140
|
+
throw new Error(
|
141
|
+
`Could not find initialize function for ${deployMetadata.name}`,
|
142
|
+
);
|
105
143
|
}
|
106
144
|
const initializeTransaction = prepareContractCall({
|
107
145
|
contract: getContract({
|
@@ -109,7 +147,10 @@ export async function deployPublishedContract(
|
|
109
147
|
chain,
|
110
148
|
address: implementationContract.address,
|
111
149
|
}),
|
112
|
-
method:
|
150
|
+
method: resolveMethod(
|
151
|
+
deployMetadata.factoryDeploymentData
|
152
|
+
?.implementationInitializerFunction || "initialize",
|
153
|
+
),
|
113
154
|
params: contractParams,
|
114
155
|
});
|
115
156
|
|
@@ -122,14 +163,14 @@ export async function deployPublishedContract(
|
|
122
163
|
});
|
123
164
|
}
|
124
165
|
case "customFactory": {
|
125
|
-
if (!
|
166
|
+
if (!deployMetadata?.factoryDeploymentData?.customFactoryInput) {
|
126
167
|
throw new Error("No custom factory info found");
|
127
168
|
}
|
128
169
|
const factoryAddress =
|
129
|
-
|
170
|
+
deployMetadata?.factoryDeploymentData?.customFactoryInput
|
130
171
|
?.customFactoryAddresses?.[chain.id];
|
131
172
|
const factoryFunction =
|
132
|
-
|
173
|
+
deployMetadata.factoryDeploymentData?.customFactoryInput
|
133
174
|
?.factoryFunction;
|
134
175
|
if (!factoryAddress || !factoryFunction) {
|
135
176
|
throw new Error(`No factory address found on chain ${chain.id}`);
|
@@ -161,15 +202,13 @@ export async function deployPublishedContract(
|
|
161
202
|
account,
|
162
203
|
client,
|
163
204
|
chain,
|
164
|
-
compilerMetadata,
|
205
|
+
compilerMetadata: deployMetadata,
|
165
206
|
contractParams,
|
166
207
|
});
|
167
208
|
}
|
168
209
|
default:
|
169
210
|
// If a deployType was specified but we don't support it, throw an error
|
170
|
-
throw new Error(
|
171
|
-
`Unsupported deploy type: ${extendedMetadata?.deployType}`,
|
172
|
-
);
|
211
|
+
throw new Error(`Unsupported deploy type: ${deployMetadata?.deployType}`);
|
173
212
|
}
|
174
213
|
}
|
175
214
|
|
@@ -10,6 +10,7 @@ import type { WaitForReceiptOptions } from "../../../../transaction/actions/wait
|
|
10
10
|
import type { PreparedTransaction } from "../../../../transaction/prepare-transaction.js";
|
11
11
|
import { resolvePromisedValue } from "../../../../utils/promise/resolve-promised-value.js";
|
12
12
|
import type { Wallet } from "../../../../wallets/interfaces/wallet.js";
|
13
|
+
import { getTokenBalance } from "../../../../wallets/utils/getTokenBalance.js";
|
13
14
|
import { getWalletBalance } from "../../../../wallets/utils/getWalletBalance.js";
|
14
15
|
import type { LocaleId } from "../../../web/ui/types.js";
|
15
16
|
import type { Theme } from "../../design-system/index.js";
|
@@ -175,10 +176,11 @@ export function useSendTransactionCore(args: {
|
|
175
176
|
chain: tx.chain,
|
176
177
|
}),
|
177
178
|
_erc20Value?.tokenAddress
|
178
|
-
?
|
179
|
+
? getTokenBalance({
|
179
180
|
client: tx.client,
|
180
|
-
|
181
|
+
account,
|
181
182
|
chain: tx.chain,
|
183
|
+
tokenAddress: _erc20Value.tokenAddress,
|
182
184
|
})
|
183
185
|
: undefined,
|
184
186
|
getTotalTxCostForBuy(tx, account.address),
|
@@ -19,6 +19,8 @@ export const twitchIconUri =
|
|
19
19
|
"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgdmlld0JveD0iMCAwIDExMS43ODY2NyAxMjcuMzg2NjciCiAgIGhlaWdodD0iMTI3LjM4NjY3IgogICB3aWR0aD0iMTExLjc4NjY3IgogICB4bWw6c3BhY2U9InByZXNlcnZlIgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmczMzU1IgogICBzb2RpcG9kaTpkb2NuYW1lPSJUd2l0Y2hfbG9nby5zdmciCiAgIGlua3NjYXBlOnZlcnNpb249IjEuMS4xICgzYmY1YWUwZDI1LCAyMDIxLTA5LTIwKSIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZGVmcwogICBpZD0iZGVmczI5Ij4KICAgIAogICAgCiAgPC9kZWZzPjxzb2RpcG9kaTpuYW1lZHZpZXcKICAgaWQ9Im5hbWVkdmlldzI3IgogICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgIGlua3NjYXBlOnBhZ2VjaGVja2VyYm9hcmQ9IjAiCiAgIHNob3dncmlkPSJmYWxzZSIKICAgaW5rc2NhcGU6em9vbT0iNC4xOTkyMjg0IgogICBpbmtzY2FwZTpjeD0iLTUwLjYwNDUzNSIKICAgaW5rc2NhcGU6Y3k9IjE0MC4zODI5MyIKICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIyNTYwIgogICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMzg3IgogICBpbmtzY2FwZTp3aW5kb3cteD0iMTkxMiIKICAgaW5rc2NhcGU6d2luZG93LXk9Ii04IgogICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJzdmczMzU1IiAvPgogIDxnCiAgIHRyYW5zZm9ybT0ibWF0cml4KDEuMzMzMzMzMywwLDAsLTEuMzMzMzMzMywxMDEuMzkzMzMsNjcuNTg5MzMyKSIKICAgaWQ9ImczMzY1Ij4KICAgICAgPHBhdGgKICAgaWQ9InBhdGgzMzY3IgogICBzdHlsZT0iZmlsbDojNjQ0MWE1O2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lIgogICBkPSJtIDAsMCAtMTMuNjUyLC0xMy42NTEgaCAtMjEuNDQ1IGwgLTExLjY5OSwtMTEuNjk3IHYgMTEuNjk3IEggLTY0LjM0NCBWIDQyLjg5MyBIIDAgWiBtIC03Mi4xNDYsNTAuNjkyIC0zLjg5OSwtMTUuNTk5IHYgLTcwLjE5IGggMTcuNTUgdiAtOS43NTEgaCA5Ljc0NiBsIDkuNzUyLDkuNzUxIGggMTUuNTk2IEwgNy43OTUsLTMuOTA1IHYgNTQuNTk3IHoiIC8+CiAgICA8L2c+PHBhdGgKICAgaWQ9InBhdGgzMzY5IgogICBzdHlsZT0iZmlsbDojNjQ0MWE1O2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDoxLjMzMzMzIgogICBkPSJtIDQ0LjE5NzMzMSw2Mi4zOTQyNjYgaCAxMC4zOTg2NyBWIDMxLjE5MjkzMyBoIC0xMC4zOTg2NyB6IG0gMjguNTk0NjcsMCBoIDEwLjM5ODY2IFYgMzEuMTkyOTMzIGggLTEwLjM5ODY2IHoiIC8+Cjwvc3ZnPgo=";
|
20
20
|
export const discordIconUri =
|
21
21
|
"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDEwMCAxMDAiIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiBpZD0iZGlzY29yZCI+PHBhdGggZmlsbD0iIzY2NjVkMiIgZD0iTTg1LjIyLDI0Ljk1OGMtMTEuNDU5LTguNTc1LTIyLjQzOC04LjMzNC0yMi40MzgtOC4zMzRsLTEuMTIyLDEuMjgyCgkJCQljMTMuNjIzLDQuMDg3LDE5Ljk1NCwxMC4wOTcsMTkuOTU0LDEwLjA5N2MtMTkuNDkxLTEwLjczMS00NC4zMTctMTAuNjU0LTY0LjU5LDBjMCwwLDYuNTcxLTYuMzMxLDIwLjk5Ni0xMC40MThsLTAuODAxLTAuOTYyCgkJCQljMCwwLTEwLjg5OS0wLjI0LTIyLjQzOCw4LjMzNGMwLDAtMTEuNTQsMjAuNzU1LTExLjU0LDQ2LjMxOWMwLDAsNi43MzIsMTEuNTQsMjQuNDQyLDEyLjEwMWMwLDAsMi45NjUtMy41MjYsNS4zNjktNi41NzEKCQkJCWMtMTAuMTc3LTMuMDQ1LTE0LjAyNC05LjM3Ni0xNC4wMjQtOS4zNzZjNi4zOTQsNC4wMDEsMTIuODU5LDYuNTA1LDIwLjkxNiw4LjA5NGMxMy4xMDgsMi42OTgsMjkuNDEzLTAuMDc2LDQxLjU5MS04LjA5NAoJCQkJYzAsMC00LjAwNyw2LjQ5MS0xNC41MDUsOS40NTZjMi40MDQsMi45NjUsNS4yODksNi40MTEsNS4yODksNi40MTFjMTcuNzEtMC41NjEsMjQuNDQxLTEyLjEwMSwyNC40NDEtMTIuMDIKCQkJCUM5Ni43NTksNDUuNzEzLDg1LjIyLDI0Ljk1OCw4NS4yMiwyNC45NTh6IE0zNS4wNTUsNjMuODI0Yy00LjQ4OCwwLTguMTc0LTMuOTI3LTguMTc0LTguODE1CgkJCQljMC4zMjgtMTEuNzA3LDE2LjEwMi0xMS42NzEsMTYuMzQ4LDBDNDMuMjI5LDU5Ljg5NywzOS42MjIsNjMuODI0LDM1LjA1NSw2My44MjR6IE02NC4zMDQsNjMuODI0CgkJCQljLTQuNDg4LDAtOC4xNzQtMy45MjctOC4xNzQtOC44MTVjMC4zNi0xMS42ODQsMTUuOTM3LTExLjY4OSwxNi4zNDgsMEM3Mi40NzgsNTkuODk3LDY4Ljg3Miw2My44MjQsNjQuMzA0LDYzLjgyNHoiPjwvcGF0aD48L3N2Zz4=";
|
22
|
+
export const lineIconUri =
|
23
|
+
"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMjAiIGhlaWdodD0iMzIwIiB2aWV3Qm94PSIwIDAgMzIwIDMyMCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiMwNmM3NTU7fS5jbHMtMntmaWxsOiNmZmY7fTwvc3R5bGU+PC9kZWZzPjxnIGlkPSJMYXllcl8yIiBkYXRhLW5hbWU9IkxheWVyIDIiPjxnIGlkPSJMSU5FX0xPR08iIGRhdGEtbmFtZT0iTElORSBMT0dPIj48cmVjdCBjbGFzcz0iY2xzLTEiIHdpZHRoPSIzMjAiIGhlaWdodD0iMzIwIiByeD0iNzIuMTQiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0yNjYuNjYsMTQ0LjkyYzAtNDcuNzQtNDcuODYtODYuNTgtMTA2LjY5LTg2LjU4UzUzLjI4LDk3LjE4LDUzLjI4LDE0NC45MmMwLDQyLjgsMzgsNzguNjUsODkuMjIsODUuNDIsMy40OC43NSw4LjIxLDIuMjksOS40LDUuMjYsMS4wOCwyLjcuNzEsNi45My4zNSw5LjY1LDAsMC0xLjI1LDcuNTMtMS41Miw5LjEzLS40NywyLjctMi4xNSwxMC41NSw5LjI0LDUuNzZzNjEuNDQtMzYuMTgsODMuODItNjEuOTVoMEMyNTkuMjUsMTgxLjI0LDI2Ni42NiwxNjQsMjY2LjY2LDE0NC45MloiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0yMzEuMTYsMTcyLjQ5aC0zMGEyLDIsMCwwLDEtMi0ydjBoMFYxMjMuOTRoMHYwYTIsMiwwLDAsMSwyLTJoMzBhMiwyLDAsMCwxLDIsMnY3LjU3YTIsMiwwLDAsMS0yLDJIMjEwLjc5djcuODVoMjAuMzdhMiwyLDAsMCwxLDIsMlYxNTFhMiwyLDAsMCwxLTIsMkgyMTAuNzl2Ny44NmgyMC4zN2EyLDIsMCwwLDEsMiwydjcuNTZBMiwyLDAsMCwxLDIzMS4xNiwxNzIuNDlaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTIwLjI5LDE3Mi40OWEyLDIsMCwwLDAsMi0ydi03LjU2YTIsMiwwLDAsMC0yLTJIOTkuOTJ2LTM3YTIsMiwwLDAsMC0yLTJIOTAuMzJhMiwyLDAsMCwwLTIsMnY0Ni41M2gwdjBhMiwyLDAsMCwwLDIsMmgzMFoiLz48cmVjdCBjbGFzcz0iY2xzLTEiIHg9IjEyOC43MyIgeT0iMTIxLjg1IiB3aWR0aD0iMTEuNjQiIGhlaWdodD0iNTAuNjQiIHJ4PSIyLjA0Ii8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTg5Ljg0LDEyMS44NWgtNy41NmEyLDIsMCwwLDAtMiwydjI3LjY2bC0yMS4zLTI4Ljc3YTEuMiwxLjIsMCwwLDAtLjE3LS4yMXYwbC0uMTItLjEyLDAsMC0uMTEtLjA5LS4wNiwwLS4xMS0uMDgtLjA2LDAtLjExLS4wNi0uMDcsMC0uMTEsMC0uMDcsMC0uMTIsMC0uMDgsMC0uMTIsMGgtLjA4bC0uMTEsMGgtNy43MWEyLDIsMCwwLDAtMiwydjQ2LjU2YTIsMiwwLDAsMCwyLDJoNy41N2EyLDIsMCwwLDAsMi0yVjE0Mi44MWwyMS4zMywyOC44YTIsMiwwLDAsMCwuNTIuNTJoMGwuMTIuMDguMDYsMCwuMS4wNS4xLDAsLjA3LDAsLjE0LDBoMGEyLjQyLDIuNDIsMCwwLDAsLjU0LjA3aDcuNTJhMiwyLDAsMCwwLDItMlYxMjMuODlBMiwyLDAsMCwwLDE4OS44NCwxMjEuODVaIi8+PC9nPjwvZz48L3N2Zz4=";
|
22
24
|
export const farcasterIconUri =
|
23
25
|
"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAwMCIgaGVpZ2h0PSIxMDAwIiB2aWV3Qm94PSIwIDAgMTAwMCAxMDAwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cmVjdCB3aWR0aD0iMTAwMCIgaGVpZ2h0PSIxMDAwIiByeD0iMjAwIiBmaWxsPSIjODU1RENEIi8+CjxwYXRoIGQ9Ik0yNTcuNzc4IDE1NS41NTZINzQyLjIyMlY4NDQuNDQ0SDY3MS4xMTFWNTI4Ljg4OUg2NzAuNDE0QzY2Mi41NTQgNDQxLjY3NyA1ODkuMjU4IDM3My4zMzMgNTAwIDM3My4zMzNDNDEwLjc0MiAzNzMuMzMzIDMzNy40NDYgNDQxLjY3NyAzMjkuNTg2IDUyOC44ODlIMzI4Ljg4OVY4NDQuNDQ0SDI1Ny43NzhWMTU1LjU1NloiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0xMjguODg5IDI1My4zMzNMMTU3Ljc3OCAzNTEuMTExSDE4Mi4yMjJWNzQ2LjY2N0MxNjkuOTQ5IDc0Ni42NjcgMTYwIDc1Ni42MTYgMTYwIDc2OC44ODlWNzk1LjU1NkgxNTUuNTU2QzE0My4yODMgNzk1LjU1NiAxMzMuMzMzIDgwNS41MDUgMTMzLjMzMyA4MTcuNzc4Vjg0NC40NDRIMzgyLjIyMlY4MTcuNzc4QzM4Mi4yMjIgODA1LjUwNSAzNzIuMjczIDc5NS41NTYgMzYwIDc5NS41NTZIMzU1LjU1NlY3NjguODg5QzM1NS41NTYgNzU2LjYxNiAzNDUuNjA2IDc0Ni42NjcgMzMzLjMzMyA3NDYuNjY3SDMwNi42NjdWMjUzLjMzM0gxMjguODg5WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTY3NS41NTYgNzQ2LjY2N0M2NjMuMjgzIDc0Ni42NjcgNjUzLjMzMyA3NTYuNjE2IDY1My4zMzMgNzY4Ljg4OVY3OTUuNTU2SDY0OC44ODlDNjM2LjYxNiA3OTUuNTU2IDYyNi42NjcgODA1LjUwNSA2MjYuNjY3IDgxNy43NzhWODQ0LjQ0NEg4NzUuNTU2VjgxNy43NzhDODc1LjU1NiA4MDUuNTA1IDg2NS42MDYgNzk1LjU1NiA4NTMuMzMzIDc5NS41NTZIODQ4Ljg4OVY3NjguODg5Qzg0OC44ODkgNzU2LjYxNiA4MzguOTQgNzQ2LjY2NyA4MjYuNjY3IDc0Ni42NjdWMzUxLjExMUg4NTEuMTExTDg4MCAyNTMuMzMzSDcwMi4yMjJWNzQ2LjY2N0g2NzUuNTU2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==";
|
24
26
|
export const telegramIconUri =
|
@@ -46,6 +48,7 @@ export const socialIcons = {
|
|
46
48
|
apple: appleIconUri,
|
47
49
|
facebook: facebookIconUri,
|
48
50
|
discord: discordIconUri,
|
51
|
+
line: lineIconUri,
|
49
52
|
farcaster: farcasterIconUri,
|
50
53
|
telegram: telegramIconUri,
|
51
54
|
};
|
@@ -67,6 +70,8 @@ export function getWalletIcon(provider: string) {
|
|
67
70
|
return passkeyIcon;
|
68
71
|
case "discord":
|
69
72
|
return discordIconUri;
|
73
|
+
case "line":
|
74
|
+
return lineIconUri;
|
70
75
|
case "farcaster":
|
71
76
|
return farcasterIconUri;
|
72
77
|
case "telegram":
|
@@ -12,6 +12,7 @@ import {
|
|
12
12
|
FACEBOOK_ICON,
|
13
13
|
FARCASTER_ICON,
|
14
14
|
GOOGLE_ICON,
|
15
|
+
LINE_ICON,
|
15
16
|
PASSKEY_ICON,
|
16
17
|
PHONE_ICON,
|
17
18
|
TELEGRAM_ICON,
|
@@ -81,6 +82,8 @@ export function getAuthProviderImage(authProvider: string | null): string {
|
|
81
82
|
return FACEBOOK_ICON;
|
82
83
|
case "discord":
|
83
84
|
return DISCORD_ICON;
|
85
|
+
case "line":
|
86
|
+
return LINE_ICON;
|
84
87
|
case "farcaster":
|
85
88
|
return FARCASTER_ICON;
|
86
89
|
case "telegram":
|
@@ -34,6 +34,7 @@ import {
|
|
34
34
|
FACEBOOK_ICON,
|
35
35
|
FARCASTER_ICON,
|
36
36
|
GOOGLE_ICON,
|
37
|
+
LINE_ICON,
|
37
38
|
TELEGRAM_ICON,
|
38
39
|
} from "../icons/svgs.js";
|
39
40
|
import type { ModalState } from "./ConnectModal.js";
|
@@ -53,6 +54,7 @@ const socialIcons = {
|
|
53
54
|
facebook: FACEBOOK_ICON,
|
54
55
|
apple: APPLE_ICON,
|
55
56
|
discord: DISCORD_ICON,
|
57
|
+
line: LINE_ICON,
|
56
58
|
farcaster: FARCASTER_ICON,
|
57
59
|
telegram: TELEGRAM_ICON,
|
58
60
|
};
|
@@ -37,6 +37,8 @@ export const DISCORD_ICON = `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink
|
|
37
37
|
</g>
|
38
38
|
</svg>`;
|
39
39
|
|
40
|
+
export const LINE_ICON = `<svg xmlns="http://www.w3.org/2000/svg" width="320" height="320" viewBox="0 0 320 320"><defs><style>.cls-1{fill:#06c755;}.cls-2{fill:#fff;}</style></defs><g id="Layer_2" data-name="Layer 2"><g id="LINE_LOGO" data-name="LINE LOGO"><rect class="cls-1" width="320" height="320" rx="72.14"/><path class="cls-2" d="M266.66,144.92c0-47.74-47.86-86.58-106.69-86.58S53.28,97.18,53.28,144.92c0,42.8,38,78.65,89.22,85.42,3.48.75,8.21,2.29,9.4,5.26,1.08,2.7.71,6.93.35,9.65,0,0-1.25,7.53-1.52,9.13-.47,2.7-2.15,10.55,9.24,5.76s61.44-36.18,83.82-61.95h0C259.25,181.24,266.66,164,266.66,144.92Z"/><path class="cls-1" d="M231.16,172.49h-30a2,2,0,0,1-2-2v0h0V123.94h0v0a2,2,0,0,1,2-2h30a2,2,0,0,1,2,2v7.57a2,2,0,0,1-2,2H210.79v7.85h20.37a2,2,0,0,1,2,2V151a2,2,0,0,1-2,2H210.79v7.86h20.37a2,2,0,0,1,2,2v7.56A2,2,0,0,1,231.16,172.49Z"/><path class="cls-1" d="M120.29,172.49a2,2,0,0,0,2-2v-7.56a2,2,0,0,0-2-2H99.92v-37a2,2,0,0,0-2-2H90.32a2,2,0,0,0-2,2v46.53h0v0a2,2,0,0,0,2,2h30Z"/><rect class="cls-1" x="128.73" y="121.85" width="11.64" height="50.64" rx="2.04"/><path class="cls-1" d="M189.84,121.85h-7.56a2,2,0,0,0-2,2v27.66l-21.3-28.77a1.2,1.2,0,0,0-.17-.21v0l-.12-.12,0,0-.11-.09-.06,0-.11-.08-.06,0-.11-.06-.07,0-.11,0-.07,0-.12,0-.08,0-.12,0h-.08l-.11,0h-7.71a2,2,0,0,0-2,2v46.56a2,2,0,0,0,2,2h7.57a2,2,0,0,0,2-2V142.81l21.33,28.8a2,2,0,0,0,.52.52h0l.12.08.06,0,.1.05.1,0,.07,0,.14,0h0a2.42,2.42,0,0,0,.54.07h7.52a2,2,0,0,0,2-2V123.89A2,2,0,0,0,189.84,121.85Z"/></g></g></svg>`;
|
41
|
+
|
40
42
|
export const FARCASTER_ICON = `<svg width={width} height={height} viewBox="0 0 1000 1000" fill="none" xmlns="http://www.w3.org/2000/svg">
|
41
43
|
<rect width="1000" height="1000" rx="200" fill="#855DCD"/>
|
42
44
|
<path d="M257.778 155.556H742.222V844.444H671.111V528.889H670.414C662.554 441.677 589.258 373.333 500 373.333C410.742 373.333 337.446 441.677 329.586 528.889H328.889V844.444H257.778V155.556Z" fill="white"/>
|
package/src/social/profiles.ts
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import type { ThirdwebClient } from "../client/client.js";
|
2
2
|
import { getThirdwebBaseUrl } from "../utils/domains.js";
|
3
3
|
import { getClientFetch } from "../utils/fetch.js";
|
4
|
-
import type {
|
4
|
+
import type { SocialProfile } from "./types.js";
|
5
5
|
|
6
6
|
/**
|
7
7
|
* Fetches the wallet's available social profiles.
|
@@ -23,7 +23,7 @@ import type { SocialProfiles } from "./types.js";
|
|
23
23
|
export async function getSocialProfiles(args: {
|
24
24
|
address: string;
|
25
25
|
client: ThirdwebClient;
|
26
|
-
}): Promise<
|
26
|
+
}): Promise<SocialProfile[]> {
|
27
27
|
const { address, client } = args;
|
28
28
|
|
29
29
|
const clientFetch = getClientFetch(client);
|
@@ -42,5 +42,5 @@ export async function getSocialProfiles(args: {
|
|
42
42
|
}
|
43
43
|
}
|
44
44
|
|
45
|
-
return (await response.json()).data as
|
45
|
+
return (await response.json()).data as SocialProfile[];
|
46
46
|
}
|
package/src/social/types.ts
CHANGED
@@ -34,10 +34,10 @@ export type EnsProfile = {
|
|
34
34
|
telegram?: string;
|
35
35
|
};
|
36
36
|
|
37
|
-
export type
|
37
|
+
export type SocialProfile = {
|
38
38
|
type: "farcaster" | "lens" | "ens";
|
39
39
|
name?: string;
|
40
40
|
avatar?: string;
|
41
41
|
bio?: string;
|
42
42
|
metadata?: FarcasterProfile | LensProfile | EnsProfile;
|
43
|
-
}
|
43
|
+
};
|
@@ -20,10 +20,6 @@ import type { FetchDeployMetadataResult } from "./deploy-metadata.js";
|
|
20
20
|
* ```ts
|
21
21
|
* import { computePublishedContractAddress } from "thirdweb/deploys";
|
22
22
|
*
|
23
|
-
* const contractMetadata = await fetchPublishedContractMetadata({
|
24
|
-
* client,
|
25
|
-
* chain,
|
26
|
-
* });
|
27
23
|
* const address = await computePublishedContractAddress({
|
28
24
|
* client,
|
29
25
|
* chain,
|
@@ -46,14 +46,13 @@ export async function computeDeploymentInfoFromMetadata(args: {
|
|
46
46
|
salt?: string;
|
47
47
|
}) {
|
48
48
|
const { client, chain, contractMetadata, constructorParams, salt } = args;
|
49
|
-
const { compilerMetadata } = contractMetadata;
|
50
49
|
const create2FactoryAddress = await computeCreate2FactoryAddress({
|
51
50
|
client,
|
52
51
|
chain,
|
53
52
|
});
|
54
|
-
const bytecode =
|
53
|
+
const bytecode = contractMetadata.bytecode;
|
55
54
|
const constructorAbi =
|
56
|
-
(
|
55
|
+
(contractMetadata.abi.find(
|
57
56
|
(abi) => abi.type === "constructor",
|
58
57
|
) as AbiConstructor) || [];
|
59
58
|
const encodedArgs = encodeAbiParameters(
|
@@ -10,10 +10,8 @@ export type FetchDeployMetadataOptions = {
|
|
10
10
|
client: ThirdwebClient;
|
11
11
|
};
|
12
12
|
|
13
|
-
export type FetchDeployMetadataResult =
|
14
|
-
|
15
|
-
extendedMetadata: ExtendedMetadata | undefined;
|
16
|
-
};
|
13
|
+
export type FetchDeployMetadataResult = Partial<ExtendedMetadata> &
|
14
|
+
CompilerMetadata;
|
17
15
|
|
18
16
|
/**
|
19
17
|
* Fetches the deployment metadata.
|
@@ -24,31 +22,6 @@ export type FetchDeployMetadataResult = {
|
|
24
22
|
export async function fetchDeployMetadata(
|
25
23
|
options: FetchDeployMetadataOptions,
|
26
24
|
): Promise<FetchDeployMetadataResult> {
|
27
|
-
const [compilerMetadata, extendedMetadata] = await Promise.all([
|
28
|
-
fetchCompilerMetadata(options),
|
29
|
-
fetchExtendedMetadata(options).catch(() => undefined),
|
30
|
-
]);
|
31
|
-
return { compilerMetadata, extendedMetadata };
|
32
|
-
}
|
33
|
-
|
34
|
-
// helpers
|
35
|
-
/**
|
36
|
-
* Fetches the published metadata.
|
37
|
-
* @param options - The options for fetching the published metadata.
|
38
|
-
* @internal
|
39
|
-
*/
|
40
|
-
async function fetchExtendedMetadata(
|
41
|
-
options: FetchDeployMetadataOptions,
|
42
|
-
): Promise<ExtendedMetadata> {
|
43
|
-
return download({
|
44
|
-
uri: options.uri,
|
45
|
-
client: options.client,
|
46
|
-
}).then((r) => r.json());
|
47
|
-
}
|
48
|
-
|
49
|
-
async function fetchCompilerMetadata(
|
50
|
-
options: FetchDeployMetadataOptions,
|
51
|
-
): Promise<CompilerMetadata> {
|
52
25
|
const rawMeta: RawCompilerMetadata = await download({
|
53
26
|
uri: options.uri,
|
54
27
|
client: options.client,
|
@@ -144,11 +117,13 @@ export type ExtendedMetadata = {
|
|
144
117
|
publisherAddress: string;
|
145
118
|
}[]
|
146
119
|
| undefined;
|
147
|
-
defaultModules?:
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
120
|
+
defaultModules?:
|
121
|
+
| Array<{
|
122
|
+
moduleName: string;
|
123
|
+
moduleVersion: string;
|
124
|
+
publisherAddress: string;
|
125
|
+
}>
|
126
|
+
| undefined;
|
152
127
|
publisher?: string | undefined;
|
153
128
|
audit?: string | undefined;
|
154
129
|
logo?: string | undefined;
|
@@ -8,6 +8,8 @@ import {
|
|
8
8
|
import { ANVIL_CHAIN } from "../../../test/src/chains.js";
|
9
9
|
import { TEST_CLIENT } from "../../../test/src/test-clients.js";
|
10
10
|
import {
|
11
|
+
BASE_USDC_IMPLEMENTATION,
|
12
|
+
BASE_USDC_PROXY_CONTRACT,
|
11
13
|
NFT_DROP_CONTRACT,
|
12
14
|
NFT_DROP_IMPLEMENTATION,
|
13
15
|
POLYGON_USDT_IMPLEMENTATION,
|
@@ -31,6 +33,13 @@ describe("Resolve implementation", async () => {
|
|
31
33
|
);
|
32
34
|
});
|
33
35
|
|
36
|
+
it("should extract implementation address for base USDC proxy contract", async () => {
|
37
|
+
const resolved = resolveImplementation(BASE_USDC_PROXY_CONTRACT);
|
38
|
+
expect((await resolved).address).to.equal(
|
39
|
+
BASE_USDC_IMPLEMENTATION.toLowerCase(),
|
40
|
+
);
|
41
|
+
});
|
42
|
+
|
34
43
|
it("should extract implementation address for ERC1967 proxy contract", async () => {
|
35
44
|
const implementationAddress = await deployContract({
|
36
45
|
client: TEST_CLIENT,
|
@@ -120,24 +120,32 @@ async function getImplementationFromStorageSlot(
|
|
120
120
|
});
|
121
121
|
|
122
122
|
try {
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
if (proxyStorage === ZERO_BYTES32 && contract.chain.id === 137) {
|
132
|
-
proxyStorage = await eth_getStorageAt(rpcRequest, {
|
123
|
+
const proxyStoragePromises = [
|
124
|
+
eth_getStorageAt(rpcRequest, {
|
125
|
+
address: contract.address,
|
126
|
+
position:
|
127
|
+
"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc",
|
128
|
+
}),
|
129
|
+
eth_getStorageAt(rpcRequest, {
|
133
130
|
address: contract.address,
|
134
131
|
position:
|
135
132
|
// keccak256("matic.network.proxy.implementation") - used in polygon USDT proxy: https://polygonscan.com/address/0xc2132d05d31c914a87c6611c10748aeb04b58e8f#code
|
136
133
|
"0xbaab7dbf64751104133af04abc7d9979f0fda3b059a322a8333f533d3f32bf7f",
|
137
|
-
})
|
138
|
-
|
134
|
+
}),
|
135
|
+
eth_getStorageAt(rpcRequest, {
|
136
|
+
address: contract.address,
|
137
|
+
position:
|
138
|
+
// keccak256("org.zeppelinos.proxy.implementation") - e.g. base USDC proxy: https://basescan.org/address/0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913#code
|
139
|
+
"0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3",
|
140
|
+
}),
|
141
|
+
];
|
139
142
|
|
140
|
-
|
143
|
+
const proxyStorages = await Promise.all(proxyStoragePromises);
|
144
|
+
const proxyStorage = proxyStorages.find(
|
145
|
+
(storage) => storage !== ZERO_BYTES32,
|
146
|
+
);
|
147
|
+
|
148
|
+
return proxyStorage ? `0x${proxyStorage.slice(-40)}` : AddressZero;
|
141
149
|
} catch {
|
142
150
|
return undefined;
|
143
151
|
}
|
package/src/utils/domains.ts
CHANGED
@@ -32,8 +32,8 @@ type DomainOverrides = {
|
|
32
32
|
};
|
33
33
|
|
34
34
|
export const DEFAULT_RPC_URL = "rpc.thirdweb.com";
|
35
|
-
const DEFAULT_IN_APP_WALLET_URL = "embedded-wallet.thirdweb.com";
|
36
35
|
const DEFAULT_SOCIAL_URL = "social.thirdweb.com";
|
36
|
+
const DEFAULT_IN_APP_WALLET_URL = "embedded-wallet.thirdweb.com";
|
37
37
|
const DEFAULT_PAY_URL = "pay.thirdweb.com";
|
38
38
|
const DEFAULT_STORAGE_URL = "storage.thirdweb.com";
|
39
39
|
const DEFAULT_BUNDLER_URL = "bundler.thirdweb.com";
|
package/src/utils/ipfs.ts
CHANGED
@@ -107,7 +107,9 @@ export async function uploadOrExtractURIs<
|
|
107
107
|
* @throws If the batch contains URIs with different base URIs or if no base URI is found.
|
108
108
|
* @internal
|
109
109
|
*/
|
110
|
-
export function getBaseUriFromBatch(uris: string[]): string {
|
110
|
+
export function getBaseUriFromBatch(uris: string | string[]): string {
|
111
|
+
// biome-ignore lint/style/noParameterAssign: lemme do my stuff
|
112
|
+
uris = Array.isArray(uris) ? uris : [uris];
|
111
113
|
const [base, ...rest] = uris.map((uri) => {
|
112
114
|
// remove query parameters
|
113
115
|
// biome-ignore lint/style/noParameterAssign: lemme do my stuff
|
package/src/version.ts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export const version = "5.53.
|
1
|
+
export const version = "5.53.1-nightly-865c5e3b16af70c3660f30ba8cffc5d6e360a389-20240911000352";
|
@@ -1,9 +1,5 @@
|
|
1
|
-
import { configure, handleResponse } from "@coinbase/wallet-mobile-sdk";
|
2
1
|
import type { ProviderInterface } from "@coinbase/wallet-sdk";
|
3
|
-
import {
|
4
|
-
import type { Chain } from "../../chains/types.js";
|
5
|
-
import type { COINBASE } from "../constants.js";
|
6
|
-
import type { CreateWalletArgs } from "../wallet-types.js";
|
2
|
+
import type { CoinbaseWalletCreationOptions } from "./coinbaseWebSDK.js";
|
7
3
|
|
8
4
|
let _provider: ProviderInterface | undefined;
|
9
5
|
|
@@ -11,44 +7,78 @@ let _provider: ProviderInterface | undefined;
|
|
11
7
|
* @internal
|
12
8
|
*/
|
13
9
|
export async function getCoinbaseMobileProvider(
|
14
|
-
options?:
|
10
|
+
options?: CoinbaseWalletCreationOptions,
|
15
11
|
): Promise<ProviderInterface> {
|
16
12
|
if (!_provider) {
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
13
|
+
// if explicitly set to smart wallet only, use the smart wallet provider
|
14
|
+
const useSmartWallet = options?.walletConfig?.options === "smartWalletOnly";
|
15
|
+
let mobileProvider: ProviderInterface;
|
16
|
+
if (useSmartWallet) {
|
17
|
+
mobileProvider = (await initSmartWalletProvider(
|
18
|
+
options,
|
19
|
+
)) as unknown as ProviderInterface;
|
20
|
+
const ExpoLinking = await import("expo-linking");
|
21
|
+
const { handleResponse } = await import("@mobile-wallet-protocol/client");
|
22
|
+
ExpoLinking.addEventListener("url", ({ url }) => {
|
23
|
+
handleResponse(url);
|
24
|
+
});
|
25
|
+
} else {
|
26
|
+
// otherwise, use the coinbase app provider
|
27
|
+
// TODO: remove this path once the new @mobile-wallet-protocol/client supports it
|
28
|
+
mobileProvider = (await initCoinbaseAppProvider(
|
29
|
+
options,
|
30
|
+
)) as unknown as ProviderInterface;
|
31
|
+
const ExpoLinking = await import("expo-linking");
|
32
|
+
const { handleResponse } = await import("@coinbase/wallet-mobile-sdk");
|
33
|
+
ExpoLinking.addEventListener("url", ({ url }) => {
|
33
34
|
// @ts-expect-error - Passing a URL object to handleResponse crashes the function
|
34
35
|
handleResponse(url);
|
35
|
-
}
|
36
|
-
}
|
36
|
+
});
|
37
|
+
}
|
38
|
+
_provider = mobileProvider;
|
37
39
|
return mobileProvider;
|
38
40
|
}
|
39
41
|
return _provider;
|
40
42
|
}
|
41
43
|
|
42
|
-
async function
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
44
|
+
async function initSmartWalletProvider(
|
45
|
+
options?: CoinbaseWalletCreationOptions,
|
46
|
+
) {
|
47
|
+
const { EIP1193Provider, Wallets } = await import(
|
48
|
+
"@mobile-wallet-protocol/client"
|
49
|
+
);
|
50
|
+
const appDeeplinkUrl = options?.mobileConfig?.callbackURL;
|
51
|
+
if (!appDeeplinkUrl) {
|
52
|
+
throw new Error(
|
53
|
+
"callbackURL is required. Set it when creating the coinbase wallet. Ex: createWallet('com.coinbase.wallet', { mobileConfig: { callbackUrl: 'https://example.com' }}",
|
54
|
+
);
|
55
|
+
}
|
56
|
+
const sdk = new EIP1193Provider({
|
57
|
+
metadata: {
|
58
|
+
appName: options?.appMetadata?.name || "thirdweb powered app",
|
59
|
+
appChainIds: options?.chains?.map((c) => c.id),
|
60
|
+
appDeeplinkUrl,
|
61
|
+
appLogoUrl: options?.appMetadata?.logoUrl,
|
62
|
+
},
|
63
|
+
wallet: Wallets.CoinbaseSmartWallet, // TODO support both smart and EOA once the SDK supports it
|
64
|
+
});
|
65
|
+
return sdk;
|
66
|
+
}
|
67
|
+
|
68
|
+
async function initCoinbaseAppProvider(
|
69
|
+
options?: CoinbaseWalletCreationOptions,
|
70
|
+
) {
|
71
|
+
const appDeeplinkUrl = options?.mobileConfig?.callbackURL;
|
72
|
+
if (!appDeeplinkUrl) {
|
73
|
+
throw new Error(
|
74
|
+
"callbackURL is required. Set it when creating the coinbase wallet. Ex: createWallet('com.coinbase.wallet', { mobileConfig: { callbackUrl: 'https://example.com' }}",
|
75
|
+
);
|
76
|
+
}
|
77
|
+
const { configure } = await import("@coinbase/wallet-mobile-sdk");
|
48
78
|
configure({
|
49
|
-
callbackURL: new URL(
|
50
|
-
hostURL: new URL(
|
51
|
-
hostPackageName:
|
79
|
+
callbackURL: new URL(appDeeplinkUrl),
|
80
|
+
hostURL: new URL("https://wallet.coinbase.com/wsegue"),
|
81
|
+
hostPackageName: "org.toshi",
|
52
82
|
});
|
53
83
|
let CoinbaseWalletMobileSDK = (
|
54
84
|
await import(
|
@@ -67,8 +97,9 @@ async function initMobileProvider(args: {
|
|
67
97
|
}
|
68
98
|
).default;
|
69
99
|
}
|
100
|
+
const chain = options.chains?.[0];
|
70
101
|
return new CoinbaseWalletMobileSDK({
|
71
|
-
jsonRpcUrl:
|
72
|
-
chainId:
|
102
|
+
jsonRpcUrl: chain?.rpc,
|
103
|
+
chainId: chain?.id,
|
73
104
|
});
|
74
105
|
}
|