thirdweb 5.72.0 → 5.73.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/exports/pay.js +5 -1
- package/dist/cjs/exports/pay.js.map +1 -1
- package/dist/cjs/pay/convert/cryptoToFiat.js +73 -0
- package/dist/cjs/pay/convert/cryptoToFiat.js.map +1 -0
- package/dist/cjs/pay/convert/fiatToCrypto.js +73 -0
- package/dist/cjs/pay/convert/fiatToCrypto.js.map +1 -0
- package/dist/cjs/pay/utils/definitions.js +5 -1
- package/dist/cjs/pay/utils/definitions.js.map +1 -1
- package/dist/cjs/react/core/hooks/wallets/useConnect.js +8 -1
- package/dist/cjs/react/core/hooks/wallets/useConnect.js.map +1 -1
- package/dist/cjs/transaction/actions/zksync/send-eip712-transaction.js +3 -1
- package/dist/cjs/transaction/actions/zksync/send-eip712-transaction.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/wallets/in-app/core/actions/get-enclave-user-status.js +1 -1
- package/dist/cjs/wallets/in-app/core/actions/get-enclave-user-status.js.map +1 -1
- package/dist/cjs/wallets/manager/index.js +27 -20
- package/dist/cjs/wallets/manager/index.js.map +1 -1
- package/dist/cjs/wallets/smart/lib/paymaster.js +4 -0
- package/dist/cjs/wallets/smart/lib/paymaster.js.map +1 -1
- package/dist/esm/exports/pay.js +2 -0
- package/dist/esm/exports/pay.js.map +1 -1
- package/dist/esm/pay/convert/cryptoToFiat.js +70 -0
- package/dist/esm/pay/convert/cryptoToFiat.js.map +1 -0
- package/dist/esm/pay/convert/fiatToCrypto.js +70 -0
- package/dist/esm/pay/convert/fiatToCrypto.js.map +1 -0
- package/dist/esm/pay/utils/definitions.js +2 -0
- package/dist/esm/pay/utils/definitions.js.map +1 -1
- package/dist/esm/react/core/hooks/wallets/useConnect.js +8 -1
- package/dist/esm/react/core/hooks/wallets/useConnect.js.map +1 -1
- package/dist/esm/transaction/actions/zksync/send-eip712-transaction.js +3 -1
- package/dist/esm/transaction/actions/zksync/send-eip712-transaction.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/wallets/in-app/core/actions/get-enclave-user-status.js +1 -1
- package/dist/esm/wallets/in-app/core/actions/get-enclave-user-status.js.map +1 -1
- package/dist/esm/wallets/manager/index.js +27 -20
- package/dist/esm/wallets/manager/index.js.map +1 -1
- package/dist/esm/wallets/smart/lib/paymaster.js +4 -0
- package/dist/esm/wallets/smart/lib/paymaster.js.map +1 -1
- package/dist/types/exports/pay.d.ts +2 -0
- package/dist/types/exports/pay.d.ts.map +1 -1
- package/dist/types/pay/convert/cryptoToFiat.d.ts +54 -0
- package/dist/types/pay/convert/cryptoToFiat.d.ts.map +1 -0
- package/dist/types/pay/convert/fiatToCrypto.d.ts +55 -0
- package/dist/types/pay/convert/fiatToCrypto.d.ts.map +1 -0
- package/dist/types/pay/utils/definitions.d.ts +2 -0
- package/dist/types/pay/utils/definitions.d.ts.map +1 -1
- package/dist/types/react/core/hooks/wallets/useConnect.d.ts +8 -1
- package/dist/types/react/core/hooks/wallets/useConnect.d.ts.map +1 -1
- package/dist/types/transaction/actions/zksync/send-eip712-transaction.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/wallets/manager/index.d.ts.map +1 -1
- package/dist/types/wallets/smart/lib/paymaster.d.ts.map +1 -1
- package/package.json +22 -21
- package/src/exports/pay.ts +10 -0
- package/src/pay/convert/cryptoToFiat.test.ts +95 -0
- package/src/pay/convert/cryptoToFiat.ts +111 -0
- package/src/pay/convert/fiatToCrypto.test.ts +96 -0
- package/src/pay/convert/fiatToCrypto.ts +110 -0
- package/src/pay/utils/definitions.ts +6 -0
- package/src/react/core/hooks/wallets/useConnect.ts +8 -1
- package/src/transaction/actions/zksync/send-eip712-transaction.ts +5 -1
- package/src/version.ts +1 -1
- package/src/wallets/in-app/core/actions/get-enclave-user-status.ts +1 -1
- package/src/wallets/manager/connection-manager.test.ts +68 -0
- package/src/wallets/manager/index.ts +39 -20
- package/src/wallets/smart/lib/paymaster.ts +7 -0
package/dist/cjs/exports/pay.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.isSwapRequiredPostOnramp = exports.getBuyHistory = exports.getPostOnRampQuote = exports.getBuyWithFiatHistory = exports.getBuyWithFiatStatus = exports.getBuyWithFiatQuote = exports.getBuyWithCryptoHistory = exports.getBuyWithCryptoStatus = exports.getBuyWithCryptoTransfer = exports.getBuyWithCryptoQuote = void 0;
|
3
|
+
exports.convertCryptoToFiat = exports.convertFiatToCrypto = exports.isSwapRequiredPostOnramp = exports.getBuyHistory = exports.getPostOnRampQuote = exports.getBuyWithFiatHistory = exports.getBuyWithFiatStatus = exports.getBuyWithFiatQuote = exports.getBuyWithCryptoHistory = exports.getBuyWithCryptoStatus = exports.getBuyWithCryptoTransfer = exports.getBuyWithCryptoQuote = void 0;
|
4
4
|
var getQuote_js_1 = require("../pay/buyWithCrypto/getQuote.js");
|
5
5
|
Object.defineProperty(exports, "getBuyWithCryptoQuote", { enumerable: true, get: function () { return getQuote_js_1.getBuyWithCryptoQuote; } });
|
6
6
|
var getTransfer_js_1 = require("../pay/buyWithCrypto/getTransfer.js");
|
@@ -22,4 +22,8 @@ var getBuyHistory_js_1 = require("../pay/getBuyHistory.js");
|
|
22
22
|
Object.defineProperty(exports, "getBuyHistory", { enumerable: true, get: function () { return getBuyHistory_js_1.getBuyHistory; } });
|
23
23
|
var isSwapRequiredPostOnramp_js_1 = require("../pay/buyWithFiat/isSwapRequiredPostOnramp.js");
|
24
24
|
Object.defineProperty(exports, "isSwapRequiredPostOnramp", { enumerable: true, get: function () { return isSwapRequiredPostOnramp_js_1.isSwapRequiredPostOnramp; } });
|
25
|
+
var fiatToCrypto_js_1 = require("../pay/convert/fiatToCrypto.js");
|
26
|
+
Object.defineProperty(exports, "convertFiatToCrypto", { enumerable: true, get: function () { return fiatToCrypto_js_1.convertFiatToCrypto; } });
|
27
|
+
var cryptoToFiat_js_1 = require("../pay/convert/cryptoToFiat.js");
|
28
|
+
Object.defineProperty(exports, "convertCryptoToFiat", { enumerable: true, get: function () { return cryptoToFiat_js_1.convertCryptoToFiat; } });
|
25
29
|
//# sourceMappingURL=pay.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"pay.js","sourceRoot":"","sources":["../../../src/exports/pay.ts"],"names":[],"mappings":";;;AAAA,gEAI0C;AAHxC,oHAAA,qBAAqB,OAAA;AAKvB,sEAI6C;AAH3C,0HAAA,wBAAwB,OAAA;AAU1B,kEAI2C;AAHzC,sHAAA,sBAAsB,OAAA;AAKxB,oEAI4C;AAH1C,wHAAA,uBAAuB,OAAA;AAKzB,wDAAwD;AAExD,8DAIwC;AAHtC,kHAAA,mBAAmB,OAAA;AAKrB,gEAIyC;AAHvC,oHAAA,oBAAoB,OAAA;AAKtB,kEAI0C;AAHxC,sHAAA,qBAAqB,OAAA;AAKvB,kFAGkD;AAFhD,2HAAA,kBAAkB,OAAA;AAIpB,4DAIiC;AAH/B,iHAAA,aAAa,OAAA;AAKf,8FAA0F;AAAjF,uIAAA,wBAAwB,OAAA"}
|
1
|
+
{"version":3,"file":"pay.js","sourceRoot":"","sources":["../../../src/exports/pay.ts"],"names":[],"mappings":";;;AAAA,gEAI0C;AAHxC,oHAAA,qBAAqB,OAAA;AAKvB,sEAI6C;AAH3C,0HAAA,wBAAwB,OAAA;AAU1B,kEAI2C;AAHzC,sHAAA,sBAAsB,OAAA;AAKxB,oEAI4C;AAH1C,wHAAA,uBAAuB,OAAA;AAKzB,wDAAwD;AAExD,8DAIwC;AAHtC,kHAAA,mBAAmB,OAAA;AAKrB,gEAIyC;AAHvC,oHAAA,oBAAoB,OAAA;AAKtB,kEAI0C;AAHxC,sHAAA,qBAAqB,OAAA;AAKvB,kFAGkD;AAFhD,2HAAA,kBAAkB,OAAA;AAIpB,4DAIiC;AAH/B,iHAAA,aAAa,OAAA;AAKf,8FAA0F;AAAjF,uIAAA,wBAAwB,OAAA;AASjC,kEAGwC;AAFtC,sHAAA,mBAAmB,OAAA;AAIrB,kEAGwC;AAFtC,sHAAA,mBAAmB,OAAA"}
|
@@ -0,0 +1,73 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.convertCryptoToFiat = convertCryptoToFiat;
|
4
|
+
const addresses_js_1 = require("../../constants/addresses.js");
|
5
|
+
const get_bytecode_js_1 = require("../../contract/actions/get-bytecode.js");
|
6
|
+
const contract_js_1 = require("../../contract/contract.js");
|
7
|
+
const address_js_1 = require("../../utils/address.js");
|
8
|
+
const fetch_js_1 = require("../../utils/fetch.js");
|
9
|
+
const definitions_js_1 = require("../utils/definitions.js");
|
10
|
+
/**
|
11
|
+
* Get a price of a token (using tokenAddress + chainId) in fiat.
|
12
|
+
* Only USD is supported at the moment.
|
13
|
+
* @example
|
14
|
+
* ### Basic usage
|
15
|
+
* For native token (non-ERC20), you should use NATIVE_TOKEN_ADDRESS as the value for `tokenAddress`
|
16
|
+
* ```ts
|
17
|
+
* import { convertCryptoToFiat } from "thirdweb/pay";
|
18
|
+
*
|
19
|
+
* // Get Ethereum price
|
20
|
+
* const result = convertCryptoToFiat({
|
21
|
+
* fromTokenAddress: NATIVE_TOKEN_ADDRESS,
|
22
|
+
* to: "USD",
|
23
|
+
* chain: ethereum,
|
24
|
+
* fromAmount: 1,
|
25
|
+
* });
|
26
|
+
*
|
27
|
+
* // Result: `{ result: 3404.11 }`
|
28
|
+
* ```
|
29
|
+
* @buyCrypto
|
30
|
+
* @returns a number representing the price (in selected fiat) of "x" token, with "x" being the `fromAmount`.
|
31
|
+
*/
|
32
|
+
async function convertCryptoToFiat(options) {
|
33
|
+
const { client, fromTokenAddress, to, chain, fromAmount } = options;
|
34
|
+
if (Number(fromAmount) === 0) {
|
35
|
+
return { result: 0 };
|
36
|
+
}
|
37
|
+
// Testnets just don't work with our current provider(s)
|
38
|
+
if (chain.testnet === true) {
|
39
|
+
throw new Error(`Cannot fetch price for a testnet (chainId: ${chain.id})`);
|
40
|
+
}
|
41
|
+
// Some provider that we are using will return `0` for unsupported token
|
42
|
+
// so we should do some basic input validations before sending the request
|
43
|
+
// Make sure it's a valid EVM address
|
44
|
+
if (!(0, address_js_1.isAddress)(fromTokenAddress)) {
|
45
|
+
throw new Error("Invalid fromTokenAddress. Expected a valid EVM contract address");
|
46
|
+
}
|
47
|
+
// Make sure it's either a valid contract or a native token address
|
48
|
+
if (fromTokenAddress.toLowerCase() !== addresses_js_1.NATIVE_TOKEN_ADDRESS.toLowerCase()) {
|
49
|
+
const bytecode = await (0, get_bytecode_js_1.getBytecode)((0, contract_js_1.getContract)({
|
50
|
+
address: fromTokenAddress,
|
51
|
+
chain,
|
52
|
+
client,
|
53
|
+
})).catch(() => undefined);
|
54
|
+
if (!bytecode || bytecode === "0x") {
|
55
|
+
throw new Error(`Error: ${fromTokenAddress} on chainId: ${chain.id} is not a valid contract address.`);
|
56
|
+
}
|
57
|
+
}
|
58
|
+
const params = {
|
59
|
+
fromTokenAddress,
|
60
|
+
to,
|
61
|
+
chainId: String(chain.id),
|
62
|
+
fromAmount: String(fromAmount),
|
63
|
+
};
|
64
|
+
const queryString = new URLSearchParams(params).toString();
|
65
|
+
const url = `${(0, definitions_js_1.getPayConvertCryptoToFiatEndpoint)()}?${queryString}`;
|
66
|
+
const response = await (0, fetch_js_1.getClientFetch)(client)(url);
|
67
|
+
if (!response.ok) {
|
68
|
+
throw new Error(`Failed to fetch ${to} value for token (${fromTokenAddress}) on chainId: ${chain.id}`);
|
69
|
+
}
|
70
|
+
const data = await response.json();
|
71
|
+
return data;
|
72
|
+
}
|
73
|
+
//# sourceMappingURL=cryptoToFiat.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"cryptoToFiat.js","sourceRoot":"","sources":["../../../../src/pay/convert/cryptoToFiat.ts"],"names":[],"mappings":";;AA0DA,kDAoDC;AA3GD,+DAAoE;AACpE,4EAAqE;AACrE,4DAAyD;AACzD,uDAAmD;AACnD,mDAAsD;AACtD,4DAA4E;AA4B5E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACI,KAAK,UAAU,mBAAmB,CACvC,OAAkC;IAElC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IACpE,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACvB,CAAC;IACD,wDAAwD;IACxD,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,8CAA8C,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7E,CAAC;IACD,wEAAwE;IACxE,0EAA0E;IAE1E,qCAAqC;IACrC,IAAI,CAAC,IAAA,sBAAS,EAAC,gBAAgB,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,iEAAiE,CAClE,CAAC;IACJ,CAAC;IACD,mEAAmE;IACnE,IAAI,gBAAgB,CAAC,WAAW,EAAE,KAAK,mCAAoB,CAAC,WAAW,EAAE,EAAE,CAAC;QAC1E,MAAM,QAAQ,GAAG,MAAM,IAAA,6BAAW,EAChC,IAAA,yBAAW,EAAC;YACV,OAAO,EAAE,gBAAgB;YACzB,KAAK;YACL,MAAM;SACP,CAAC,CACH,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACzB,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACb,UAAU,gBAAgB,gBAAgB,KAAK,CAAC,EAAE,mCAAmC,CACtF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG;QACb,gBAAgB;QAChB,EAAE;QACF,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;KAC/B,CAAC;IACF,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC3D,MAAM,GAAG,GAAG,GAAG,IAAA,kDAAiC,GAAE,IAAI,WAAW,EAAE,CAAC;IACpE,MAAM,QAAQ,GAAG,MAAM,IAAA,yBAAc,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;IACnD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,mBAAmB,EAAE,qBAAqB,gBAAgB,iBAAiB,KAAK,CAAC,EAAE,EAAE,CACtF,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAuB,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACvD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
@@ -0,0 +1,73 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.convertFiatToCrypto = convertFiatToCrypto;
|
4
|
+
const addresses_js_1 = require("../../constants/addresses.js");
|
5
|
+
const get_bytecode_js_1 = require("../../contract/actions/get-bytecode.js");
|
6
|
+
const contract_js_1 = require("../../contract/contract.js");
|
7
|
+
const address_js_1 = require("../../utils/address.js");
|
8
|
+
const fetch_js_1 = require("../../utils/fetch.js");
|
9
|
+
const definitions_js_1 = require("../utils/definitions.js");
|
10
|
+
/**
|
11
|
+
* Convert a fiat value to a token.
|
12
|
+
* Currently only USD is supported.
|
13
|
+
* @example
|
14
|
+
* ### Basic usage
|
15
|
+
* ```ts
|
16
|
+
* import { convertFiatToCrypto } from "thirdweb/pay";
|
17
|
+
*
|
18
|
+
* // Convert 2 cents to ETH
|
19
|
+
* const result = await convertFiatToCrypto({
|
20
|
+
* from: "USD",
|
21
|
+
* // the token address. For native token, use NATIVE_TOKEN_ADDRESS
|
22
|
+
* to: "0x...",
|
23
|
+
* // the chain (of the chain where the token belong to)
|
24
|
+
* chain: ethereum,
|
25
|
+
* // 2 cents
|
26
|
+
* fromAmount: 0.02,
|
27
|
+
* });
|
28
|
+
* ```
|
29
|
+
* Result: `{ result: 0.0000057 }`
|
30
|
+
* @buyCrypto
|
31
|
+
*/
|
32
|
+
async function convertFiatToCrypto(options) {
|
33
|
+
const { client, from, to, chain, fromAmount } = options;
|
34
|
+
if (Number(fromAmount) === 0) {
|
35
|
+
return { result: 0 };
|
36
|
+
}
|
37
|
+
// Testnets just don't work with our current provider(s)
|
38
|
+
if (chain.testnet === true) {
|
39
|
+
throw new Error(`Cannot fetch price for a testnet (chainId: ${chain.id})`);
|
40
|
+
}
|
41
|
+
// Some provider that we are using will return `0` for unsupported token
|
42
|
+
// so we should do some basic input validations before sending the request
|
43
|
+
// Make sure it's a valid EVM address
|
44
|
+
if (!(0, address_js_1.isAddress)(to)) {
|
45
|
+
throw new Error("Invalid `to`. Expected a valid EVM contract address");
|
46
|
+
}
|
47
|
+
// Make sure it's either a valid contract or a native token
|
48
|
+
if (to.toLowerCase() !== addresses_js_1.NATIVE_TOKEN_ADDRESS.toLowerCase()) {
|
49
|
+
const bytecode = await (0, get_bytecode_js_1.getBytecode)((0, contract_js_1.getContract)({
|
50
|
+
address: to,
|
51
|
+
chain,
|
52
|
+
client,
|
53
|
+
})).catch(() => undefined);
|
54
|
+
if (!bytecode || bytecode === "0x") {
|
55
|
+
throw new Error(`Error: ${to} on chainId: ${chain.id} is not a valid contract address.`);
|
56
|
+
}
|
57
|
+
}
|
58
|
+
const params = {
|
59
|
+
from,
|
60
|
+
to,
|
61
|
+
chainId: String(chain.id),
|
62
|
+
fromAmount: String(fromAmount),
|
63
|
+
};
|
64
|
+
const queryString = new URLSearchParams(params).toString();
|
65
|
+
const url = `${(0, definitions_js_1.getPayConvertFiatToCryptoEndpoint)()}?${queryString}`;
|
66
|
+
const response = await (0, fetch_js_1.getClientFetch)(client)(url);
|
67
|
+
if (!response.ok) {
|
68
|
+
throw new Error(`Failed to convert ${to} value to token (${to}) on chainId: ${chain.id}`);
|
69
|
+
}
|
70
|
+
const data = await response.json();
|
71
|
+
return data;
|
72
|
+
}
|
73
|
+
//# sourceMappingURL=fiatToCrypto.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"fiatToCrypto.js","sourceRoot":"","sources":["../../../../src/pay/convert/fiatToCrypto.ts"],"names":[],"mappings":";;AA2DA,kDAkDC;AA1GD,+DAAoE;AACpE,4EAAqE;AACrE,4DAAyD;AACzD,uDAAmD;AACnD,mDAAsD;AACtD,4DAA4E;AA6B5E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACI,KAAK,UAAU,mBAAmB,CACvC,OAAkC;IAElC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IACxD,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACvB,CAAC;IACD,wDAAwD;IACxD,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,8CAA8C,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7E,CAAC;IACD,wEAAwE;IACxE,0EAA0E;IAE1E,qCAAqC;IACrC,IAAI,CAAC,IAAA,sBAAS,EAAC,EAAE,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IACD,2DAA2D;IAC3D,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,mCAAoB,CAAC,WAAW,EAAE,EAAE,CAAC;QAC5D,MAAM,QAAQ,GAAG,MAAM,IAAA,6BAAW,EAChC,IAAA,yBAAW,EAAC;YACV,OAAO,EAAE,EAAE;YACX,KAAK;YACL,MAAM;SACP,CAAC,CACH,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACzB,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACb,UAAU,EAAE,gBAAgB,KAAK,CAAC,EAAE,mCAAmC,CACxE,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG;QACb,IAAI;QACJ,EAAE;QACF,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;KAC/B,CAAC;IACF,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC3D,MAAM,GAAG,GAAG,GAAG,IAAA,kDAAiC,GAAE,IAAI,WAAW,EAAE,CAAC;IACpE,MAAM,QAAQ,GAAG,MAAM,IAAA,yBAAc,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;IACnD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,qBAAqB,EAAE,oBAAoB,EAAE,iBAAiB,KAAK,CAAC,EAAE,EAAE,CACzE,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAuB,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACvD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.getPayBuyHistoryEndpoint = exports.getPaySupportedSources = exports.getPaySupportedDestinations = exports.getPayBuyWithCryptoHistoryEndpoint = exports.getPayBuyWithFiatHistoryEndpoint = exports.getPayBuyWithFiatStatusEndpoint = exports.getPayBuyWithFiatQuoteEndpoint = exports.getPayBuyWithCryptoTransferEndpoint = exports.getPayBuyWithCryptoQuoteEndpoint = exports.getPayBuyWithCryptoStatusUrl = void 0;
|
3
|
+
exports.getPayConvertCryptoToFiatEndpoint = exports.getPayConvertFiatToCryptoEndpoint = exports.getPayBuyHistoryEndpoint = exports.getPaySupportedSources = exports.getPaySupportedDestinations = exports.getPayBuyWithCryptoHistoryEndpoint = exports.getPayBuyWithFiatHistoryEndpoint = exports.getPayBuyWithFiatStatusEndpoint = exports.getPayBuyWithFiatQuoteEndpoint = exports.getPayBuyWithCryptoTransferEndpoint = exports.getPayBuyWithCryptoQuoteEndpoint = exports.getPayBuyWithCryptoStatusUrl = void 0;
|
4
4
|
const domains_js_1 = require("../../utils/domains.js");
|
5
5
|
const getPayBaseUrl = () => {
|
6
6
|
const payDomain = (0, domains_js_1.getThirdwebDomains)().pay;
|
@@ -69,4 +69,8 @@ exports.getPaySupportedSources = getPaySupportedSources;
|
|
69
69
|
*/
|
70
70
|
const getPayBuyHistoryEndpoint = () => `${getPayBaseUrl()}/wallet/history/v1`;
|
71
71
|
exports.getPayBuyHistoryEndpoint = getPayBuyHistoryEndpoint;
|
72
|
+
const getPayConvertFiatToCryptoEndpoint = () => `${getPayBaseUrl()}/convert/fiat-to-crypto/v1`;
|
73
|
+
exports.getPayConvertFiatToCryptoEndpoint = getPayConvertFiatToCryptoEndpoint;
|
74
|
+
const getPayConvertCryptoToFiatEndpoint = () => `${getPayBaseUrl()}/convert/crypto-to-fiat/v1`;
|
75
|
+
exports.getPayConvertCryptoToFiatEndpoint = getPayConvertCryptoToFiatEndpoint;
|
72
76
|
//# sourceMappingURL=definitions.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../../src/pay/utils/definitions.ts"],"names":[],"mappings":";;;AAAA,uDAA4D;AAE5D,MAAM,aAAa,GAAG,GAAG,EAAE;IACzB,MAAM,SAAS,GAAW,IAAA,+BAAkB,GAAE,CAAC,GAAG,CAAC;IACnD,OAAO,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC;QACtC,CAAC,CAAC,UAAU,SAAS,EAAE;QACvB,CAAC,CAAC,WAAW,SAAS,EAAE,CAAC;AAC7B,CAAC,CAAC;AAEF;;;GAGG;AACI,MAAM,4BAA4B,GAAG,GAAG,EAAE,CAC/C,GAAG,aAAa,EAAE,4BAA4B,CAAC;AADpC,QAAA,4BAA4B,gCACQ;AACjD;;;GAGG;AACI,MAAM,gCAAgC,GAAG,GAAG,EAAE,CACnD,GAAG,aAAa,EAAE,2BAA2B,CAAC;AADnC,QAAA,gCAAgC,oCACG;AAEhD;;;GAGG;AACI,MAAM,mCAAmC,GAAG,GAAG,EAAE,CACtD,GAAG,aAAa,EAAE,8BAA8B,CAAC;AADtC,QAAA,mCAAmC,uCACG;AAEnD;;;GAGG;AACI,MAAM,8BAA8B,GAAG,GAAG,EAAE,CACjD,GAAG,aAAa,EAAE,yBAAyB,CAAC;AADjC,QAAA,8BAA8B,kCACG;AAE9C;;;GAGG;AACI,MAAM,+BAA+B,GAAG,GAAG,EAAE,CAClD,GAAG,aAAa,EAAE,0BAA0B,CAAC;AADlC,QAAA,+BAA+B,mCACG;AAE/C;;;GAGG;AACI,MAAM,gCAAgC,GAAG,GAAG,EAAE,CACnD,GAAG,aAAa,EAAE,2BAA2B,CAAC;AADnC,QAAA,gCAAgC,oCACG;AAEhD;;;GAGG;AACI,MAAM,kCAAkC,GAAG,GAAG,EAAE,CACrD,GAAG,aAAa,EAAE,6BAA6B,CAAC;AADrC,QAAA,kCAAkC,sCACG;AAElD;;;GAGG;AACI,MAAM,2BAA2B,GAAG,GAAG,EAAE,CAC9C,GAAG,aAAa,EAAE,wBAAwB,CAAC;AADhC,QAAA,2BAA2B,+BACK;AAE7C;;;GAGG;AACI,MAAM,sBAAsB,GAAG,GAAG,EAAE,CACzC,GAAG,aAAa,EAAE,mCAAmC,CAAC;AAD3C,QAAA,sBAAsB,0BACqB;AAExD;;;;GAIG;AACI,MAAM,wBAAwB,GAAG,GAAG,EAAE,CAC3C,GAAG,aAAa,EAAE,oBAAoB,CAAC;AAD5B,QAAA,wBAAwB,4BACI"}
|
1
|
+
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../../src/pay/utils/definitions.ts"],"names":[],"mappings":";;;AAAA,uDAA4D;AAE5D,MAAM,aAAa,GAAG,GAAG,EAAE;IACzB,MAAM,SAAS,GAAW,IAAA,+BAAkB,GAAE,CAAC,GAAG,CAAC;IACnD,OAAO,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC;QACtC,CAAC,CAAC,UAAU,SAAS,EAAE;QACvB,CAAC,CAAC,WAAW,SAAS,EAAE,CAAC;AAC7B,CAAC,CAAC;AAEF;;;GAGG;AACI,MAAM,4BAA4B,GAAG,GAAG,EAAE,CAC/C,GAAG,aAAa,EAAE,4BAA4B,CAAC;AADpC,QAAA,4BAA4B,gCACQ;AACjD;;;GAGG;AACI,MAAM,gCAAgC,GAAG,GAAG,EAAE,CACnD,GAAG,aAAa,EAAE,2BAA2B,CAAC;AADnC,QAAA,gCAAgC,oCACG;AAEhD;;;GAGG;AACI,MAAM,mCAAmC,GAAG,GAAG,EAAE,CACtD,GAAG,aAAa,EAAE,8BAA8B,CAAC;AADtC,QAAA,mCAAmC,uCACG;AAEnD;;;GAGG;AACI,MAAM,8BAA8B,GAAG,GAAG,EAAE,CACjD,GAAG,aAAa,EAAE,yBAAyB,CAAC;AADjC,QAAA,8BAA8B,kCACG;AAE9C;;;GAGG;AACI,MAAM,+BAA+B,GAAG,GAAG,EAAE,CAClD,GAAG,aAAa,EAAE,0BAA0B,CAAC;AADlC,QAAA,+BAA+B,mCACG;AAE/C;;;GAGG;AACI,MAAM,gCAAgC,GAAG,GAAG,EAAE,CACnD,GAAG,aAAa,EAAE,2BAA2B,CAAC;AADnC,QAAA,gCAAgC,oCACG;AAEhD;;;GAGG;AACI,MAAM,kCAAkC,GAAG,GAAG,EAAE,CACrD,GAAG,aAAa,EAAE,6BAA6B,CAAC;AADrC,QAAA,kCAAkC,sCACG;AAElD;;;GAGG;AACI,MAAM,2BAA2B,GAAG,GAAG,EAAE,CAC9C,GAAG,aAAa,EAAE,wBAAwB,CAAC;AADhC,QAAA,2BAA2B,+BACK;AAE7C;;;GAGG;AACI,MAAM,sBAAsB,GAAG,GAAG,EAAE,CACzC,GAAG,aAAa,EAAE,mCAAmC,CAAC;AAD3C,QAAA,sBAAsB,0BACqB;AAExD;;;;GAIG;AACI,MAAM,wBAAwB,GAAG,GAAG,EAAE,CAC3C,GAAG,aAAa,EAAE,oBAAoB,CAAC;AAD5B,QAAA,wBAAwB,4BACI;AAElC,MAAM,iCAAiC,GAAG,GAAG,EAAE,CACpD,GAAG,aAAa,EAAE,4BAA4B,CAAC;AADpC,QAAA,iCAAiC,qCACG;AAE1C,MAAM,iCAAiC,GAAG,GAAG,EAAE,CACpD,GAAG,aAAa,EAAE,4BAA4B,CAAC;AADpC,QAAA,iCAAiC,qCACG"}
|
@@ -10,9 +10,14 @@ const useSetActiveWalletConnectionStatus_js_1 = require("./useSetActiveWalletCon
|
|
10
10
|
* @returns A function that lets you connect a wallet.
|
11
11
|
* @example
|
12
12
|
* ```jsx
|
13
|
+
* import { createThirdwebClient } from "thirdweb";
|
13
14
|
* import { useConnect } from "thirdweb/react";
|
14
15
|
* import { createWallet } from "thirdweb/wallets";
|
15
16
|
*
|
17
|
+
* const client = createThirdwebClient({
|
18
|
+
* clientId: "YOUR_CLIENT_ID",
|
19
|
+
* });
|
20
|
+
*
|
16
21
|
* function Example() {
|
17
22
|
* const { connect, isConnecting, error } = useConnect();
|
18
23
|
* return (
|
@@ -22,7 +27,9 @@ const useSetActiveWalletConnectionStatus_js_1 = require("./useSetActiveWalletCon
|
|
22
27
|
* // instantiate wallet
|
23
28
|
* const wallet = createWallet("io.metamask");
|
24
29
|
* // connect wallet
|
25
|
-
* await wallet.connect(
|
30
|
+
* await wallet.connect({
|
31
|
+
* client,
|
32
|
+
* });
|
26
33
|
* // return the wallet
|
27
34
|
* return wallet;
|
28
35
|
* })
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useConnect.js","sourceRoot":"","sources":["../../../../../../src/react/core/hooks/wallets/useConnect.ts"],"names":[],"mappings":";AAAA,YAAY,CAAC;;
|
1
|
+
{"version":3,"file":"useConnect.js","sourceRoot":"","sources":["../../../../../../src/react/core/hooks/wallets/useConnect.ts"],"names":[],"mappings":";AAAA,YAAY,CAAC;;AA6Cb,gCAqCC;AAhFD,iCAA8C;AAG9C,iFAAgF;AAChF,mGAA6F;AAE7F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,SAAgB,UAAU,CAAC,OAA+B;IACxD,MAAM,OAAO,GAAG,IAAA,+CAAuB,EAAC,YAAY,CAAC,CAAC;IACtD,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC5B,MAAM,mBAAmB,GAAG,IAAA,0EAAkC,GAAE,CAAC;IACjE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IACxD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAe,IAAI,CAAC,CAAC;IAEvD,MAAM,gBAAgB,GAAG,IAAA,mBAAW,EAClC,KAAK,EAAE,UAA4C,EAAE,EAAE;QACrD,oBAAoB;QACpB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAClC,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACnD,mBAAmB,CAAC,WAAW,CAAC,CAAC;YACjC,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,UAAU,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAC1C,mBAAmB,CAAC,WAAW,CAAC,CAAC;YACjC,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjB,QAAQ,CAAC,CAAU,CAAC,CAAC;YACrB,mBAAmB,CAAC,cAAc,CAAC,CAAC;QACtC,CAAC;gBAAS,CAAC;YACT,eAAe,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,EACD,CAAC,OAAO,EAAE,OAAO,EAAE,mBAAmB,CAAC,CACxC,CAAC;IAEF,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,KAAK,EAAW,CAAC;AACrE,CAAC"}
|
@@ -118,7 +118,9 @@ async function getZkGasFees(args) {
|
|
118
118
|
(0, resolve_promised_value_js_1.resolvePromisedValue)(transaction.eip712),
|
119
119
|
]);
|
120
120
|
let gasPerPubdata = eip712?.gasPerPubdata;
|
121
|
-
if (
|
121
|
+
if (gas === undefined ||
|
122
|
+
maxFeePerGas === undefined ||
|
123
|
+
maxPriorityFeePerGas === undefined) {
|
122
124
|
const rpc = (0, rpc_js_1.getRpcClient)(transaction);
|
123
125
|
const params = await formatTransaction({ transaction, from });
|
124
126
|
const result = (await rpc({
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"send-eip712-transaction.js","sourceRoot":"","sources":["../../../../../src/transaction/actions/zksync/send-eip712-transaction.ts"],"names":[],"mappings":";;AA0CA,sDAqBC;AAED,sDAmBC;AAOD,8DAwBC;AAgDD,
|
1
|
+
{"version":3,"file":"send-eip712-transaction.js","sourceRoot":"","sources":["../../../../../src/transaction/actions/zksync/send-eip712-transaction.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/version.js
CHANGED
@@ -24,7 +24,7 @@ async function getUserStatus({ authToken, client, ecosystem, }) {
|
|
24
24
|
return undefined;
|
25
25
|
}
|
26
26
|
const result = await response.json();
|
27
|
-
throw new Error(`Failed to get user status: ${result.
|
27
|
+
throw new Error(`Failed to get user status: ${result.message}`);
|
28
28
|
}
|
29
29
|
return (await response.json());
|
30
30
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"get-enclave-user-status.js","sourceRoot":"","sources":["../../../../../../src/wallets/in-app/core/actions/get-enclave-user-status.ts"],"names":[],"mappings":";;AAWA,sCAgCC;AA1CD,6DAAkE;AAClE,yDAA4D;AAI5D;;;;GAIG;AACI,KAAK,UAAU,aAAa,CAAC,EAClC,SAAS,EACT,MAAM,EACN,SAAS,GAKV;IACC,MAAM,WAAW,GAAG,IAAA,yBAAc,EAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAChC,GAAG,IAAA,+BAAkB,EAAC,aAAa,CAAC,0BAA0B,EAC9D;QACE,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,sBAAsB,EAAE,MAAM,CAAC,QAAQ;YACvC,aAAa,EAAE,gCAAgC,SAAS,EAAE;SAC3D;KACF,CACF,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,4EAA4E;YAC5E,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,CAAC,
|
1
|
+
{"version":3,"file":"get-enclave-user-status.js","sourceRoot":"","sources":["../../../../../../src/wallets/in-app/core/actions/get-enclave-user-status.ts"],"names":[],"mappings":";;AAWA,sCAgCC;AA1CD,6DAAkE;AAClE,yDAA4D;AAI5D;;;;GAIG;AACI,KAAK,UAAU,aAAa,CAAC,EAClC,SAAS,EACT,MAAM,EACN,SAAS,GAKV;IACC,MAAM,WAAW,GAAG,IAAA,yBAAc,EAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAChC,GAAG,IAAA,+BAAkB,EAAC,aAAa,CAAC,0BAA0B,EAC9D;QACE,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,sBAAsB,EAAE,MAAM,CAAC,QAAQ;YACvC,aAAa,EAAE,gCAAgC,SAAS,EAAE;SAC3D;KACF,CACF,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,4EAA4E;YAC5E,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAe,CAAC;AAC/C,CAAC"}
|
@@ -94,33 +94,40 @@ function createConnectionManager(storage) {
|
|
94
94
|
if (!account) {
|
95
95
|
throw new Error("Can not set a wallet without an account as active");
|
96
96
|
}
|
97
|
-
const
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
});
|
106
|
-
}
|
97
|
+
const activeWallet = await (async () => {
|
98
|
+
if (options?.accountAbstraction && !(0, isSmartWallet_js_1.hasSmartAccount)(wallet)) {
|
99
|
+
return await handleSmartWalletConnection(account, options.client, options.accountAbstraction);
|
100
|
+
}
|
101
|
+
else {
|
102
|
+
return wallet;
|
103
|
+
}
|
104
|
+
})();
|
107
105
|
// add personal wallet to connected wallets list
|
108
|
-
addConnectedWallet(
|
109
|
-
if (
|
110
|
-
await storage.setItem(LAST_ACTIVE_EOA_ID,
|
106
|
+
addConnectedWallet(wallet);
|
107
|
+
if (wallet.id !== "smart") {
|
108
|
+
await storage.setItem(LAST_ACTIVE_EOA_ID, wallet.id);
|
111
109
|
}
|
110
|
+
handleSetActiveWallet(activeWallet);
|
111
|
+
wallet.subscribe("accountChanged", async () => {
|
112
|
+
// We reimplement connect here to prevent memory leaks
|
113
|
+
const newWallet = await handleConnection(wallet, options);
|
114
|
+
options?.onConnect?.(newWallet);
|
115
|
+
});
|
112
116
|
return activeWallet;
|
113
117
|
};
|
118
|
+
const handleSmartWalletConnection = async (signer, client, options) => {
|
119
|
+
const wallet = (0, smart_wallet_js_1.smartWallet)(options);
|
120
|
+
await wallet.connect({
|
121
|
+
personalAccount: signer,
|
122
|
+
client: client,
|
123
|
+
chain: options.chain,
|
124
|
+
});
|
125
|
+
return wallet;
|
126
|
+
};
|
114
127
|
const connect = async (wallet, options) => {
|
115
|
-
// connectedWallet can be either wallet or smartWallet
|
128
|
+
// connectedWallet can be either wallet or smartWallet
|
116
129
|
const connectedWallet = await handleConnection(wallet, options);
|
117
130
|
options?.onConnect?.(connectedWallet);
|
118
|
-
handleSetActiveWallet(connectedWallet);
|
119
|
-
wallet.subscribe("accountChanged", async () => {
|
120
|
-
const newConnectedWallet = await handleConnection(wallet, options);
|
121
|
-
options?.onConnect?.(newConnectedWallet);
|
122
|
-
handleSetActiveWallet(newConnectedWallet);
|
123
|
-
});
|
124
131
|
return connectedWallet;
|
125
132
|
};
|
126
133
|
const handleSetActiveWallet = (activeWallet) => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/wallets/manager/index.ts"],"names":[],"mappings":";;AAuCA,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/wallets/manager/index.ts"],"names":[],"mappings":";;AAuCA,0DAiSC;AAMD,kEAYC;AAKD,0DAaC;AAKD,sDAaC;AA7XD,oDAAoD;AAEpD,8EAA0E;AAC1E,sEAAgE;AAChE,wDAAkD;AAClD,sDAAsD;AACtD,iDAAgD;AAEhD,2EAAsF;AAEtF,8DAAuD;AAOvD,MAAM,oBAAoB,GAAG,+BAA+B,CAAC;AAC7D,MAAM,kBAAkB,GAAG,2BAA2B,CAAC;AACvD,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;AASlD;;;;;;;;;GASG;AACH,SAAgB,uBAAuB,CAAC,OAAqB;IAC3D,SAAS;IAET,wBAAwB;IACxB,MAAM,iBAAiB,GAAG,IAAA,sBAAW,EAAqB,SAAS,CAAC,CAAC;IACrE,MAAM,kBAAkB,GAAG,IAAA,sBAAW,EAAsB,SAAS,CAAC,CAAC;IACvE,MAAM,sBAAsB,GAAG,IAAA,sBAAW,EAAoB,SAAS,CAAC,CAAC;IACzE,MAAM,iCAAiC,GACrC,IAAA,sBAAW,EAAmB,cAAc,CAAC,CAAC;IAEhD,MAAM,kBAAkB,GAAG,IAAA,sBAAW,EAAqB,IAAI,GAAG,EAAE,CAAC,CAAC;IAEtE,+DAA+D;IAC/D,IAAA,kBAAM,EAAC,GAAG,EAAE;QACV,IAAA,sBAAW,EAAC,CAAC,GAAG,kBAAkB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEzB,iEAAiE;IACjE,IAAA,kBAAM,EAAC,GAAG,EAAE;QACV,MAAM,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,EAAE,CAAC;QACnD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,MAAM,YAAY,GAAG,kBAAkB,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEpE,IAAI,CAAC,YAAY,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;YAC/C,OAAO;QACT,CAAC;QAED,4BAA4B;QAC5B,sBAAsB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAChD,CAAC,EAAE,CAAC,kBAAkB,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAEjD,2BAA2B;IAC3B,MAAM,4BAA4B,GAChC,IAAA,sBAAW,EAA+B,IAAI,GAAG,EAAE,CAAC,CAAC;IAEvD,MAAM,gBAAgB,GAAG,IAAA,sBAAW,EAAC,KAAK,CAAC,CAAC;IAE5C,MAAM,gBAAgB,GAAG,IAAA,gCAAa,EAAC,GAAG,EAAE;QAC1C,OAAO,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;IACtE,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC,CAAC;IAEnC,UAAU;IACV,MAAM,kBAAkB,GAAG,CAAC,MAAc,EAAE,EAAE;QAC5C,MAAM,QAAQ,GAAG,4BAA4B,CAAC,QAAQ,EAAE,CAAC;QACzD,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAChC,4BAA4B,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAClD,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,CAAC,MAAc,EAAE,EAAE;QAC/C,MAAM,QAAQ,GAAG,4BAA4B,CAAC,QAAQ,EAAE,CAAC;QACzD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3B,4BAA4B,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAClD,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,CAAC,MAAc,EAAE,EAAE;QAC5C,IAAA,iDAA8B,EAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QACnD,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAE9B,qCAAqC;QACrC,IAAI,iBAAiB,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAC;YAC5C,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;YACvC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACvC,sBAAsB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC3C,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACtC,iCAAiC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAE,EAAE;QAC1C,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC,CAAC;IAEF,kEAAkE;IAClE,MAAM,gBAAgB,GAAG,KAAK,EAC5B,MAAc,EACd,OAA+B,EAC/B,EAAE;QACF,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACpC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;YACrC,IAAI,OAAO,EAAE,kBAAkB,IAAI,CAAC,IAAA,kCAAe,EAAC,MAAM,CAAC,EAAE,CAAC;gBAC5D,OAAO,MAAM,2BAA2B,CACtC,OAAO,EACP,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,kBAAkB,CAC3B,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,gDAAgD;QAChD,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAE3B,IAAI,MAAM,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC;YAC1B,MAAM,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,qBAAqB,CAAC,YAAY,CAAC,CAAC;QAEpC,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;YAC5C,sDAAsD;YACtD,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC1D,OAAO,EAAE,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,OAAO,YAAY,CAAC;IACtB,CAAC,CAAC;IAEF,MAAM,2BAA2B,GAAG,KAAK,EACvC,MAAe,EACf,MAAsB,EACtB,OAA2B,EAC3B,EAAE;QACF,MAAM,MAAM,GAAG,IAAA,6BAAW,EAAC,OAAO,CAAC,CAAC;QAEpC,MAAM,MAAM,CAAC,OAAO,CAAC;YACnB,eAAe,EAAE,MAAM;YACvB,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,KAAK,EAAE,MAAc,EAAE,OAA+B,EAAE,EAAE;QACxE,sDAAsD;QACtD,MAAM,eAAe,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChE,OAAO,EAAE,SAAS,EAAE,CAAC,eAAe,CAAC,CAAC;QACtC,OAAO,eAAe,CAAC;IACzB,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,CAAC,YAAoB,EAAE,EAAE;QACrD,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,CAAC;QAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QAED,6DAA6D;QAC7D,kBAAkB,CAAC,YAAY,CAAC,CAAC;QAEjC,uBAAuB;QACvB,iBAAiB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACzC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACrC,sBAAsB,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzD,iCAAiC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAExD,kBAAkB;QAElB,MAAM,iBAAiB,GAAG,CAAC,UAAmB,EAAE,EAAE;YAChD,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,YAAY,CAAC,SAAS,CAC1C,gBAAgB,EAChB,iBAAiB,CAClB,CAAC;QAEF,MAAM,iBAAiB,GAAG,YAAY,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE,CACzE,sBAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC,CACvC,CAAC;QACF,MAAM,eAAe,GAAG,YAAY,CAAC,SAAS,CAAC,YAAY,EAAE,GAAG,EAAE;YAChE,gBAAgB,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,MAAM,gBAAgB,GAAG,GAAG,EAAE;YAC5B,kBAAkB,CAAC,YAAY,CAAC,CAAC;YACjC,aAAa,EAAE,CAAC;YAChB,iBAAiB,EAAE,CAAC;YACpB,eAAe,EAAE,CAAC;QACpB,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,KAAK,EAAE,YAAoB,EAAE,EAAE;QACrD,qBAAqB,CAAC,YAAY,CAAC,CAAC;QACpC,6CAA6C;QAC7C,IAAI,YAAY,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC;YAChC,MAAM,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC,CAAC;IAEF,eAAe;IAEf,IAAA,kBAAM,EACJ,GAAG,EAAE;QACH,MAAM,MAAM,GAAG,sBAAsB,CAAC,QAAQ,EAAE,CAAC;QACjD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAA,mBAAS,EAAC,MAAM,CAAC,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;QACxC,CAAC;IACH,CAAC,EACD,CAAC,sBAAsB,CAAC,EACxB,KAAK,CACN,CAAC;IAEF,4CAA4C;IAC5C,IAAA,kBAAM,EACJ,GAAG,EAAE;QACH,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAa,CAAC;QAE1E,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,IAAA,mBAAS,EAAC,GAAG,CAAC,CAAC,CAAC;IACxD,CAAC,EACD,CAAC,gBAAgB,CAAC,EAClB,KAAK,CACN,CAAC;IAEF,MAAM,uBAAuB,GAAG,KAAK,EAAE,KAAY,EAAE,EAAE;QACrD,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,EAAE,CAAC;QAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,MAAM,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC;YAC1B,8BAA8B;YAC9B,MAAM,gBAAgB,GAAG,MAAM,uBAAuB,CAAC,OAAO,CAAC,CAAC;YAChE,IAAI,gBAAgB,EAAE,CAAC;gBACrB,MAAM,cAAc,GAAG,gBAAgB;qBACpC,QAAQ,EAAE;qBACV,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,gBAAgB,CAAC,CAAC;gBAC1C,IAAI,cAAc,EAAE,CAAC;oBACnB,MAAM,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;YACD,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAChC,wEAAwE;YACxE,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QAED,+DAA+D;QAC/D,sBAAsB,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC;IAEF,SAAS,YAAY,CAAC,MAAe;QACnC,MAAM,aAAa,GAAG,kBAAkB,CAAC,QAAQ,EAAE,CAAC;QAEpD,2FAA2F;QAC3F,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACvC,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC7C,+BAA+B;YAC/B,OAAO,IAAA,mBAAS,EAAC,YAAY,CAAC,KAAK,IAAA,mBAAS,EAAC,CAAC,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;QACzC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACzB,CAAC;QACD,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,OAAO;QACL,iBAAiB;QACjB,kBAAkB;QAClB,gBAAgB;QAChB,kBAAkB;QAClB,gBAAgB;QAChB,eAAe;QACf,OAAO;QACP,gBAAgB;QAChB,sBAAsB;QACtB,uBAAuB;QACvB,iCAAiC;QACjC,gBAAgB;QAChB,qBAAqB;QACrB,YAAY;KACb,CAAC;AACJ,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,2BAA2B,CAC/C,OAAqB;IAErB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAC1D,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAa,CAAC;QACvC,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,uBAAuB,CAC3C,OAAqB;IAErB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACxD,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,KAAiB,CAAC;QAC3B,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,qBAAqB,CACzC,OAAqB;IAErB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACvD,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAU,CAAC;QACpC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
@@ -61,6 +61,10 @@ Code: ${code}`);
|
|
61
61
|
paymasterAndData: res.result,
|
62
62
|
};
|
63
63
|
}
|
64
|
+
// check for policy errors
|
65
|
+
if (res.result.policyId && res.result.reason) {
|
66
|
+
console.warn(`Paymaster policy rejected this transaction with reason: ${res.result.reason} (policyId: ${res.result.policyId})`);
|
67
|
+
}
|
64
68
|
return {
|
65
69
|
paymasterAndData: res.result.paymasterAndData,
|
66
70
|
verificationGasLimit: res.result.verificationGasLimit
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"paymaster.js","sourceRoot":"","sources":["../../../../../src/wallets/smart/lib/paymaster.ts"],"names":[],"mappings":";;AA+BA,
|
1
|
+
{"version":3,"file":"paymaster.js","sourceRoot":"","sources":["../../../../../src/wallets/smart/lib/paymaster.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/exports/pay.js
CHANGED
@@ -9,4 +9,6 @@ export { getBuyWithFiatHistory, } from "../pay/buyWithFiat/getHistory.js";
|
|
9
9
|
export { getPostOnRampQuote, } from "../pay/buyWithFiat/getPostOnRampQuote.js";
|
10
10
|
export { getBuyHistory, } from "../pay/getBuyHistory.js";
|
11
11
|
export { isSwapRequiredPostOnramp } from "../pay/buyWithFiat/isSwapRequiredPostOnramp.js";
|
12
|
+
export { convertFiatToCrypto, } from "../pay/convert/fiatToCrypto.js";
|
13
|
+
export { convertCryptoToFiat, } from "../pay/convert/cryptoToFiat.js";
|
12
14
|
//# sourceMappingURL=pay.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"pay.js","sourceRoot":"","sources":["../../../src/exports/pay.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,GAGtB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,wBAAwB,GAGzB,MAAM,qCAAqC,CAAC;AAO7C,OAAO,EACL,sBAAsB,GAGvB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,uBAAuB,GAGxB,MAAM,oCAAoC,CAAC;AAE5C,wDAAwD;AAExD,OAAO,EACL,mBAAmB,GAGpB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,oBAAoB,GAGrB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,qBAAqB,GAGtB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,kBAAkB,GAEnB,MAAM,0CAA0C,CAAC;AAElD,OAAO,EACL,aAAa,GAGd,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC"}
|
1
|
+
{"version":3,"file":"pay.js","sourceRoot":"","sources":["../../../src/exports/pay.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,GAGtB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,wBAAwB,GAGzB,MAAM,qCAAqC,CAAC;AAO7C,OAAO,EACL,sBAAsB,GAGvB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,uBAAuB,GAGxB,MAAM,oCAAoC,CAAC;AAE5C,wDAAwD;AAExD,OAAO,EACL,mBAAmB,GAGpB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,oBAAoB,GAGrB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,qBAAqB,GAGtB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,kBAAkB,GAEnB,MAAM,0CAA0C,CAAC;AAElD,OAAO,EACL,aAAa,GAGd,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;AAS1F,OAAO,EACL,mBAAmB,GAEpB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,mBAAmB,GAEpB,MAAM,gCAAgC,CAAC"}
|
@@ -0,0 +1,70 @@
|
|
1
|
+
import { NATIVE_TOKEN_ADDRESS } from "../../constants/addresses.js";
|
2
|
+
import { getBytecode } from "../../contract/actions/get-bytecode.js";
|
3
|
+
import { getContract } from "../../contract/contract.js";
|
4
|
+
import { isAddress } from "../../utils/address.js";
|
5
|
+
import { getClientFetch } from "../../utils/fetch.js";
|
6
|
+
import { getPayConvertCryptoToFiatEndpoint } from "../utils/definitions.js";
|
7
|
+
/**
|
8
|
+
* Get a price of a token (using tokenAddress + chainId) in fiat.
|
9
|
+
* Only USD is supported at the moment.
|
10
|
+
* @example
|
11
|
+
* ### Basic usage
|
12
|
+
* For native token (non-ERC20), you should use NATIVE_TOKEN_ADDRESS as the value for `tokenAddress`
|
13
|
+
* ```ts
|
14
|
+
* import { convertCryptoToFiat } from "thirdweb/pay";
|
15
|
+
*
|
16
|
+
* // Get Ethereum price
|
17
|
+
* const result = convertCryptoToFiat({
|
18
|
+
* fromTokenAddress: NATIVE_TOKEN_ADDRESS,
|
19
|
+
* to: "USD",
|
20
|
+
* chain: ethereum,
|
21
|
+
* fromAmount: 1,
|
22
|
+
* });
|
23
|
+
*
|
24
|
+
* // Result: `{ result: 3404.11 }`
|
25
|
+
* ```
|
26
|
+
* @buyCrypto
|
27
|
+
* @returns a number representing the price (in selected fiat) of "x" token, with "x" being the `fromAmount`.
|
28
|
+
*/
|
29
|
+
export async function convertCryptoToFiat(options) {
|
30
|
+
const { client, fromTokenAddress, to, chain, fromAmount } = options;
|
31
|
+
if (Number(fromAmount) === 0) {
|
32
|
+
return { result: 0 };
|
33
|
+
}
|
34
|
+
// Testnets just don't work with our current provider(s)
|
35
|
+
if (chain.testnet === true) {
|
36
|
+
throw new Error(`Cannot fetch price for a testnet (chainId: ${chain.id})`);
|
37
|
+
}
|
38
|
+
// Some provider that we are using will return `0` for unsupported token
|
39
|
+
// so we should do some basic input validations before sending the request
|
40
|
+
// Make sure it's a valid EVM address
|
41
|
+
if (!isAddress(fromTokenAddress)) {
|
42
|
+
throw new Error("Invalid fromTokenAddress. Expected a valid EVM contract address");
|
43
|
+
}
|
44
|
+
// Make sure it's either a valid contract or a native token address
|
45
|
+
if (fromTokenAddress.toLowerCase() !== NATIVE_TOKEN_ADDRESS.toLowerCase()) {
|
46
|
+
const bytecode = await getBytecode(getContract({
|
47
|
+
address: fromTokenAddress,
|
48
|
+
chain,
|
49
|
+
client,
|
50
|
+
})).catch(() => undefined);
|
51
|
+
if (!bytecode || bytecode === "0x") {
|
52
|
+
throw new Error(`Error: ${fromTokenAddress} on chainId: ${chain.id} is not a valid contract address.`);
|
53
|
+
}
|
54
|
+
}
|
55
|
+
const params = {
|
56
|
+
fromTokenAddress,
|
57
|
+
to,
|
58
|
+
chainId: String(chain.id),
|
59
|
+
fromAmount: String(fromAmount),
|
60
|
+
};
|
61
|
+
const queryString = new URLSearchParams(params).toString();
|
62
|
+
const url = `${getPayConvertCryptoToFiatEndpoint()}?${queryString}`;
|
63
|
+
const response = await getClientFetch(client)(url);
|
64
|
+
if (!response.ok) {
|
65
|
+
throw new Error(`Failed to fetch ${to} value for token (${fromTokenAddress}) on chainId: ${chain.id}`);
|
66
|
+
}
|
67
|
+
const data = await response.json();
|
68
|
+
return data;
|
69
|
+
}
|
70
|
+
//# sourceMappingURL=cryptoToFiat.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"cryptoToFiat.js","sourceRoot":"","sources":["../../../../src/pay/convert/cryptoToFiat.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iCAAiC,EAAE,MAAM,yBAAyB,CAAC;AA4B5E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAkC;IAElC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IACpE,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACvB,CAAC;IACD,wDAAwD;IACxD,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,8CAA8C,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7E,CAAC;IACD,wEAAwE;IACxE,0EAA0E;IAE1E,qCAAqC;IACrC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,iEAAiE,CAClE,CAAC;IACJ,CAAC;IACD,mEAAmE;IACnE,IAAI,gBAAgB,CAAC,WAAW,EAAE,KAAK,oBAAoB,CAAC,WAAW,EAAE,EAAE,CAAC;QAC1E,MAAM,QAAQ,GAAG,MAAM,WAAW,CAChC,WAAW,CAAC;YACV,OAAO,EAAE,gBAAgB;YACzB,KAAK;YACL,MAAM;SACP,CAAC,CACH,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACzB,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACb,UAAU,gBAAgB,gBAAgB,KAAK,CAAC,EAAE,mCAAmC,CACtF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG;QACb,gBAAgB;QAChB,EAAE;QACF,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;KAC/B,CAAC;IACF,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC3D,MAAM,GAAG,GAAG,GAAG,iCAAiC,EAAE,IAAI,WAAW,EAAE,CAAC;IACpE,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;IACnD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,mBAAmB,EAAE,qBAAqB,gBAAgB,iBAAiB,KAAK,CAAC,EAAE,EAAE,CACtF,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAuB,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACvD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
@@ -0,0 +1,70 @@
|
|
1
|
+
import { NATIVE_TOKEN_ADDRESS } from "../../constants/addresses.js";
|
2
|
+
import { getBytecode } from "../../contract/actions/get-bytecode.js";
|
3
|
+
import { getContract } from "../../contract/contract.js";
|
4
|
+
import { isAddress } from "../../utils/address.js";
|
5
|
+
import { getClientFetch } from "../../utils/fetch.js";
|
6
|
+
import { getPayConvertFiatToCryptoEndpoint } from "../utils/definitions.js";
|
7
|
+
/**
|
8
|
+
* Convert a fiat value to a token.
|
9
|
+
* Currently only USD is supported.
|
10
|
+
* @example
|
11
|
+
* ### Basic usage
|
12
|
+
* ```ts
|
13
|
+
* import { convertFiatToCrypto } from "thirdweb/pay";
|
14
|
+
*
|
15
|
+
* // Convert 2 cents to ETH
|
16
|
+
* const result = await convertFiatToCrypto({
|
17
|
+
* from: "USD",
|
18
|
+
* // the token address. For native token, use NATIVE_TOKEN_ADDRESS
|
19
|
+
* to: "0x...",
|
20
|
+
* // the chain (of the chain where the token belong to)
|
21
|
+
* chain: ethereum,
|
22
|
+
* // 2 cents
|
23
|
+
* fromAmount: 0.02,
|
24
|
+
* });
|
25
|
+
* ```
|
26
|
+
* Result: `{ result: 0.0000057 }`
|
27
|
+
* @buyCrypto
|
28
|
+
*/
|
29
|
+
export async function convertFiatToCrypto(options) {
|
30
|
+
const { client, from, to, chain, fromAmount } = options;
|
31
|
+
if (Number(fromAmount) === 0) {
|
32
|
+
return { result: 0 };
|
33
|
+
}
|
34
|
+
// Testnets just don't work with our current provider(s)
|
35
|
+
if (chain.testnet === true) {
|
36
|
+
throw new Error(`Cannot fetch price for a testnet (chainId: ${chain.id})`);
|
37
|
+
}
|
38
|
+
// Some provider that we are using will return `0` for unsupported token
|
39
|
+
// so we should do some basic input validations before sending the request
|
40
|
+
// Make sure it's a valid EVM address
|
41
|
+
if (!isAddress(to)) {
|
42
|
+
throw new Error("Invalid `to`. Expected a valid EVM contract address");
|
43
|
+
}
|
44
|
+
// Make sure it's either a valid contract or a native token
|
45
|
+
if (to.toLowerCase() !== NATIVE_TOKEN_ADDRESS.toLowerCase()) {
|
46
|
+
const bytecode = await getBytecode(getContract({
|
47
|
+
address: to,
|
48
|
+
chain,
|
49
|
+
client,
|
50
|
+
})).catch(() => undefined);
|
51
|
+
if (!bytecode || bytecode === "0x") {
|
52
|
+
throw new Error(`Error: ${to} on chainId: ${chain.id} is not a valid contract address.`);
|
53
|
+
}
|
54
|
+
}
|
55
|
+
const params = {
|
56
|
+
from,
|
57
|
+
to,
|
58
|
+
chainId: String(chain.id),
|
59
|
+
fromAmount: String(fromAmount),
|
60
|
+
};
|
61
|
+
const queryString = new URLSearchParams(params).toString();
|
62
|
+
const url = `${getPayConvertFiatToCryptoEndpoint()}?${queryString}`;
|
63
|
+
const response = await getClientFetch(client)(url);
|
64
|
+
if (!response.ok) {
|
65
|
+
throw new Error(`Failed to convert ${to} value to token (${to}) on chainId: ${chain.id}`);
|
66
|
+
}
|
67
|
+
const data = await response.json();
|
68
|
+
return data;
|
69
|
+
}
|
70
|
+
//# sourceMappingURL=fiatToCrypto.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"fiatToCrypto.js","sourceRoot":"","sources":["../../../../src/pay/convert/fiatToCrypto.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iCAAiC,EAAE,MAAM,yBAAyB,CAAC;AA6B5E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAkC;IAElC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IACxD,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACvB,CAAC;IACD,wDAAwD;IACxD,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,8CAA8C,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7E,CAAC;IACD,wEAAwE;IACxE,0EAA0E;IAE1E,qCAAqC;IACrC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IACD,2DAA2D;IAC3D,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,oBAAoB,CAAC,WAAW,EAAE,EAAE,CAAC;QAC5D,MAAM,QAAQ,GAAG,MAAM,WAAW,CAChC,WAAW,CAAC;YACV,OAAO,EAAE,EAAE;YACX,KAAK;YACL,MAAM;SACP,CAAC,CACH,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACzB,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACb,UAAU,EAAE,gBAAgB,KAAK,CAAC,EAAE,mCAAmC,CACxE,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG;QACb,IAAI;QACJ,EAAE;QACF,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;KAC/B,CAAC;IACF,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC3D,MAAM,GAAG,GAAG,GAAG,iCAAiC,EAAE,IAAI,WAAW,EAAE,CAAC;IACpE,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;IACnD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,qBAAqB,EAAE,oBAAoB,EAAE,iBAAiB,KAAK,CAAC,EAAE,EAAE,CACzE,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAuB,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACvD,OAAO,IAAI,CAAC;AACd,CAAC"}
|