thirdweb 5.48.2 → 5.48.3-nightly-a8e2bc58c9e8fe5b75d6c27d406e6b80d5d067e2-20240828000339
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/exports/wallets/smart.js +4 -2
- package/dist/cjs/exports/wallets/smart.js.map +1 -1
- package/dist/cjs/extensions/erc1155/drops/write/claimTo.js.map +1 -1
- package/dist/cjs/extensions/erc4337/__generated__/IEntryPoint_v07/events/PostOpRevertReason.js +32 -0
- package/dist/cjs/extensions/erc4337/__generated__/IEntryPoint_v07/events/PostOpRevertReason.js.map +1 -0
- package/dist/cjs/extensions/erc4337/__generated__/IEntryPoint_v07/read/getUserOpHash.js +153 -0
- package/dist/cjs/extensions/erc4337/__generated__/IEntryPoint_v07/read/getUserOpHash.js.map +1 -0
- package/dist/cjs/extensions/prebuilts/__generated__/VoteERC20/write/initialize.js +184 -0
- package/dist/cjs/extensions/prebuilts/__generated__/VoteERC20/write/initialize.js.map +1 -0
- package/dist/cjs/extensions/prebuilts/deploy-vote.js +122 -0
- package/dist/cjs/extensions/prebuilts/deploy-vote.js.map +1 -0
- package/dist/cjs/react/core/hooks/pay/useBuyWithCryptoQuote.js +5 -1
- package/dist/cjs/react/core/hooks/pay/useBuyWithCryptoQuote.js.map +1 -1
- package/dist/cjs/react/core/hooks/pay/useBuyWithFiatQuote.js +5 -1
- package/dist/cjs/react/core/hooks/pay/useBuyWithFiatQuote.js.map +1 -1
- package/dist/cjs/react/core/hooks/transaction/useSendAndConfirmTransaction.js +12 -0
- package/dist/cjs/react/core/hooks/transaction/useSendAndConfirmTransaction.js.map +1 -1
- package/dist/cjs/react/native/hooks/transaction/useSendTransaction.js +11 -0
- package/dist/cjs/react/native/hooks/transaction/useSendTransaction.js.map +1 -1
- package/dist/cjs/react/web/ui/TransactionButton/index.js +13 -0
- package/dist/cjs/react/web/ui/TransactionButton/index.js.map +1 -1
- package/dist/cjs/transaction/actions/send-and-confirm-transaction.js +13 -0
- package/dist/cjs/transaction/actions/send-and-confirm-transaction.js.map +1 -1
- package/dist/cjs/transaction/actions/send-transaction.js +13 -0
- package/dist/cjs/transaction/actions/send-transaction.js.map +1 -1
- package/dist/cjs/transaction/actions/zksync/send-eip712-transaction.js +1 -1
- package/dist/cjs/transaction/actions/zksync/send-eip712-transaction.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/in-app-account.js +5 -1
- package/dist/cjs/wallets/in-app/web/lib/in-app-account.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/utils/iFrameCommunication/IframeCommunicator.js +1 -0
- package/dist/cjs/wallets/in-app/web/utils/iFrameCommunication/IframeCommunicator.js.map +1 -1
- package/dist/cjs/wallets/smart/index.js +13 -2
- package/dist/cjs/wallets/smart/index.js.map +1 -1
- package/dist/cjs/wallets/smart/lib/bundler.js +11 -2
- package/dist/cjs/wallets/smart/lib/bundler.js.map +1 -1
- package/dist/cjs/wallets/smart/lib/constants.js +27 -13
- package/dist/cjs/wallets/smart/lib/constants.js.map +1 -1
- package/dist/cjs/wallets/smart/lib/packUserOp.js +75 -0
- package/dist/cjs/wallets/smart/lib/packUserOp.js.map +1 -0
- package/dist/cjs/wallets/smart/lib/paymaster.js +11 -1
- package/dist/cjs/wallets/smart/lib/paymaster.js.map +1 -1
- package/dist/cjs/wallets/smart/lib/userop.js +201 -66
- package/dist/cjs/wallets/smart/lib/userop.js.map +1 -1
- package/dist/cjs/wallets/smart/lib/utils.js +1 -1
- package/dist/cjs/wallets/smart/lib/utils.js.map +1 -1
- package/dist/cjs/wallets/smart/smart-wallet.js +2 -1
- package/dist/cjs/wallets/smart/smart-wallet.js.map +1 -1
- package/dist/cjs/wallets/smart/types.js.map +1 -1
- package/dist/esm/exports/wallets/smart.js +1 -1
- package/dist/esm/exports/wallets/smart.js.map +1 -1
- package/dist/esm/extensions/erc1155/drops/write/claimTo.js.map +1 -1
- package/dist/esm/extensions/erc4337/__generated__/IEntryPoint_v07/events/PostOpRevertReason.js +29 -0
- package/dist/esm/extensions/erc4337/__generated__/IEntryPoint_v07/events/PostOpRevertReason.js.map +1 -0
- package/dist/esm/extensions/erc4337/__generated__/IEntryPoint_v07/read/getUserOpHash.js +145 -0
- package/dist/esm/extensions/erc4337/__generated__/IEntryPoint_v07/read/getUserOpHash.js.map +1 -0
- package/dist/esm/extensions/prebuilts/__generated__/VoteERC20/write/initialize.js +177 -0
- package/dist/esm/extensions/prebuilts/__generated__/VoteERC20/write/initialize.js.map +1 -0
- package/dist/esm/extensions/prebuilts/deploy-vote.js +119 -0
- package/dist/esm/extensions/prebuilts/deploy-vote.js.map +1 -0
- package/dist/esm/react/core/hooks/pay/useBuyWithCryptoQuote.js +5 -1
- package/dist/esm/react/core/hooks/pay/useBuyWithCryptoQuote.js.map +1 -1
- package/dist/esm/react/core/hooks/pay/useBuyWithFiatQuote.js +5 -1
- package/dist/esm/react/core/hooks/pay/useBuyWithFiatQuote.js.map +1 -1
- package/dist/esm/react/core/hooks/transaction/useSendAndConfirmTransaction.js +12 -0
- package/dist/esm/react/core/hooks/transaction/useSendAndConfirmTransaction.js.map +1 -1
- package/dist/esm/react/native/hooks/transaction/useSendTransaction.js +11 -0
- package/dist/esm/react/native/hooks/transaction/useSendTransaction.js.map +1 -1
- package/dist/esm/react/web/ui/TransactionButton/index.js +13 -0
- package/dist/esm/react/web/ui/TransactionButton/index.js.map +1 -1
- package/dist/esm/transaction/actions/send-and-confirm-transaction.js +13 -0
- package/dist/esm/transaction/actions/send-and-confirm-transaction.js.map +1 -1
- package/dist/esm/transaction/actions/send-transaction.js +13 -0
- package/dist/esm/transaction/actions/send-transaction.js.map +1 -1
- package/dist/esm/transaction/actions/zksync/send-eip712-transaction.js +1 -1
- package/dist/esm/transaction/actions/zksync/send-eip712-transaction.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/in-app-account.js +5 -1
- package/dist/esm/wallets/in-app/web/lib/in-app-account.js.map +1 -1
- package/dist/esm/wallets/in-app/web/utils/iFrameCommunication/IframeCommunicator.js +1 -0
- package/dist/esm/wallets/in-app/web/utils/iFrameCommunication/IframeCommunicator.js.map +1 -1
- package/dist/esm/wallets/smart/index.js +14 -3
- package/dist/esm/wallets/smart/index.js.map +1 -1
- package/dist/esm/wallets/smart/lib/bundler.js +12 -3
- package/dist/esm/wallets/smart/lib/bundler.js.map +1 -1
- package/dist/esm/wallets/smart/lib/constants.js +23 -10
- package/dist/esm/wallets/smart/lib/constants.js.map +1 -1
- package/dist/esm/wallets/smart/lib/packUserOp.js +65 -0
- package/dist/esm/wallets/smart/lib/packUserOp.js.map +1 -0
- package/dist/esm/wallets/smart/lib/paymaster.js +12 -2
- package/dist/esm/wallets/smart/lib/paymaster.js.map +1 -1
- package/dist/esm/wallets/smart/lib/userop.js +202 -67
- package/dist/esm/wallets/smart/lib/userop.js.map +1 -1
- package/dist/esm/wallets/smart/lib/utils.js +1 -1
- package/dist/esm/wallets/smart/lib/utils.js.map +1 -1
- package/dist/esm/wallets/smart/smart-wallet.js +3 -2
- package/dist/esm/wallets/smart/smart-wallet.js.map +1 -1
- package/dist/esm/wallets/smart/types.js.map +1 -1
- package/dist/types/exports/wallets/smart.d.ts +2 -2
- package/dist/types/exports/wallets/smart.d.ts.map +1 -1
- package/dist/types/extensions/erc1155/drops/write/claimTo.d.ts +2 -3
- package/dist/types/extensions/erc1155/drops/write/claimTo.d.ts.map +1 -1
- package/dist/types/extensions/erc4337/__generated__/IEntryPoint_v07/events/PostOpRevertReason.d.ts +57 -0
- package/dist/types/extensions/erc4337/__generated__/IEntryPoint_v07/events/PostOpRevertReason.d.ts.map +1 -0
- package/dist/types/extensions/erc4337/__generated__/IEntryPoint_v07/read/getUserOpHash.d.ts +123 -0
- package/dist/types/extensions/erc4337/__generated__/IEntryPoint_v07/read/getUserOpHash.d.ts.map +1 -0
- package/dist/types/extensions/prebuilts/__generated__/VoteERC20/write/initialize.d.ts +129 -0
- package/dist/types/extensions/prebuilts/__generated__/VoteERC20/write/initialize.d.ts.map +1 -0
- package/dist/types/extensions/prebuilts/deploy-vote.d.ts +82 -0
- package/dist/types/extensions/prebuilts/deploy-vote.d.ts.map +1 -0
- 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/core/hooks/transaction/useSendAndConfirmTransaction.d.ts +12 -0
- package/dist/types/react/core/hooks/transaction/useSendAndConfirmTransaction.d.ts.map +1 -1
- package/dist/types/react/native/hooks/transaction/useSendTransaction.d.ts +11 -0
- package/dist/types/react/native/hooks/transaction/useSendTransaction.d.ts.map +1 -1
- package/dist/types/react/web/ui/TransactionButton/index.d.ts +13 -0
- package/dist/types/react/web/ui/TransactionButton/index.d.ts.map +1 -1
- package/dist/types/transaction/actions/send-and-confirm-transaction.d.ts +13 -0
- package/dist/types/transaction/actions/send-and-confirm-transaction.d.ts.map +1 -1
- package/dist/types/transaction/actions/send-transaction.d.ts +13 -0
- package/dist/types/transaction/actions/send-transaction.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/version.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/in-app-account.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/utils/iFrameCommunication/IframeCommunicator.d.ts.map +1 -1
- package/dist/types/wallets/smart/index.d.ts.map +1 -1
- package/dist/types/wallets/smart/lib/bundler.d.ts +3 -3
- package/dist/types/wallets/smart/lib/bundler.d.ts.map +1 -1
- package/dist/types/wallets/smart/lib/constants.d.ts +6 -6
- package/dist/types/wallets/smart/lib/constants.d.ts.map +1 -1
- package/dist/types/wallets/smart/lib/packUserOp.d.ts +16 -0
- package/dist/types/wallets/smart/lib/packUserOp.d.ts.map +1 -0
- package/dist/types/wallets/smart/lib/paymaster.d.ts +3 -3
- package/dist/types/wallets/smart/lib/paymaster.d.ts.map +1 -1
- package/dist/types/wallets/smart/lib/userop.d.ts +6 -4
- package/dist/types/wallets/smart/lib/userop.d.ts.map +1 -1
- package/dist/types/wallets/smart/lib/utils.d.ts +2 -2
- package/dist/types/wallets/smart/lib/utils.d.ts.map +1 -1
- package/dist/types/wallets/smart/smart-wallet.d.ts.map +1 -1
- package/dist/types/wallets/smart/types.d.ts +62 -9
- package/dist/types/wallets/smart/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/exports/wallets/smart.ts +4 -2
- package/src/extensions/erc1155/drops/write/claimTo.ts +2 -3
- package/src/extensions/erc4337/__generated__/IEntryPoint_v07/events/PostOpRevertReason.ts +49 -0
- package/src/extensions/erc4337/__generated__/IEntryPoint_v07/read/getUserOpHash.ts +181 -0
- package/src/extensions/prebuilts/__generated__/VoteERC20/write/initialize.ts +230 -0
- package/src/extensions/prebuilts/deploy-vote.test.ts +73 -0
- package/src/extensions/prebuilts/deploy-vote.ts +213 -0
- package/src/extensions/vote/read/proposalExists.test.ts +123 -0
- package/src/react/core/hooks/pay/useBuyWithCryptoQuote.ts +16 -1
- package/src/react/core/hooks/pay/useBuyWithFiatQuote.ts +16 -1
- package/src/react/core/hooks/transaction/useSendAndConfirmTransaction.ts +12 -0
- package/src/react/native/hooks/transaction/useSendTransaction.tsx +11 -0
- package/src/react/web/ui/TransactionButton/index.tsx +13 -0
- package/src/transaction/actions/send-and-confirm-transaction.ts +13 -0
- package/src/transaction/actions/send-transaction.ts +13 -0
- package/src/transaction/actions/zksync/send-eip712-transaction.ts +1 -1
- package/src/version.ts +1 -1
- package/src/wallets/in-app/web/lib/in-app-account.ts +5 -1
- package/src/wallets/in-app/web/utils/iFrameCommunication/IframeCommunicator.ts +1 -0
- package/src/wallets/smart/index.ts +21 -5
- package/src/wallets/smart/lib/bundler.ts +21 -5
- package/src/wallets/smart/lib/constants.ts +29 -10
- package/src/wallets/smart/lib/packUserOp.ts +79 -0
- package/src/wallets/smart/lib/paymaster.ts +22 -5
- package/src/wallets/smart/lib/userop.ts +292 -85
- package/src/wallets/smart/lib/utils.ts +11 -4
- package/src/wallets/smart/smart-wallet-integration-v07.test.ts +206 -0
- package/src/wallets/smart/smart-wallet-integration.test.ts +1 -1
- package/src/wallets/smart/smart-wallet-zksync.test.ts +3 -3
- package/src/wallets/smart/smart-wallet.ts +4 -2
- package/src/wallets/smart/types.ts +73 -9
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.
|
3
|
+
exports.DEFAULT_ACCOUNT_FACTORY_V0_7 = exports.DEFAULT_ACCOUNT_FACTORY_V0_6 = exports.ENTRYPOINT_ADDRESS_v0_7 = exports.ENTRYPOINT_ADDRESS_v0_6 = exports.getPaymasterAndData = exports.predictAddress = exports.estimateUserOpGas = exports.getUserOpGasFees = exports.bundleUserOp = exports.getUserOpReceiptRaw = exports.getUserOpReceipt = exports.signUserOp = exports.createUnsignedUserOp = exports.waitForUserOpReceipt = exports.smartWallet = void 0;
|
4
4
|
var smart_wallet_js_1 = require("../../wallets/smart/smart-wallet.js");
|
5
5
|
Object.defineProperty(exports, "smartWallet", { enumerable: true, get: function () { return smart_wallet_js_1.smartWallet; } });
|
6
6
|
var userop_js_1 = require("../../wallets/smart/lib/userop.js");
|
@@ -19,5 +19,7 @@ var paymaster_js_1 = require("../../wallets/smart/lib/paymaster.js");
|
|
19
19
|
Object.defineProperty(exports, "getPaymasterAndData", { enumerable: true, get: function () { return paymaster_js_1.getPaymasterAndData; } });
|
20
20
|
var constants_js_1 = require("../../wallets/smart/lib/constants.js");
|
21
21
|
Object.defineProperty(exports, "ENTRYPOINT_ADDRESS_v0_6", { enumerable: true, get: function () { return constants_js_1.ENTRYPOINT_ADDRESS_v0_6; } });
|
22
|
-
Object.defineProperty(exports, "
|
22
|
+
Object.defineProperty(exports, "ENTRYPOINT_ADDRESS_v0_7", { enumerable: true, get: function () { return constants_js_1.ENTRYPOINT_ADDRESS_v0_7; } });
|
23
|
+
Object.defineProperty(exports, "DEFAULT_ACCOUNT_FACTORY_V0_6", { enumerable: true, get: function () { return constants_js_1.DEFAULT_ACCOUNT_FACTORY_V0_6; } });
|
24
|
+
Object.defineProperty(exports, "DEFAULT_ACCOUNT_FACTORY_V0_7", { enumerable: true, get: function () { return constants_js_1.DEFAULT_ACCOUNT_FACTORY_V0_7; } });
|
23
25
|
//# sourceMappingURL=smart.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"smart.js","sourceRoot":"","sources":["../../../../src/exports/wallets/smart.ts"],"names":[],"mappings":";;;AAAA,uEAAkE;AAAzD,8GAAA,WAAW,OAAA;AAEpB,+DAI2C;AAHzC,iHAAA,oBAAoB,OAAA;AACpB,iHAAA,oBAAoB,OAAA;AACpB,uGAAA,UAAU,OAAA;AAGZ,iEAM4C;AAL1C,8GAAA,gBAAgB,OAAA;AAChB,iHAAA,mBAAmB,OAAA;AACnB,0GAAA,YAAY,OAAA;AACZ,8GAAA,gBAAgB,OAAA;AAChB,+GAAA,iBAAiB,OAAA;AAGnB,6DAAkE;AAAzD,0GAAA,cAAc,OAAA;AAEvB,qEAA2E;AAAlE,mHAAA,mBAAmB,OAAA;AAS5B,
|
1
|
+
{"version":3,"file":"smart.js","sourceRoot":"","sources":["../../../../src/exports/wallets/smart.ts"],"names":[],"mappings":";;;AAAA,uEAAkE;AAAzD,8GAAA,WAAW,OAAA;AAEpB,+DAI2C;AAHzC,iHAAA,oBAAoB,OAAA;AACpB,iHAAA,oBAAoB,OAAA;AACpB,uGAAA,UAAU,OAAA;AAGZ,iEAM4C;AAL1C,8GAAA,gBAAgB,OAAA;AAChB,iHAAA,mBAAmB,OAAA;AACnB,0GAAA,YAAY,OAAA;AACZ,8GAAA,gBAAgB,OAAA;AAChB,+GAAA,iBAAiB,OAAA;AAGnB,6DAAkE;AAAzD,0GAAA,cAAc,OAAA;AAEvB,qEAA2E;AAAlE,mHAAA,mBAAmB,OAAA;AAS5B,qEAK8C;AAJ5C,uHAAA,uBAAuB,OAAA;AACvB,uHAAA,uBAAuB,OAAA;AACvB,4HAAA,4BAA4B,OAAA;AAC5B,4HAAA,4BAA4B,OAAA"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"claimTo.js","sourceRoot":"","sources":["../../../../../../src/extensions/erc1155/drops/write/claimTo.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"claimTo.js","sourceRoot":"","sources":["../../../../../../src/extensions/erc1155/drops/write/claimTo.ts"],"names":[],"mappings":";;AAmCA,0BAmBC;AArDD,gGAAwF;AACxF,2EAAqE;AAYrE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAgB,OAAO,CAAC,OAA8C;IACpE,OAAO,IAAA,gBAAK,EAAC;QACX,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,CAAC,WAAW;YACf,MAAM,MAAM,GAAG,MAAM,IAAA,oCAAc,EAAC;gBAClC,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC,CAAC;YAEH,OAAO;gBACL,GAAG,MAAM;gBACT,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
package/dist/cjs/extensions/erc4337/__generated__/IEntryPoint_v07/events/PostOpRevertReason.js
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.postOpRevertReasonEvent = postOpRevertReasonEvent;
|
4
|
+
const prepare_event_js_1 = require("../../../../../event/prepare-event.js");
|
5
|
+
/**
|
6
|
+
* Creates an event object for the PostOpRevertReason event.
|
7
|
+
* @param filters - Optional filters to apply to the event.
|
8
|
+
* @returns The prepared event object.
|
9
|
+
* @extension ERC4337
|
10
|
+
* @example
|
11
|
+
* ```ts
|
12
|
+
* import { getContractEvents } from "thirdweb";
|
13
|
+
* import { postOpRevertReasonEvent } from "thirdweb/extensions/erc4337";
|
14
|
+
*
|
15
|
+
* const events = await getContractEvents({
|
16
|
+
* contract,
|
17
|
+
* events: [
|
18
|
+
* postOpRevertReasonEvent({
|
19
|
+
* userOpHash: ...,
|
20
|
+
* sender: ...,
|
21
|
+
* })
|
22
|
+
* ],
|
23
|
+
* });
|
24
|
+
* ```
|
25
|
+
*/
|
26
|
+
function postOpRevertReasonEvent(filters = {}) {
|
27
|
+
return (0, prepare_event_js_1.prepareEvent)({
|
28
|
+
signature: "event PostOpRevertReason(bytes32 indexed userOpHash, address indexed sender, uint256 nonce, bytes revertReason)",
|
29
|
+
filters,
|
30
|
+
});
|
31
|
+
}
|
32
|
+
//# sourceMappingURL=PostOpRevertReason.js.map
|
package/dist/cjs/extensions/erc4337/__generated__/IEntryPoint_v07/events/PostOpRevertReason.js.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"PostOpRevertReason.js","sourceRoot":"","sources":["../../../../../../../src/extensions/erc4337/__generated__/IEntryPoint_v07/events/PostOpRevertReason.ts"],"names":[],"mappings":";;AAwCA,0DAQC;AAhDD,4EAAqE;AAmBrE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAgB,uBAAuB,CACrC,UAA0C,EAAE;IAE5C,OAAO,IAAA,+BAAY,EAAC;QAClB,SAAS,EACP,iHAAiH;QACnH,OAAO;KACR,CAAC,CAAC;AACL,CAAC"}
|
@@ -0,0 +1,153 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.FN_SELECTOR = void 0;
|
4
|
+
exports.isGetUserOpHashSupported = isGetUserOpHashSupported;
|
5
|
+
exports.encodeGetUserOpHashParams = encodeGetUserOpHashParams;
|
6
|
+
exports.encodeGetUserOpHash = encodeGetUserOpHash;
|
7
|
+
exports.decodeGetUserOpHashResult = decodeGetUserOpHashResult;
|
8
|
+
exports.getUserOpHash = getUserOpHash;
|
9
|
+
const read_contract_js_1 = require("../../../../../transaction/read-contract.js");
|
10
|
+
const encodeAbiParameters_js_1 = require("../../../../../utils/abi/encodeAbiParameters.js");
|
11
|
+
const viem_1 = require("viem");
|
12
|
+
const detectExtension_js_1 = require("../../../../../utils/bytecode/detectExtension.js");
|
13
|
+
exports.FN_SELECTOR = "0x22cdde4c";
|
14
|
+
const FN_INPUTS = [
|
15
|
+
{
|
16
|
+
type: "tuple",
|
17
|
+
name: "userOp",
|
18
|
+
components: [
|
19
|
+
{
|
20
|
+
type: "address",
|
21
|
+
name: "sender",
|
22
|
+
},
|
23
|
+
{
|
24
|
+
type: "uint256",
|
25
|
+
name: "nonce",
|
26
|
+
},
|
27
|
+
{
|
28
|
+
type: "bytes",
|
29
|
+
name: "initCode",
|
30
|
+
},
|
31
|
+
{
|
32
|
+
type: "bytes",
|
33
|
+
name: "callData",
|
34
|
+
},
|
35
|
+
{
|
36
|
+
type: "bytes32",
|
37
|
+
name: "accountGasLimits",
|
38
|
+
},
|
39
|
+
{
|
40
|
+
type: "uint256",
|
41
|
+
name: "preVerificationGas",
|
42
|
+
},
|
43
|
+
{
|
44
|
+
type: "bytes32",
|
45
|
+
name: "gasFees",
|
46
|
+
},
|
47
|
+
{
|
48
|
+
type: "bytes",
|
49
|
+
name: "paymasterAndData",
|
50
|
+
},
|
51
|
+
{
|
52
|
+
type: "bytes",
|
53
|
+
name: "signature",
|
54
|
+
},
|
55
|
+
],
|
56
|
+
},
|
57
|
+
];
|
58
|
+
const FN_OUTPUTS = [
|
59
|
+
{
|
60
|
+
type: "bytes32",
|
61
|
+
},
|
62
|
+
];
|
63
|
+
/**
|
64
|
+
* Checks if the `getUserOpHash` method is supported by the given contract.
|
65
|
+
* @param contract The ThirdwebContract.
|
66
|
+
* @returns A promise that resolves to a boolean indicating if the `getUserOpHash` method is supported.
|
67
|
+
* @extension ERC4337
|
68
|
+
* @example
|
69
|
+
* ```ts
|
70
|
+
* import { isGetUserOpHashSupported } from "thirdweb/extensions/erc4337";
|
71
|
+
*
|
72
|
+
* const supported = await isGetUserOpHashSupported(contract);
|
73
|
+
* ```
|
74
|
+
*/
|
75
|
+
async function isGetUserOpHashSupported(contract) {
|
76
|
+
return (0, detectExtension_js_1.detectMethod)({
|
77
|
+
contract,
|
78
|
+
method: [exports.FN_SELECTOR, FN_INPUTS, FN_OUTPUTS],
|
79
|
+
});
|
80
|
+
}
|
81
|
+
/**
|
82
|
+
* Encodes the parameters for the "getUserOpHash" function.
|
83
|
+
* @param options - The options for the getUserOpHash function.
|
84
|
+
* @returns The encoded ABI parameters.
|
85
|
+
* @extension ERC4337
|
86
|
+
* @example
|
87
|
+
* ```ts
|
88
|
+
* import { encodeGetUserOpHashParams } "thirdweb/extensions/erc4337";
|
89
|
+
* const result = encodeGetUserOpHashParams({
|
90
|
+
* userOp: ...,
|
91
|
+
* });
|
92
|
+
* ```
|
93
|
+
*/
|
94
|
+
function encodeGetUserOpHashParams(options) {
|
95
|
+
return (0, encodeAbiParameters_js_1.encodeAbiParameters)(FN_INPUTS, [options.userOp]);
|
96
|
+
}
|
97
|
+
/**
|
98
|
+
* Encodes the "getUserOpHash" function into a Hex string with its parameters.
|
99
|
+
* @param options - The options for the getUserOpHash function.
|
100
|
+
* @returns The encoded hexadecimal string.
|
101
|
+
* @extension ERC4337
|
102
|
+
* @example
|
103
|
+
* ```ts
|
104
|
+
* import { encodeGetUserOpHash } "thirdweb/extensions/erc4337";
|
105
|
+
* const result = encodeGetUserOpHash({
|
106
|
+
* userOp: ...,
|
107
|
+
* });
|
108
|
+
* ```
|
109
|
+
*/
|
110
|
+
function encodeGetUserOpHash(options) {
|
111
|
+
// we do a "manual" concat here to avoid the overhead of the "concatHex" function
|
112
|
+
// we can do this because we know the specific formats of the values
|
113
|
+
return (exports.FN_SELECTOR +
|
114
|
+
encodeGetUserOpHashParams(options).slice(2));
|
115
|
+
}
|
116
|
+
/**
|
117
|
+
* Decodes the result of the getUserOpHash function call.
|
118
|
+
* @param result - The hexadecimal result to decode.
|
119
|
+
* @returns The decoded result as per the FN_OUTPUTS definition.
|
120
|
+
* @extension ERC4337
|
121
|
+
* @example
|
122
|
+
* ```ts
|
123
|
+
* import { decodeGetUserOpHashResult } from "thirdweb/extensions/erc4337";
|
124
|
+
* const result = decodeGetUserOpHashResult("...");
|
125
|
+
* ```
|
126
|
+
*/
|
127
|
+
function decodeGetUserOpHashResult(result) {
|
128
|
+
return (0, viem_1.decodeAbiParameters)(FN_OUTPUTS, result)[0];
|
129
|
+
}
|
130
|
+
/**
|
131
|
+
* Calls the "getUserOpHash" function on the contract.
|
132
|
+
* @param options - The options for the getUserOpHash function.
|
133
|
+
* @returns The parsed result of the function call.
|
134
|
+
* @extension ERC4337
|
135
|
+
* @example
|
136
|
+
* ```ts
|
137
|
+
* import { getUserOpHash } from "thirdweb/extensions/erc4337";
|
138
|
+
*
|
139
|
+
* const result = await getUserOpHash({
|
140
|
+
* contract,
|
141
|
+
* userOp: ...,
|
142
|
+
* });
|
143
|
+
*
|
144
|
+
* ```
|
145
|
+
*/
|
146
|
+
async function getUserOpHash(options) {
|
147
|
+
return (0, read_contract_js_1.readContract)({
|
148
|
+
contract: options.contract,
|
149
|
+
method: [exports.FN_SELECTOR, FN_INPUTS, FN_OUTPUTS],
|
150
|
+
params: [options.userOp],
|
151
|
+
});
|
152
|
+
}
|
153
|
+
//# sourceMappingURL=getUserOpHash.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"getUserOpHash.js","sourceRoot":"","sources":["../../../../../../../src/extensions/erc4337/__generated__/IEntryPoint_v07/read/getUserOpHash.ts"],"names":[],"mappings":";;;AA6FA,4DAOC;AAeD,8DAEC;AAeD,kDAOC;AAaD,8DAEC;AAkBD,sCAQC;AAnLD,kFAA2E;AAE3E,4FAAsF;AACtF,+BAA2C;AAG3C,yFAAgF;AAuBnE,QAAA,WAAW,GAAG,YAAqB,CAAC;AACjD,MAAM,SAAS,GAAG;IAChB;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;aACf;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,OAAO;aACd;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,UAAU;aACjB;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,UAAU;aACjB;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,kBAAkB;aACzB;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,oBAAoB;aAC3B;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,kBAAkB;aACzB;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,WAAW;aAClB;SACF;KACF;CACO,CAAC;AACX,MAAM,UAAU,GAAG;IACjB;QACE,IAAI,EAAE,SAAS;KAChB;CACO,CAAC;AAEX;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,wBAAwB,CAC5C,QAA+B;IAE/B,OAAO,IAAA,iCAAY,EAAC;QAClB,QAAQ;QACR,MAAM,EAAE,CAAC,mBAAW,EAAE,SAAS,EAAE,UAAU,CAAU;KACtD,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,yBAAyB,CAAC,OAA4B;IACpE,OAAO,IAAA,4CAAmB,EAAC,SAAS,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,mBAAmB,CAAC,OAA4B;IAC9D,iFAAiF;IACjF,oEAAoE;IACpE,OAAO,CAAC,mBAAW;QACjB,yBAAyB,CAAC,OAAO,CAAC,CAAC,KAAK,CACtC,CAAC,CACF,CAAqC,CAAC;AAC3C,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,yBAAyB,CAAC,MAAW;IACnD,OAAO,IAAA,0BAAmB,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACI,KAAK,UAAU,aAAa,CACjC,OAAoD;IAEpD,OAAO,IAAA,+BAAY,EAAC;QAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,MAAM,EAAE,CAAC,mBAAW,EAAE,SAAS,EAAE,UAAU,CAAU;QACrD,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;KACzB,CAAC,CAAC;AACL,CAAC"}
|
@@ -0,0 +1,184 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.FN_SELECTOR = void 0;
|
4
|
+
exports.isInitializeSupported = isInitializeSupported;
|
5
|
+
exports.encodeInitializeParams = encodeInitializeParams;
|
6
|
+
exports.encodeInitialize = encodeInitialize;
|
7
|
+
exports.initialize = initialize;
|
8
|
+
const prepare_contract_call_js_1 = require("../../../../../transaction/prepare-contract-call.js");
|
9
|
+
const encodeAbiParameters_js_1 = require("../../../../../utils/abi/encodeAbiParameters.js");
|
10
|
+
const once_js_1 = require("../../../../../utils/promise/once.js");
|
11
|
+
const detectExtension_js_1 = require("../../../../../utils/bytecode/detectExtension.js");
|
12
|
+
exports.FN_SELECTOR = "0x7cf43f8d";
|
13
|
+
const FN_INPUTS = [
|
14
|
+
{
|
15
|
+
type: "string",
|
16
|
+
name: "_name",
|
17
|
+
},
|
18
|
+
{
|
19
|
+
type: "string",
|
20
|
+
name: "_contractURI",
|
21
|
+
},
|
22
|
+
{
|
23
|
+
type: "address[]",
|
24
|
+
name: "_trustedForwarders",
|
25
|
+
},
|
26
|
+
{
|
27
|
+
type: "address",
|
28
|
+
name: "_token",
|
29
|
+
},
|
30
|
+
{
|
31
|
+
type: "uint256",
|
32
|
+
name: "_initialVotingDelay",
|
33
|
+
},
|
34
|
+
{
|
35
|
+
type: "uint256",
|
36
|
+
name: "_initialVotingPeriod",
|
37
|
+
},
|
38
|
+
{
|
39
|
+
type: "uint256",
|
40
|
+
name: "_initialProposalThreshold",
|
41
|
+
},
|
42
|
+
{
|
43
|
+
type: "uint256",
|
44
|
+
name: "_initialVoteQuorumFraction",
|
45
|
+
},
|
46
|
+
];
|
47
|
+
const FN_OUTPUTS = [];
|
48
|
+
/**
|
49
|
+
* Checks if the `initialize` method is supported by the given contract.
|
50
|
+
* @param contract The ThirdwebContract.
|
51
|
+
* @returns A promise that resolves to a boolean indicating if the `initialize` method is supported.
|
52
|
+
* @extension PREBUILTS
|
53
|
+
* @example
|
54
|
+
* ```ts
|
55
|
+
* import { isInitializeSupported } from "thirdweb/extensions/prebuilts";
|
56
|
+
*
|
57
|
+
* const supported = await isInitializeSupported(contract);
|
58
|
+
* ```
|
59
|
+
*/
|
60
|
+
async function isInitializeSupported(contract) {
|
61
|
+
return (0, detectExtension_js_1.detectMethod)({
|
62
|
+
contract,
|
63
|
+
method: [exports.FN_SELECTOR, FN_INPUTS, FN_OUTPUTS],
|
64
|
+
});
|
65
|
+
}
|
66
|
+
/**
|
67
|
+
* Encodes the parameters for the "initialize" function.
|
68
|
+
* @param options - The options for the initialize function.
|
69
|
+
* @returns The encoded ABI parameters.
|
70
|
+
* @extension PREBUILTS
|
71
|
+
* @example
|
72
|
+
* ```ts
|
73
|
+
* import { encodeInitializeParams } "thirdweb/extensions/prebuilts";
|
74
|
+
* const result = encodeInitializeParams({
|
75
|
+
* name: ...,
|
76
|
+
* contractURI: ...,
|
77
|
+
* trustedForwarders: ...,
|
78
|
+
* token: ...,
|
79
|
+
* initialVotingDelay: ...,
|
80
|
+
* initialVotingPeriod: ...,
|
81
|
+
* initialProposalThreshold: ...,
|
82
|
+
* initialVoteQuorumFraction: ...,
|
83
|
+
* });
|
84
|
+
* ```
|
85
|
+
*/
|
86
|
+
function encodeInitializeParams(options) {
|
87
|
+
return (0, encodeAbiParameters_js_1.encodeAbiParameters)(FN_INPUTS, [
|
88
|
+
options.name,
|
89
|
+
options.contractURI,
|
90
|
+
options.trustedForwarders,
|
91
|
+
options.token,
|
92
|
+
options.initialVotingDelay,
|
93
|
+
options.initialVotingPeriod,
|
94
|
+
options.initialProposalThreshold,
|
95
|
+
options.initialVoteQuorumFraction,
|
96
|
+
]);
|
97
|
+
}
|
98
|
+
/**
|
99
|
+
* Encodes the "initialize" function into a Hex string with its parameters.
|
100
|
+
* @param options - The options for the initialize function.
|
101
|
+
* @returns The encoded hexadecimal string.
|
102
|
+
* @extension PREBUILTS
|
103
|
+
* @example
|
104
|
+
* ```ts
|
105
|
+
* import { encodeInitialize } "thirdweb/extensions/prebuilts";
|
106
|
+
* const result = encodeInitialize({
|
107
|
+
* name: ...,
|
108
|
+
* contractURI: ...,
|
109
|
+
* trustedForwarders: ...,
|
110
|
+
* token: ...,
|
111
|
+
* initialVotingDelay: ...,
|
112
|
+
* initialVotingPeriod: ...,
|
113
|
+
* initialProposalThreshold: ...,
|
114
|
+
* initialVoteQuorumFraction: ...,
|
115
|
+
* });
|
116
|
+
* ```
|
117
|
+
*/
|
118
|
+
function encodeInitialize(options) {
|
119
|
+
// we do a "manual" concat here to avoid the overhead of the "concatHex" function
|
120
|
+
// we can do this because we know the specific formats of the values
|
121
|
+
return (exports.FN_SELECTOR +
|
122
|
+
encodeInitializeParams(options).slice(2));
|
123
|
+
}
|
124
|
+
/**
|
125
|
+
* Prepares a transaction to call the "initialize" function on the contract.
|
126
|
+
* @param options - The options for the "initialize" function.
|
127
|
+
* @returns A prepared transaction object.
|
128
|
+
* @extension PREBUILTS
|
129
|
+
* @example
|
130
|
+
* ```ts
|
131
|
+
* import { initialize } from "thirdweb/extensions/prebuilts";
|
132
|
+
*
|
133
|
+
* const transaction = initialize({
|
134
|
+
* contract,
|
135
|
+
* name: ...,
|
136
|
+
* contractURI: ...,
|
137
|
+
* trustedForwarders: ...,
|
138
|
+
* token: ...,
|
139
|
+
* initialVotingDelay: ...,
|
140
|
+
* initialVotingPeriod: ...,
|
141
|
+
* initialProposalThreshold: ...,
|
142
|
+
* initialVoteQuorumFraction: ...,
|
143
|
+
* overrides: {
|
144
|
+
* ...
|
145
|
+
* }
|
146
|
+
* });
|
147
|
+
*
|
148
|
+
* // Send the transaction
|
149
|
+
* ...
|
150
|
+
*
|
151
|
+
* ```
|
152
|
+
*/
|
153
|
+
function initialize(options) {
|
154
|
+
const asyncOptions = (0, once_js_1.once)(async () => {
|
155
|
+
return "asyncParams" in options ? await options.asyncParams() : options;
|
156
|
+
});
|
157
|
+
return (0, prepare_contract_call_js_1.prepareContractCall)({
|
158
|
+
contract: options.contract,
|
159
|
+
method: [exports.FN_SELECTOR, FN_INPUTS, FN_OUTPUTS],
|
160
|
+
params: async () => {
|
161
|
+
const resolvedOptions = await asyncOptions();
|
162
|
+
return [
|
163
|
+
resolvedOptions.name,
|
164
|
+
resolvedOptions.contractURI,
|
165
|
+
resolvedOptions.trustedForwarders,
|
166
|
+
resolvedOptions.token,
|
167
|
+
resolvedOptions.initialVotingDelay,
|
168
|
+
resolvedOptions.initialVotingPeriod,
|
169
|
+
resolvedOptions.initialProposalThreshold,
|
170
|
+
resolvedOptions.initialVoteQuorumFraction,
|
171
|
+
];
|
172
|
+
},
|
173
|
+
value: async () => (await asyncOptions()).overrides?.value,
|
174
|
+
accessList: async () => (await asyncOptions()).overrides?.accessList,
|
175
|
+
gas: async () => (await asyncOptions()).overrides?.gas,
|
176
|
+
gasPrice: async () => (await asyncOptions()).overrides?.gasPrice,
|
177
|
+
maxFeePerGas: async () => (await asyncOptions()).overrides?.maxFeePerGas,
|
178
|
+
maxPriorityFeePerGas: async () => (await asyncOptions()).overrides?.maxPriorityFeePerGas,
|
179
|
+
nonce: async () => (await asyncOptions()).overrides?.nonce,
|
180
|
+
extraGas: async () => (await asyncOptions()).overrides?.extraGas,
|
181
|
+
erc20Value: async () => (await asyncOptions()).overrides?.erc20Value,
|
182
|
+
});
|
183
|
+
}
|
184
|
+
//# sourceMappingURL=initialize.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../../../../../../src/extensions/prebuilts/__generated__/VoteERC20/write/initialize.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,122 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.deployVoteContract = deployVoteContract;
|
4
|
+
const contract_js_1 = require("../../contract/contract.js");
|
5
|
+
const deploy_via_autofactory_js_1 = require("../../contract/deployment/deploy-via-autofactory.js");
|
6
|
+
const bootstrap_js_1 = require("../../contract/deployment/utils/bootstrap.js");
|
7
|
+
const decimals_js_1 = require("../erc20/read/decimals.js");
|
8
|
+
/**
|
9
|
+
* Deploys a thirdweb [`VoteERC20 contract`](https://thirdweb.com/thirdweb.eth/VoteERC20)
|
10
|
+
* On chains where the thirdweb infrastructure contracts are not deployed, this function will deploy them as well.
|
11
|
+
* @param options - The deployment options.
|
12
|
+
* @returns The deployed contract address.
|
13
|
+
* @extension DEPLOY
|
14
|
+
*
|
15
|
+
* @example
|
16
|
+
* ```ts
|
17
|
+
* import { deployVoteContract } from "thirdweb/deploys";
|
18
|
+
* const contractAddress = await deployVoteContract({
|
19
|
+
* chain,
|
20
|
+
* client,
|
21
|
+
* account,
|
22
|
+
* params: {
|
23
|
+
* tokenAddress: "0x...",
|
24
|
+
* // user needs 0.5 <token> to create proposal
|
25
|
+
* initialProposalThreshold: "0.5",
|
26
|
+
* // vote expires 10 blocks later
|
27
|
+
* initialVotingPeriod: 10,
|
28
|
+
* // Requires 51% of users who voted, voted "For", for this proposal to pass
|
29
|
+
* minVoteQuorumRequiredPercent: 51,
|
30
|
+
* }
|
31
|
+
* });
|
32
|
+
* ```
|
33
|
+
*/
|
34
|
+
async function deployVoteContract(options) {
|
35
|
+
const { chain, client, account, params } = options;
|
36
|
+
const { cloneFactoryContract, implementationContract } = await (0, bootstrap_js_1.getOrDeployInfraForPublishedContract)({
|
37
|
+
chain,
|
38
|
+
client,
|
39
|
+
account,
|
40
|
+
contractId: "VoteERC20",
|
41
|
+
constructorParams: [],
|
42
|
+
});
|
43
|
+
const initializeTransaction = await getInitializeTransaction({
|
44
|
+
client,
|
45
|
+
implementationContract,
|
46
|
+
params,
|
47
|
+
accountAddress: account.address,
|
48
|
+
chain,
|
49
|
+
});
|
50
|
+
return (0, deploy_via_autofactory_js_1.deployViaAutoFactory)({
|
51
|
+
client,
|
52
|
+
chain,
|
53
|
+
account,
|
54
|
+
cloneFactoryContract,
|
55
|
+
initializeTransaction,
|
56
|
+
});
|
57
|
+
}
|
58
|
+
async function getInitializeTransaction(options) {
|
59
|
+
const { client, implementationContract, params, chain } = options;
|
60
|
+
const { name, tokenAddress, initialProposalThreshold, minVoteQuorumRequiredPercent, initialVotingDelay, initialVotingPeriod, description, symbol, image, external_link, social_urls, } = params;
|
61
|
+
const tokenErc20Contract = (0, contract_js_1.getContract)({
|
62
|
+
address: tokenAddress,
|
63
|
+
client,
|
64
|
+
chain,
|
65
|
+
});
|
66
|
+
/**
|
67
|
+
* A good side effect for checking for token decimals (instead of just taking in value in wei)
|
68
|
+
* is that it validates the token address that user entered. In case they enter an invalid ERC20 contract address,
|
69
|
+
* the extension will throw.
|
70
|
+
*/
|
71
|
+
const _decimals = await (0, decimals_js_1.decimals)({ contract: tokenErc20Contract });
|
72
|
+
if (!_decimals) {
|
73
|
+
throw new Error(`Could not fetch decimals for contract: ${tokenAddress}`);
|
74
|
+
}
|
75
|
+
const [{ toUnits }, { upload }, { initialize }] = await Promise.all([
|
76
|
+
Promise.resolve().then(() => require("../../utils/units.js")),
|
77
|
+
Promise.resolve().then(() => require("../../storage/upload.js")),
|
78
|
+
Promise.resolve().then(() => require("./__generated__/VoteERC20/write/initialize.js")),
|
79
|
+
]);
|
80
|
+
const initialProposalThresholdInWei = toUnits(String(initialProposalThreshold), _decimals);
|
81
|
+
const contractURI = params.contractURI ||
|
82
|
+
(await upload({
|
83
|
+
client,
|
84
|
+
files: [
|
85
|
+
{
|
86
|
+
name,
|
87
|
+
description,
|
88
|
+
symbol,
|
89
|
+
image,
|
90
|
+
external_link,
|
91
|
+
social_urls,
|
92
|
+
},
|
93
|
+
],
|
94
|
+
})) ||
|
95
|
+
"";
|
96
|
+
// Validate initialVoteQuorumFraction
|
97
|
+
const _num = Number(minVoteQuorumRequiredPercent);
|
98
|
+
if (Number.isNaN(_num)) {
|
99
|
+
throw new Error(`${minVoteQuorumRequiredPercent} is not a valid minVoteQuorumRequiredPercent`);
|
100
|
+
}
|
101
|
+
if (_num < 0 || _num > 100) {
|
102
|
+
throw new Error("minVoteQuorumRequiredPercent must be >= 0 and <= 100");
|
103
|
+
}
|
104
|
+
// Make sure if user is passing a float, it should only have 2 digit after the decimal point
|
105
|
+
if (!Number.isInteger(_num)) {
|
106
|
+
throw new Error(`${_num} is an invalid value. Only integer-like values accepted`);
|
107
|
+
}
|
108
|
+
const initialVoteQuorumFraction = BigInt(_num);
|
109
|
+
return initialize({
|
110
|
+
contract: implementationContract,
|
111
|
+
name,
|
112
|
+
token: tokenAddress,
|
113
|
+
// Make sure the final value passed to `initialProposalThreshold` is in wei
|
114
|
+
initialProposalThreshold: initialProposalThresholdInWei,
|
115
|
+
initialVoteQuorumFraction,
|
116
|
+
initialVotingDelay: BigInt(initialVotingDelay || 0),
|
117
|
+
initialVotingPeriod: BigInt(initialVotingPeriod),
|
118
|
+
contractURI,
|
119
|
+
trustedForwarders: params.trustedForwarders || [],
|
120
|
+
});
|
121
|
+
}
|
122
|
+
//# sourceMappingURL=deploy-vote.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"deploy-vote.js","sourceRoot":"","sources":["../../../../src/extensions/prebuilts/deploy-vote.ts"],"names":[],"mappings":"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"}
|
@@ -76,7 +76,11 @@ function useBuyWithCryptoQuote(params, queryParams) {
|
|
76
76
|
}
|
77
77
|
try {
|
78
78
|
// biome-ignore lint/suspicious/noExplicitAny: <explanation>
|
79
|
-
|
79
|
+
const serverError = error.error;
|
80
|
+
if (serverError.code === "MINIMUM_PURCHASE_AMOUNT") {
|
81
|
+
return false;
|
82
|
+
}
|
83
|
+
if (serverError.statusCode === 404 || serverError.statusCode >= 500) {
|
80
84
|
return false;
|
81
85
|
}
|
82
86
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useBuyWithCryptoQuote.js","sourceRoot":"","sources":["../../../../../../src/react/core/hooks/pay/useBuyWithCryptoQuote.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"useBuyWithCryptoQuote.js","sourceRoot":"","sources":["../../../../../../src/react/core/hooks/pay/useBuyWithCryptoQuote.ts"],"names":[],"mappings":";;AAoFA,sDAqCC;AAzHD,uDAI+B;AAC/B,2EAImD;AAmBnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,SAAgB,qBAAqB,CACnC,MAAoC,EACpC,WAA4C;IAE5C,OAAO,IAAA,sBAAQ,EAAC;QACd,GAAG,WAAW;QACd,QAAQ,EAAE,CAAC,oBAAoB,EAAE,MAAM,CAAC;QACxC,OAAO,EAAE,GAAG,EAAE;YACZ,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAC9C,CAAC;YAED,OAAO,IAAA,mCAAqB,EAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,EAAE,CAAC,CAAC,MAAM;QACjB,KAAK,CAAC,YAAY,EAAE,KAAK;YACvB,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;gBACrB,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,CAAC;gBACH,4DAA4D;gBAC5D,MAAM,WAAW,GAAI,KAAa,CAAC,KAAgC,CAAC;gBAEpE,IAAI,WAAW,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;oBACnD,OAAO,KAAK,CAAC;gBACf,CAAC;gBAED,IAAI,WAAW,CAAC,UAAU,KAAK,GAAG,IAAI,WAAW,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;oBACpE,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
@@ -65,7 +65,11 @@ function useBuyWithFiatQuote(params, queryOptions) {
|
|
65
65
|
}
|
66
66
|
try {
|
67
67
|
// biome-ignore lint/suspicious/noExplicitAny: <explanation>
|
68
|
-
|
68
|
+
const serverError = error.error;
|
69
|
+
if (serverError.code === "MINIMUM_PURCHASE_AMOUNT") {
|
70
|
+
return false;
|
71
|
+
}
|
72
|
+
if (serverError.statusCode === 404 || serverError.statusCode >= 500) {
|
69
73
|
return false;
|
70
74
|
}
|
71
75
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useBuyWithFiatQuote.js","sourceRoot":"","sources":["../../../../../../src/react/core/hooks/pay/useBuyWithFiatQuote.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"useBuyWithFiatQuote.js","sourceRoot":"","sources":["../../../../../../src/react/core/hooks/pay/useBuyWithFiatQuote.ts"],"names":[],"mappings":";;AAyEA,kDAoCC;AA7GD,uDAI+B;AAC/B,yEAIiD;AAmBjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,SAAgB,mBAAmB,CACjC,MAAkC,EAClC,YAA2C;IAE3C,OAAO,IAAA,sBAAQ,EAAC;QACd,GAAG,YAAY;QACf,QAAQ,EAAE,CAAC,qBAAqB,EAAE,MAAM,CAAC;QACzC,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACxC,CAAC;YACD,OAAO,IAAA,iCAAmB,EAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,EAAE,CAAC,CAAC,MAAM;QACjB,KAAK,CAAC,YAAY,EAAE,KAAK;YACvB,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;gBACrB,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,CAAC;gBACH,4DAA4D;gBAC5D,MAAM,WAAW,GAAI,KAAa,CAAC,KAA8B,CAAC;gBAElE,IAAI,WAAW,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;oBACnD,OAAO,KAAK,CAAC;gBACf,CAAC;gBAED,IAAI,WAAW,CAAC,UAAU,KAAK,GAAG,IAAI,WAAW,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;oBACpE,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
@@ -28,6 +28,18 @@ const useActiveAccount_js_1 = require("../wallets/useActiveAccount.js");
|
|
28
28
|
* }
|
29
29
|
* });
|
30
30
|
* ```
|
31
|
+
*
|
32
|
+
* ### Gasless usage with OpenZeppelin
|
33
|
+
* ```tsx
|
34
|
+
* import { useSendAndConfirmTransaction } from "thirdweb/react";
|
35
|
+
* const mutation = useSendAndConfirmTransaction({
|
36
|
+
* gasless: {
|
37
|
+
* provider: "openzeppelin",
|
38
|
+
* relayerUrl: "https://...",
|
39
|
+
* relayerForwarderAddress: "0x...",
|
40
|
+
* }
|
41
|
+
* });
|
42
|
+
* ```
|
31
43
|
* @transaction
|
32
44
|
*/
|
33
45
|
function useSendAndConfirmTransaction(config = {}) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useSendAndConfirmTransaction.js","sourceRoot":"","sources":["../../../../../../src/react/core/hooks/transaction/useSendAndConfirmTransaction.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"useSendAndConfirmTransaction.js","sourceRoot":"","sources":["../../../../../../src/react/core/hooks/transaction/useSendAndConfirmTransaction.ts"],"names":[],"mappings":";;AAwDA,oEAiBC;AAzED,uDAA4E;AAE5E,qHAA4G;AAG5G,wEAAkE;AAalE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,SAAgB,4BAA4B,CAC1C,SAA0C,EAAE;IAE5C,MAAM,OAAO,GAAG,IAAA,sCAAgB,GAAE,CAAC;IACnC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAC3B,OAAO,IAAA,yBAAW,EAAC;QACjB,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE;YAChC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACvC,CAAC;YACD,OAAO,MAAM,IAAA,2DAAyB,EAAC;gBACrC,WAAW;gBACX,OAAO;gBACP,OAAO;aACR,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
@@ -29,6 +29,17 @@ const useSwitchActiveWalletChain_js_1 = require("../../../core/hooks/wallets/use
|
|
29
29
|
* }
|
30
30
|
* });
|
31
31
|
* ```
|
32
|
+
*
|
33
|
+
* ### Gasless usage with OpenZeppelin
|
34
|
+
* ```tsx
|
35
|
+
* import { useSendTransaction } from "thirdweb/react";
|
36
|
+
* const mutation = useSendTransaction({
|
37
|
+
* gasless: {
|
38
|
+
* provider: "openzeppelin",
|
39
|
+
* relayerUrl: "https://...",
|
40
|
+
* relayerForwarderAddress: "0x...",
|
41
|
+
* }
|
42
|
+
* });
|
32
43
|
* @transaction
|
33
44
|
*/
|
34
45
|
function useSendTransaction(config = {}) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useSendTransaction.js","sourceRoot":"","sources":["../../../../../../src/react/native/hooks/transaction/useSendTransaction.tsx"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"useSendTransaction.js","sourceRoot":"","sources":["../../../../../../src/react/native/hooks/transaction/useSendTransaction.tsx"],"names":[],"mappings":";;AA6CA,gDAQC;AArDD,iGAG+D;AAC/D,uFAAiF;AACjF,6GAAuG;AAEvG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,SAAgB,kBAAkB,CAAC,SAAgC,EAAE;IACnE,KAAK,MAAM,CAAC,CAAC,wBAAwB;IACrC,MAAM,MAAM,GAAG,IAAA,oCAAe,GAAE,CAAC;IACjC,MAAM,WAAW,GAAG,IAAA,0DAA0B,GAAE,CAAC;IACjD,OAAO,IAAA,8CAAsB,EAAC;QAC5B,MAAM;QACN,WAAW;KACZ,CAAC,CAAC;AACL,CAAC"}
|