thirdweb 5.88.2-nightly-cf53184bb161ed98146343e24586dae7804f6459-20250211000328 → 5.88.2-nightly-0a292138ca21b2d7375db6ff9ef07dc91cffc7fc-20250211122816
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/treasure.js +19 -0
- package/dist/cjs/chains/chain-definitions/treasure.js.map +1 -0
- package/dist/cjs/chains/chain-definitions/treasureTopaz.js +19 -0
- package/dist/cjs/chains/chain-definitions/treasureTopaz.js.map +1 -0
- package/dist/cjs/exports/chains.js +5 -1
- package/dist/cjs/exports/chains.js.map +1 -1
- package/dist/cjs/exports/extensions/erc4337.js +2 -1
- package/dist/cjs/exports/extensions/erc4337.js.map +1 -1
- package/dist/cjs/extensions/erc4337/account/addSessionKey.js +53 -0
- package/dist/cjs/extensions/erc4337/account/addSessionKey.js.map +1 -1
- package/dist/cjs/react/core/hooks/pay/useBuyWithCryptoQuote.js +1 -19
- package/dist/cjs/react/core/hooks/pay/useBuyWithCryptoQuote.js.map +1 -1
- package/dist/cjs/react/core/hooks/pay/useBuyWithFiatQuote.js +1 -19
- package/dist/cjs/react/core/hooks/pay/useBuyWithFiatQuote.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +3 -2
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.js +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.js.map +1 -1
- package/dist/cjs/utils/any-evm/zksync/isZkSyncChain.js +2 -2
- package/dist/cjs/utils/any-evm/zksync/isZkSyncChain.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/wallets/smart/index.js +5 -12
- package/dist/cjs/wallets/smart/index.js.map +1 -1
- package/dist/esm/chains/chain-definitions/treasure.js +16 -0
- package/dist/esm/chains/chain-definitions/treasure.js.map +1 -0
- package/dist/esm/chains/chain-definitions/treasureTopaz.js +16 -0
- package/dist/esm/chains/chain-definitions/treasureTopaz.js.map +1 -0
- package/dist/esm/exports/chains.js +2 -0
- package/dist/esm/exports/chains.js.map +1 -1
- package/dist/esm/exports/extensions/erc4337.js +1 -1
- package/dist/esm/exports/extensions/erc4337.js.map +1 -1
- package/dist/esm/extensions/erc4337/account/addSessionKey.js +52 -0
- package/dist/esm/extensions/erc4337/account/addSessionKey.js.map +1 -1
- package/dist/esm/react/core/hooks/pay/useBuyWithCryptoQuote.js +1 -19
- package/dist/esm/react/core/hooks/pay/useBuyWithCryptoQuote.js.map +1 -1
- package/dist/esm/react/core/hooks/pay/useBuyWithFiatQuote.js +1 -19
- package/dist/esm/react/core/hooks/pay/useBuyWithFiatQuote.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +3 -2
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.js +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.js.map +1 -1
- package/dist/esm/utils/any-evm/zksync/isZkSyncChain.js +2 -2
- package/dist/esm/utils/any-evm/zksync/isZkSyncChain.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/wallets/smart/index.js +6 -13
- package/dist/esm/wallets/smart/index.js.map +1 -1
- package/dist/types/chains/chain-definitions/treasure.d.ts +7 -0
- package/dist/types/chains/chain-definitions/treasure.d.ts.map +1 -0
- package/dist/types/chains/chain-definitions/treasureTopaz.d.ts +7 -0
- package/dist/types/chains/chain-definitions/treasureTopaz.d.ts.map +1 -0
- package/dist/types/exports/chains.d.ts +2 -0
- package/dist/types/exports/chains.d.ts.map +1 -1
- package/dist/types/exports/extensions/erc4337.d.ts +1 -1
- package/dist/types/exports/extensions/erc4337.d.ts.map +1 -1
- package/dist/types/extensions/erc4337/account/addSessionKey.d.ts +12 -0
- package/dist/types/extensions/erc4337/account/addSessionKey.d.ts.map +1 -1
- package/dist/types/react/core/hooks/pay/useBuyWithCryptoQuote.d.ts.map +1 -1
- package/dist/types/react/core/hooks/pay/useBuyWithFiatQuote.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/wallets/smart/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/chains/chain-definitions/treasure.ts +16 -0
- package/src/chains/chain-definitions/treasureTopaz.ts +16 -0
- package/src/exports/chains.ts +2 -0
- package/src/exports/extensions/erc4337.ts +1 -0
- package/src/extensions/erc4337/account/addSessionKey.ts +80 -0
- package/src/extensions/erc4337/account/permissions.test.ts +60 -1
- package/src/react/core/hooks/pay/useBuyWithCryptoQuote.ts +1 -30
- package/src/react/core/hooks/pay/useBuyWithFiatQuote.ts +1 -30
- package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +10 -1
- package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.tsx +1 -1
- package/src/utils/any-evm/zksync/isZkSyncChain.ts +2 -2
- package/src/version.ts +1 -1
- package/src/wallets/smart/index.ts +11 -13
@@ -67,4 +67,6 @@ export { metalL2Testnet } from "../chains/chain-definitions/metal-l2-testnet.js"
|
|
67
67
|
export { modeTestnet } from "../chains/chain-definitions/mode-testnet.js";
|
68
68
|
export { mode } from "../chains/chain-definitions/mode.js";
|
69
69
|
export { soneiumMinato } from "../chains/chain-definitions/soneium-minato.js";
|
70
|
+
export { treasure } from "../chains/chain-definitions/treasure.js";
|
71
|
+
export { treasureTopaz } from "../chains/chain-definitions/treasureTopaz.js";
|
70
72
|
//# sourceMappingURL=chains.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../../../src/exports/chains.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../../../src/exports/chains.ts"],"names":[],"mappings":"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"}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
export { isValidateUserOpSupported } from "../../extensions/erc4337/__generated__/IAccount/write/validateUserOp.js";
|
2
2
|
export { type AddAdminOptions, addAdmin, isAddAdminSupported, } from "../../extensions/erc4337/account/addAdmin.js";
|
3
3
|
export { type RemoveAdminOptions, removeAdmin, isRemoveAdminSupported, } from "../../extensions/erc4337/account/removeAdmin.js";
|
4
|
-
export { type AddSessionKeyOptions, addSessionKey, isAddSessionKeySupported, } from "../../extensions/erc4337/account/addSessionKey.js";
|
4
|
+
export { type AddSessionKeyOptions, addSessionKey, isAddSessionKeySupported, shouldUpdateSessionKey, } from "../../extensions/erc4337/account/addSessionKey.js";
|
5
5
|
export { type RemoveSessionKeyOptions, removeSessionKey, isRemoveSessionKeySupported, } from "../../extensions/erc4337/account/removeSessionKey.js";
|
6
6
|
export { isAccountDeployed, type IsAccountDeployedParams, isIsAccountDeployedSupported, } from "../../extensions/erc4337/account/isAccountDeployed.js";
|
7
7
|
export { createAccount, type CreateAccountParams, isCreateAccountSupported, } from "../../extensions/erc4337/__generated__/IAccountFactory/write/createAccount.js";
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"erc4337.d.ts","sourceRoot":"","sources":["../../../../src/exports/extensions/erc4337.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yEAAyE,CAAC;AACpH,OAAO,EACL,KAAK,eAAe,EACpB,QAAQ,EACR,mBAAmB,GACpB,MAAM,8CAA8C,CAAC;AAEtD,OAAO,EACL,KAAK,kBAAkB,EACvB,WAAW,EACX,sBAAsB,GACvB,MAAM,iDAAiD,CAAC;AAEzD,OAAO,EACL,KAAK,oBAAoB,EACzB,aAAa,EACb,wBAAwB,
|
1
|
+
{"version":3,"file":"erc4337.d.ts","sourceRoot":"","sources":["../../../../src/exports/extensions/erc4337.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yEAAyE,CAAC;AACpH,OAAO,EACL,KAAK,eAAe,EACpB,QAAQ,EACR,mBAAmB,GACpB,MAAM,8CAA8C,CAAC;AAEtD,OAAO,EACL,KAAK,kBAAkB,EACvB,WAAW,EACX,sBAAsB,GACvB,MAAM,iDAAiD,CAAC;AAEzD,OAAO,EACL,KAAK,oBAAoB,EACzB,aAAa,EACb,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,mDAAmD,CAAC;AAE3D,OAAO,EACL,KAAK,uBAAuB,EAC5B,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,sDAAsD,CAAC;AAE9D,OAAO,EACL,iBAAiB,EACjB,KAAK,uBAAuB,EAC5B,4BAA4B,GAC7B,MAAM,uDAAuD,CAAC;AAE/D,OAAO,EACL,aAAa,EACb,KAAK,mBAAmB,EACxB,wBAAwB,GACzB,MAAM,+EAA+E,CAAC;AAEvF,OAAO,EACL,mBAAmB,EACnB,8BAA8B,GAC/B,MAAM,wFAAwF,CAAC;AAChG,OAAO,EACL,YAAY,EACZ,uBAAuB,GACxB,MAAM,iFAAiF,CAAC;AACzF,OAAO,EACL,aAAa,EACb,wBAAwB,GACzB,MAAM,kFAAkF,CAAC;AAC1F,OAAO,EACL,uBAAuB,EACvB,KAAK,6BAA6B,GACnC,MAAM,4FAA4F,CAAC;AACpG,OAAO,EACL,cAAc,EACd,yBAAyB,EACzB,KAAK,oBAAoB,GAC1B,MAAM,mFAAmF,CAAC;AAC3F,OAAO,EACL,OAAO,EACP,kBAAkB,GACnB,MAAM,4EAA4E,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mFAAmF,CAAC;AACtH,OAAO,EAAE,6BAA6B,EAAE,MAAM,+FAA+F,CAAC;AAG9I,OAAO,EACL,cAAc,EACd,yBAAyB,GAC1B,MAAM,+EAA+E,CAAC;AACvF,OAAO,EACL,WAAW,EACX,sBAAsB,GACvB,MAAM,4EAA4E,CAAC;AACpF,OAAO,EACL,aAAa,EACb,wBAAwB,GACzB,MAAM,8EAA8E,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,6EAA6E,CAAC;AAC3G,OAAO,EACL,mBAAmB,EACnB,KAAK,yBAAyB,EAC9B,8BAA8B,GAC/B,MAAM,oFAAoF,CAAC;AAC5F,OAAO,EACL,UAAU,IAAI,qBAAqB,EACnC,KAAK,gBAAgB,IAAI,2BAA2B,EACpD,qBAAqB,IAAI,gCAAgC,GAC1D,MAAM,2EAA2E,CAAC;AAInF,OAAO,EAAE,oBAAoB,EAAE,MAAM,8EAA8E,CAAC;AACpH,OAAO,EAAE,uBAAuB,EAAE,MAAM,iFAAiF,CAAC;AAC1H,OAAO,EAAE,8BAA8B,EAAE,MAAM,wFAAwF,CAAC;AACxI,OAAO,EACL,aAAa,EACb,KAAK,mBAAmB,GACzB,MAAM,0EAA0E,CAAC;AAClF,OAAO,EACL,gBAAgB,EAChB,KAAK,sBAAsB,GAC5B,MAAM,8EAA8E,CAAC"}
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import type { ThirdwebContract } from "../../../contract/contract.js";
|
1
2
|
import type { BaseTransactionOptions } from "../../../transaction/types.js";
|
2
3
|
import type { Account } from "../../../wallets/interfaces/wallet.js";
|
3
4
|
import type { AccountPermissions } from "./types.js";
|
@@ -58,4 +59,15 @@ export declare function addSessionKey(options: BaseTransactionOptions<AddSession
|
|
58
59
|
* ```
|
59
60
|
*/
|
60
61
|
export declare function isAddSessionKeySupported(availableSelectors: string[]): boolean;
|
62
|
+
/**
|
63
|
+
* Checks if the session key should be updated.
|
64
|
+
* @param currentPermissions - The current permissions of the session key.
|
65
|
+
* @param newPermissions - The new permissions to set for the session key.
|
66
|
+
* @returns A boolean indicating if the session key should be updated.
|
67
|
+
*/
|
68
|
+
export declare function shouldUpdateSessionKey(args: {
|
69
|
+
accountContract: ThirdwebContract;
|
70
|
+
sessionKeyAddress: string;
|
71
|
+
newPermissions: AccountPermissions;
|
72
|
+
}): Promise<boolean>;
|
61
73
|
//# sourceMappingURL=addSessionKey.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"addSessionKey.d.ts","sourceRoot":"","sources":["../../../../../src/extensions/erc4337/account/addSessionKey.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"addSessionKey.d.ts","sourceRoot":"","sources":["../../../../../src/extensions/erc4337/account/addSessionKey.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAG5E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uCAAuC,CAAC;AAOrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,WAAW,EAAE,kBAAkB,CAAC;CACjC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,sBAAsB,CAAC,oBAAoB,CAAC,kMAiBtD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,kBAAkB,EAAE,MAAM,EAAE,WAEpE;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IACjD,eAAe,EAAE,gBAAgB,CAAC;IAClC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,kBAAkB,CAAC;CACpC,GAAG,OAAO,CAAC,OAAO,CAAC,CAyCnB"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useBuyWithCryptoQuote.d.ts","sourceRoot":"","sources":["../../../../../../src/react/core/hooks/pay/useBuyWithCryptoQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EAEpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,2BAA2B,EAEjC,MAAM,2CAA2C,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,8BAA8B,GAAG,IAAI,CAC/C,eAAe,CAAC,kBAAkB,CAAC,EACnC,SAAS,GAAG,UAAU,GAAG,SAAS,CACnC,CAAC;
|
1
|
+
{"version":3,"file":"useBuyWithCryptoQuote.d.ts","sourceRoot":"","sources":["../../../../../../src/react/core/hooks/pay/useBuyWithCryptoQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EAEpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,2BAA2B,EAEjC,MAAM,2CAA2C,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,8BAA8B,GAAG,IAAI,CAC/C,eAAe,CAAC,kBAAkB,CAAC,EACnC,SAAS,GAAG,UAAU,GAAG,SAAS,CACnC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,CAAC,EAAE,2BAA2B,EACpC,WAAW,CAAC,EAAE,8BAA8B,GAC3C,cAAc,CAAC,kBAAkB,CAAC,CAcpC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useBuyWithFiatQuote.d.ts","sourceRoot":"","sources":["../../../../../../src/react/core/hooks/pay/useBuyWithFiatQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EAEpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,yBAAyB,EAE/B,MAAM,yCAAyC,CAAC;AAEjD;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,IAAI,CAC7C,eAAe,CAAC,gBAAgB,CAAC,EACjC,SAAS,GAAG,UAAU,GAAG,SAAS,CACnC,CAAC;
|
1
|
+
{"version":3,"file":"useBuyWithFiatQuote.d.ts","sourceRoot":"","sources":["../../../../../../src/react/core/hooks/pay/useBuyWithFiatQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EAEpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,yBAAyB,EAE/B,MAAM,yCAAyC,CAAC;AAEjD;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,IAAI,CAC7C,eAAe,CAAC,gBAAgB,CAAC,EACjC,SAAS,GAAG,UAAU,GAAG,SAAS,CACnC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,CAAC,EAAE,yBAAyB,EAClC,YAAY,CAAC,EAAE,4BAA4B,GAC1C,cAAc,CAAC,gBAAgB,CAAC,CAalC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"BuyScreen.d.ts","sourceRoot":"","sources":["../../../../../../../../src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAKzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EACL,KAAK,KAAK,EAGX,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,EAEV,YAAY,EACb,MAAM,4DAA4D,CAAC;AAGpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAGlF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAUnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;
|
1
|
+
{"version":3,"file":"BuyScreen.d.ts","sourceRoot":"","sources":["../../../../../../../../src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAKzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EACL,KAAK,KAAK,EAGX,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,EAEV,YAAY,EACb,MAAM,4DAA4D,CAAC;AAGpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAGlF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAUnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAiC3D,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACjC,eAAe,EAAE,eAAe,GAAG,SAAS,CAAC;IAC7C,MAAM,EAAE,cAAc,CAAC;IACvB,aAAa,EAAE,aAAa,CAAC;IAC7B,UAAU,EAAE,YAAY,CAAC;IACzB,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;IAChC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,cAAc,EAAE,sBAAsB,GAAG,SAAS,CAAC;IACnD,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,KAAK,EAAE,cAAc,8CAqCtD"}
|
package/dist/types/version.d.ts
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
export declare const version = "5.88.2-nightly-
|
1
|
+
export declare const version = "5.88.2-nightly-0a292138ca21b2d7375db6ff9ef07dc91cffc7fc-20250211122816";
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/wallets/smart/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/wallets/smart/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAyBnD,OAAO,KAAK,EAAE,OAAO,EAAyB,MAAM,yBAAyB,CAAC;AAuB9E,OAAO,KAAK,EAIV,4BAA4B,EAC5B,kBAAkB,EAInB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAUrD;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,iBAAiB,EAAE,4BAA4B,EAC/C,eAAe,EAAE,kBAAkB,GAClC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAqH3B;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ5E"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "thirdweb",
|
3
|
-
"version": "5.88.2-nightly-
|
3
|
+
"version": "5.88.2-nightly-0a292138ca21b2d7375db6ff9ef07dc91cffc7fc-20250211122816",
|
4
4
|
"repository": {
|
5
5
|
"type": "git",
|
6
6
|
"url": "git+https://github.com/thirdweb-dev/js.git#main"
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { defineChain } from "../utils.js";
|
2
|
+
|
3
|
+
/**
|
4
|
+
* @chain
|
5
|
+
*/
|
6
|
+
export const treasure = /* @__PURE__ */ defineChain({
|
7
|
+
id: 61166,
|
8
|
+
name: "Treasure",
|
9
|
+
nativeCurrency: { name: "MAGIC", symbol: "MAGIC", decimals: 18 },
|
10
|
+
blockExplorers: [
|
11
|
+
{
|
12
|
+
name: "Treasure Block Explorer",
|
13
|
+
url: "https://treasurescan.io",
|
14
|
+
},
|
15
|
+
],
|
16
|
+
});
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { defineChain } from "../utils.js";
|
2
|
+
|
3
|
+
/**
|
4
|
+
* @chain
|
5
|
+
*/
|
6
|
+
export const treasureTopaz = /* @__PURE__ */ defineChain({
|
7
|
+
id: 978658,
|
8
|
+
name: "Treasure Topaz",
|
9
|
+
nativeCurrency: { name: "MAGIC", symbol: "MAGIC", decimals: 18 },
|
10
|
+
blockExplorers: [
|
11
|
+
{
|
12
|
+
name: "Treasure Topaz Block Explorer",
|
13
|
+
url: "https://topaz.treasurescan.io",
|
14
|
+
},
|
15
|
+
],
|
16
|
+
});
|
package/src/exports/chains.ts
CHANGED
@@ -80,3 +80,5 @@ export { metalL2Testnet } from "../chains/chain-definitions/metal-l2-testnet.js"
|
|
80
80
|
export { modeTestnet } from "../chains/chain-definitions/mode-testnet.js";
|
81
81
|
export { mode } from "../chains/chain-definitions/mode.js";
|
82
82
|
export { soneiumMinato } from "../chains/chain-definitions/soneium-minato.js";
|
83
|
+
export { treasure } from "../chains/chain-definitions/treasure.js";
|
84
|
+
export { treasureTopaz } from "../chains/chain-definitions/treasureTopaz.js";
|
@@ -1,5 +1,10 @@
|
|
1
|
+
import { ZERO_ADDRESS } from "../../../constants/addresses.js";
|
2
|
+
import type { ThirdwebContract } from "../../../contract/contract.js";
|
1
3
|
import type { BaseTransactionOptions } from "../../../transaction/types.js";
|
4
|
+
import { isContractDeployed } from "../../../utils/bytecode/is-contract-deployed.js";
|
5
|
+
import { toWei } from "../../../utils/units.js";
|
2
6
|
import type { Account } from "../../../wallets/interfaces/wallet.js";
|
7
|
+
import { getPermissionsForSigner } from "../__generated__/IAccountPermissions/read/getPermissionsForSigner.js";
|
3
8
|
import {
|
4
9
|
isSetPermissionsForSignerSupported,
|
5
10
|
setPermissionsForSigner,
|
@@ -86,3 +91,78 @@ export function addSessionKey(
|
|
86
91
|
export function isAddSessionKeySupported(availableSelectors: string[]) {
|
87
92
|
return isSetPermissionsForSignerSupported(availableSelectors);
|
88
93
|
}
|
94
|
+
|
95
|
+
/**
|
96
|
+
* Checks if the session key should be updated.
|
97
|
+
* @param currentPermissions - The current permissions of the session key.
|
98
|
+
* @param newPermissions - The new permissions to set for the session key.
|
99
|
+
* @returns A boolean indicating if the session key should be updated.
|
100
|
+
*/
|
101
|
+
export async function shouldUpdateSessionKey(args: {
|
102
|
+
accountContract: ThirdwebContract;
|
103
|
+
sessionKeyAddress: string;
|
104
|
+
newPermissions: AccountPermissions;
|
105
|
+
}): Promise<boolean> {
|
106
|
+
const { accountContract, sessionKeyAddress, newPermissions } = args;
|
107
|
+
|
108
|
+
// check if account is deployed
|
109
|
+
const accountDeployed = await isContractDeployed(accountContract);
|
110
|
+
if (!accountDeployed) {
|
111
|
+
return true;
|
112
|
+
}
|
113
|
+
|
114
|
+
// get current permissions
|
115
|
+
const currentPermissions = await getPermissionsForSigner({
|
116
|
+
contract: accountContract,
|
117
|
+
signer: sessionKeyAddress,
|
118
|
+
});
|
119
|
+
// check end time validity
|
120
|
+
if (
|
121
|
+
currentPermissions.endTimestamp &&
|
122
|
+
currentPermissions.endTimestamp < Math.floor(new Date().getTime() / 1000)
|
123
|
+
) {
|
124
|
+
return true;
|
125
|
+
}
|
126
|
+
|
127
|
+
// check targets
|
128
|
+
if (
|
129
|
+
!areSessionKeyContractTargetsEqual(
|
130
|
+
currentPermissions.approvedTargets,
|
131
|
+
newPermissions.approvedTargets,
|
132
|
+
)
|
133
|
+
) {
|
134
|
+
return true;
|
135
|
+
}
|
136
|
+
|
137
|
+
// check if the new native token limit is greater than the current one
|
138
|
+
if (
|
139
|
+
toWei(newPermissions.nativeTokenLimitPerTransaction?.toString() ?? "0") >
|
140
|
+
currentPermissions.nativeTokenLimitPerTransaction
|
141
|
+
) {
|
142
|
+
return true;
|
143
|
+
}
|
144
|
+
|
145
|
+
return false;
|
146
|
+
}
|
147
|
+
|
148
|
+
function areSessionKeyContractTargetsEqual(
|
149
|
+
currentTargets: readonly string[],
|
150
|
+
newTargets: string[] | "*",
|
151
|
+
): boolean {
|
152
|
+
// Handle the case where approvedTargets is "*"
|
153
|
+
if (
|
154
|
+
newTargets === "*" &&
|
155
|
+
currentTargets.length === 1 &&
|
156
|
+
currentTargets[0] === ZERO_ADDRESS
|
157
|
+
) {
|
158
|
+
return true;
|
159
|
+
}
|
160
|
+
if (newTargets !== "*") {
|
161
|
+
return newTargets
|
162
|
+
.map((target) => target.toLowerCase())
|
163
|
+
.every((target) =>
|
164
|
+
currentTargets.map((t) => t.toLowerCase()).includes(target),
|
165
|
+
);
|
166
|
+
}
|
167
|
+
return false;
|
168
|
+
}
|
@@ -1,9 +1,11 @@
|
|
1
1
|
import { beforeAll, describe, expect, it } from "vitest";
|
2
2
|
import { ANVIL_CHAIN } from "../../../../test/src/chains.js";
|
3
3
|
import { TEST_CLIENT } from "../../../../test/src/test-clients.js";
|
4
|
+
import { USDT_CONTRACT_ADDRESS } from "../../../../test/src/test-contracts.js";
|
4
5
|
import {
|
5
6
|
TEST_ACCOUNT_A,
|
6
7
|
TEST_ACCOUNT_B,
|
8
|
+
TEST_ACCOUNT_C,
|
7
9
|
} from "../../../../test/src/test-wallets.js";
|
8
10
|
import { ZERO_ADDRESS } from "../../../constants/addresses.js";
|
9
11
|
import {
|
@@ -20,7 +22,7 @@ import { adminUpdatedEvent } from "../__generated__/IAccountPermissions/events/A
|
|
20
22
|
import { signerPermissionsUpdatedEvent } from "../__generated__/IAccountPermissions/events/SignerPermissionsUpdated.js";
|
21
23
|
import { getAllAdmins } from "../__generated__/IAccountPermissions/read/getAllAdmins.js";
|
22
24
|
import { addAdmin } from "./addAdmin.js";
|
23
|
-
import { addSessionKey } from "./addSessionKey.js";
|
25
|
+
import { addSessionKey, shouldUpdateSessionKey } from "./addSessionKey.js";
|
24
26
|
import { removeAdmin } from "./removeAdmin.js";
|
25
27
|
|
26
28
|
describe.runIf(process.env.TW_SECRET_KEY)("Account Permissions", () => {
|
@@ -129,5 +131,62 @@ describe.runIf(process.env.TW_SECRET_KEY)("Account Permissions", () => {
|
|
129
131
|
expect(logs[0]?.args.permissions.approvedTargets).toStrictEqual([
|
130
132
|
ZERO_ADDRESS,
|
131
133
|
]);
|
134
|
+
|
135
|
+
expect(
|
136
|
+
await shouldUpdateSessionKey({
|
137
|
+
accountContract,
|
138
|
+
sessionKeyAddress: TEST_ACCOUNT_A.address,
|
139
|
+
newPermissions: {
|
140
|
+
approvedTargets: "*",
|
141
|
+
},
|
142
|
+
}),
|
143
|
+
).toBe(false);
|
144
|
+
|
145
|
+
expect(
|
146
|
+
await shouldUpdateSessionKey({
|
147
|
+
accountContract,
|
148
|
+
sessionKeyAddress: TEST_ACCOUNT_A.address,
|
149
|
+
newPermissions: {
|
150
|
+
approvedTargets: "*",
|
151
|
+
nativeTokenLimitPerTransaction: 0,
|
152
|
+
},
|
153
|
+
}),
|
154
|
+
).toBe(false);
|
155
|
+
|
156
|
+
expect(
|
157
|
+
await shouldUpdateSessionKey({
|
158
|
+
accountContract,
|
159
|
+
sessionKeyAddress: TEST_ACCOUNT_A.address,
|
160
|
+
newPermissions: {
|
161
|
+
approvedTargets: [USDT_CONTRACT_ADDRESS],
|
162
|
+
},
|
163
|
+
}),
|
164
|
+
).toBe(true);
|
165
|
+
|
166
|
+
expect(
|
167
|
+
await shouldUpdateSessionKey({
|
168
|
+
accountContract,
|
169
|
+
sessionKeyAddress: TEST_ACCOUNT_A.address,
|
170
|
+
newPermissions: {
|
171
|
+
approvedTargets: "*",
|
172
|
+
nativeTokenLimitPerTransaction: 0.1,
|
173
|
+
},
|
174
|
+
}),
|
175
|
+
).toBe(true);
|
176
|
+
});
|
177
|
+
|
178
|
+
it("should update session key if account is not deployed", async () => {
|
179
|
+
const shouldUpdate = await shouldUpdateSessionKey({
|
180
|
+
accountContract: getContract({
|
181
|
+
address: TEST_ACCOUNT_C.address,
|
182
|
+
chain: ANVIL_CHAIN,
|
183
|
+
client: TEST_CLIENT,
|
184
|
+
}),
|
185
|
+
sessionKeyAddress: TEST_ACCOUNT_A.address,
|
186
|
+
newPermissions: {
|
187
|
+
approvedTargets: "*",
|
188
|
+
},
|
189
|
+
});
|
190
|
+
expect(shouldUpdate).toBe(true);
|
132
191
|
});
|
133
192
|
});
|
@@ -17,15 +17,6 @@ export type BuyWithCryptoQuoteQueryOptions = Omit<
|
|
17
17
|
"queryFn" | "queryKey" | "enabled"
|
18
18
|
>;
|
19
19
|
|
20
|
-
/**
|
21
|
-
* @internal
|
22
|
-
*/
|
23
|
-
type BuyWithCryptoQuoteError = {
|
24
|
-
status: string;
|
25
|
-
code: string;
|
26
|
-
statusCode: number;
|
27
|
-
};
|
28
|
-
|
29
20
|
/**
|
30
21
|
* Hook to get a price quote for performing a "Buy with crypto" transaction that allows users to buy a token with another token - aka a swap.
|
31
22
|
*
|
@@ -97,26 +88,6 @@ export function useBuyWithCryptoQuote(
|
|
97
88
|
return getBuyWithCryptoQuote(params);
|
98
89
|
},
|
99
90
|
enabled: !!params,
|
100
|
-
retry
|
101
|
-
if (failureCount > 3) {
|
102
|
-
return false;
|
103
|
-
}
|
104
|
-
try {
|
105
|
-
// biome-ignore lint/suspicious/noExplicitAny: <explanation>
|
106
|
-
const serverError = (error as any).error as BuyWithCryptoQuoteError;
|
107
|
-
|
108
|
-
if (serverError.code === "MINIMUM_PURCHASE_AMOUNT") {
|
109
|
-
return false;
|
110
|
-
}
|
111
|
-
|
112
|
-
if (serverError.statusCode === 404 || serverError.statusCode >= 500) {
|
113
|
-
return false;
|
114
|
-
}
|
115
|
-
} catch {
|
116
|
-
return true;
|
117
|
-
}
|
118
|
-
|
119
|
-
return true;
|
120
|
-
},
|
91
|
+
retry: false,
|
121
92
|
});
|
122
93
|
}
|
@@ -17,15 +17,6 @@ export type BuyWithFiatQuoteQueryOptions = Omit<
|
|
17
17
|
"queryFn" | "queryKey" | "enabled"
|
18
18
|
>;
|
19
19
|
|
20
|
-
/**
|
21
|
-
* @internal
|
22
|
-
*/
|
23
|
-
type BuyWithFiatQuoteError = {
|
24
|
-
status: string;
|
25
|
-
code: string;
|
26
|
-
statusCode: number;
|
27
|
-
};
|
28
|
-
|
29
20
|
/**
|
30
21
|
* Hook to get a price quote for performing a "Buy with Fiat" transaction that allows users to buy a token with fiat currency.
|
31
22
|
*
|
@@ -85,26 +76,6 @@ export function useBuyWithFiatQuote(
|
|
85
76
|
return getBuyWithFiatQuote(params);
|
86
77
|
},
|
87
78
|
enabled: !!params,
|
88
|
-
retry
|
89
|
-
if (failureCount > 3) {
|
90
|
-
return false;
|
91
|
-
}
|
92
|
-
try {
|
93
|
-
// biome-ignore lint/suspicious/noExplicitAny: <explanation>
|
94
|
-
const serverError = (error as any).error as BuyWithFiatQuoteError;
|
95
|
-
|
96
|
-
if (serverError.code === "MINIMUM_PURCHASE_AMOUNT") {
|
97
|
-
return false;
|
98
|
-
}
|
99
|
-
|
100
|
-
if (serverError.statusCode === 404 || serverError.statusCode >= 500) {
|
101
|
-
return false;
|
102
|
-
}
|
103
|
-
} catch {
|
104
|
-
return true;
|
105
|
-
}
|
106
|
-
|
107
|
-
return true;
|
108
|
-
},
|
79
|
+
retry: false,
|
109
80
|
});
|
110
81
|
}
|
@@ -52,6 +52,7 @@ import {
|
|
52
52
|
useToTokenSelectionStates,
|
53
53
|
} from "./main/useUISelectionStates.js";
|
54
54
|
import { BuyTokenInput } from "./swap/BuyTokenInput.js";
|
55
|
+
import { FiatValue } from "./swap/FiatValue.js";
|
55
56
|
import { PaymentSelectionScreen } from "./swap/PaymentSelectionScreen.js";
|
56
57
|
import { SwapFlow } from "./swap/SwapFlow.js";
|
57
58
|
import { SwapScreenContent } from "./swap/SwapScreenContent.js";
|
@@ -669,7 +670,7 @@ function SelectedTokenInfo(props: {
|
|
669
670
|
justifyContent: "space-between",
|
670
671
|
}}
|
671
672
|
>
|
672
|
-
<Container flex="row" gap="
|
673
|
+
<Container flex="row" gap="xxs" center="y">
|
673
674
|
<Input
|
674
675
|
variant="outline"
|
675
676
|
pattern="^[0-9]*[.,]?[0-9]*$"
|
@@ -738,6 +739,14 @@ function SelectedTokenInfo(props: {
|
|
738
739
|
token={props.selectedToken}
|
739
740
|
/>
|
740
741
|
</Container>
|
742
|
+
|
743
|
+
<FiatValue
|
744
|
+
chain={props.selectedChain}
|
745
|
+
client={props.client}
|
746
|
+
tokenAmount={props.tokenAmount}
|
747
|
+
token={props.selectedToken}
|
748
|
+
size="sm"
|
749
|
+
/>
|
741
750
|
</Container>
|
742
751
|
|
743
752
|
<ChainName
|
@@ -233,7 +233,7 @@ export function FiatSteps(props: {
|
|
233
233
|
|
234
234
|
const toTokenInfo = partialSuccessToTokenInfo || (
|
235
235
|
<Text color="primaryText" size="sm">
|
236
|
-
{formatNumber(Number(toTokenAmount), 6)}
|
236
|
+
{formatNumber(Number(toTokenAmount), 6)}{" "}
|
237
237
|
<TokenSymbol token={toToken} chain={toChain} size="sm" inline />
|
238
238
|
</Text>
|
239
239
|
);
|
package/src/version.ts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export const version = "5.88.2-nightly-
|
1
|
+
export const version = "5.88.2-nightly-0a292138ca21b2d7375db6ff9ef07dc91cffc7fc-20250211122816";
|
@@ -6,8 +6,10 @@ import type { ThirdwebClient } from "../../client/client.js";
|
|
6
6
|
import { type ThirdwebContract, getContract } from "../../contract/contract.js";
|
7
7
|
import { allowance } from "../../extensions/erc20/__generated__/IERC20/read/allowance.js";
|
8
8
|
import { approve } from "../../extensions/erc20/write/approve.js";
|
9
|
-
import {
|
10
|
-
|
9
|
+
import {
|
10
|
+
addSessionKey,
|
11
|
+
shouldUpdateSessionKey,
|
12
|
+
} from "../../extensions/erc4337/account/addSessionKey.js";
|
11
13
|
import { sendTransaction } from "../../transaction/actions/send-transaction.js";
|
12
14
|
import { toSerializableTransaction } from "../../transaction/actions/to-serializable-transaction.js";
|
13
15
|
import type { WaitForReceiptOptions } from "../../transaction/actions/wait-for-tx-receipt.js";
|
@@ -19,7 +21,6 @@ import type { PreparedTransaction } from "../../transaction/prepare-transaction.
|
|
19
21
|
import { readContract } from "../../transaction/read-contract.js";
|
20
22
|
import { getAddress } from "../../utils/address.js";
|
21
23
|
import { isZkSyncChain } from "../../utils/any-evm/zksync/isZkSyncChain.js";
|
22
|
-
import { isContractDeployed } from "../../utils/bytecode/is-contract-deployed.js";
|
23
24
|
import type { Hex } from "../../utils/encoding/hex.js";
|
24
25
|
import { resolvePromisedValue } from "../../utils/promise/resolve-promised-value.js";
|
25
26
|
import { parseTypedData } from "../../utils/signatures/helpers/parse-typed-data.js";
|
@@ -169,16 +170,13 @@ export async function connectSmartAccount(
|
|
169
170
|
smartAccountToAdminAccountMap.set(account, personalAccount);
|
170
171
|
|
171
172
|
if (options.sessionKey) {
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
});
|
180
|
-
}
|
181
|
-
if (!hasSessionKey) {
|
173
|
+
if (
|
174
|
+
await shouldUpdateSessionKey({
|
175
|
+
accountContract,
|
176
|
+
sessionKeyAddress: options.sessionKey.address,
|
177
|
+
newPermissions: options.sessionKey.permissions,
|
178
|
+
})
|
179
|
+
) {
|
182
180
|
const transaction = addSessionKey({
|
183
181
|
account: personalAccount,
|
184
182
|
contract: accountContract,
|