viem 0.0.0-main.20240402T193906 → 0.0.0-main.20240402T203246
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/_cjs/errors/version.js +1 -1
- package/_cjs/experimental/actions/getCallsStatus.js +23 -0
- package/_cjs/experimental/actions/getCallsStatus.js.map +1 -0
- package/_cjs/experimental/actions/getCapabilities.js +14 -0
- package/_cjs/experimental/actions/getCapabilities.js.map +1 -0
- package/_cjs/experimental/actions/sendCalls.js +42 -0
- package/_cjs/experimental/actions/sendCalls.js.map +1 -0
- package/_cjs/experimental/decorators/eip5792.js +17 -0
- package/_cjs/experimental/decorators/eip5792.js.map +1 -0
- package/_cjs/experimental/index.js +12 -0
- package/_cjs/experimental/index.js.map +1 -0
- package/_cjs/utils/formatters/transactionReceipt.js +3 -3
- package/_cjs/utils/formatters/transactionReceipt.js.map +1 -1
- package/_esm/errors/version.js +1 -1
- package/_esm/experimental/actions/getCallsStatus.js +39 -0
- package/_esm/experimental/actions/getCallsStatus.js.map +1 -0
- package/_esm/experimental/actions/getCapabilities.js +30 -0
- package/_esm/experimental/actions/getCapabilities.js.map +1 -0
- package/_esm/experimental/actions/sendCalls.js +70 -0
- package/_esm/experimental/actions/sendCalls.js.map +1 -0
- package/_esm/experimental/decorators/eip5792.js +30 -0
- package/_esm/experimental/decorators/eip5792.js.map +1 -0
- package/_esm/experimental/index.js +5 -0
- package/_esm/experimental/index.js.map +1 -0
- package/_esm/utils/formatters/transactionReceipt.js +2 -2
- package/_esm/utils/formatters/transactionReceipt.js.map +1 -1
- package/_types/errors/version.d.ts +1 -1
- package/_types/experimental/actions/getCallsStatus.d.ts +35 -0
- package/_types/experimental/actions/getCallsStatus.d.ts.map +1 -0
- package/_types/experimental/actions/getCapabilities.d.ts +32 -0
- package/_types/experimental/actions/getCapabilities.d.ts.map +1 -0
- package/_types/experimental/actions/sendCalls.d.ts +56 -0
- package/_types/experimental/actions/sendCalls.d.ts.map +1 -0
- package/_types/experimental/decorators/eip5792.d.ts +106 -0
- package/_types/experimental/decorators/eip5792.d.ts.map +1 -0
- package/_types/experimental/index.d.ts +5 -0
- package/_types/experimental/index.d.ts.map +1 -0
- package/_types/types/eip1193.d.ts +69 -0
- package/_types/types/eip1193.d.ts.map +1 -1
- package/_types/utils/formatters/transactionReceipt.d.ts +4 -0
- package/_types/utils/formatters/transactionReceipt.d.ts.map +1 -1
- package/errors/version.ts +1 -1
- package/experimental/actions/getCallsStatus.ts +62 -0
- package/experimental/actions/getCapabilities.ts +56 -0
- package/experimental/actions/sendCalls.ts +126 -0
- package/experimental/decorators/eip5792.ts +139 -0
- package/experimental/index.ts +22 -0
- package/experimental/package.json +6 -0
- package/package.json +9 -1
- package/types/eip1193.ts +81 -0
- package/utils/formatters/transactionReceipt.ts +2 -2
package/_cjs/errors/version.js
CHANGED
@@ -0,0 +1,23 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.getCallsStatus = void 0;
|
4
|
+
const fromHex_js_1 = require("../../utils/encoding/fromHex.js");
|
5
|
+
const transactionReceipt_js_1 = require("../../utils/formatters/transactionReceipt.js");
|
6
|
+
async function getCallsStatus(client, parameters) {
|
7
|
+
const { id } = parameters;
|
8
|
+
const { receipts, status } = await client.request({
|
9
|
+
method: 'wallet_getCallsStatus',
|
10
|
+
params: id,
|
11
|
+
});
|
12
|
+
return {
|
13
|
+
status,
|
14
|
+
receipts: receipts?.map((receipt) => ({
|
15
|
+
...receipt,
|
16
|
+
blockNumber: (0, fromHex_js_1.hexToBigInt)(receipt.blockNumber),
|
17
|
+
gasUsed: (0, fromHex_js_1.hexToBigInt)(receipt.gasUsed),
|
18
|
+
status: transactionReceipt_js_1.receiptStatuses[receipt.status],
|
19
|
+
})) ?? [],
|
20
|
+
};
|
21
|
+
}
|
22
|
+
exports.getCallsStatus = getCallsStatus;
|
23
|
+
//# sourceMappingURL=getCallsStatus.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"getCallsStatus.js","sourceRoot":"","sources":["../../../experimental/actions/getCallsStatus.ts"],"names":[],"mappings":";;;AAQA,gEAA6D;AAC7D,wFAA8E;AA8BvE,KAAK,UAAU,cAAc,CAIlC,MAAyC,EACzC,UAAoC;IAEpC,MAAM,EAAE,EAAE,EAAE,GAAG,UAAU,CAAA;IACzB,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QAChD,MAAM,EAAE,uBAAuB;QAC/B,MAAM,EAAE,EAAE;KACX,CAAC,CAAA;IACF,OAAO;QACL,MAAM;QACN,QAAQ,EACN,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC1B,GAAG,OAAO;YACV,WAAW,EAAE,IAAA,wBAAW,EAAC,OAAO,CAAC,WAAW,CAAC;YAC7C,OAAO,EAAE,IAAA,wBAAW,EAAC,OAAO,CAAC,OAAO,CAAC;YACrC,MAAM,EAAE,uCAAe,CAAC,OAAO,CAAC,MAAuB,CAAC;SACzD,CAAC,CAAC,IAAI,EAAE;KACZ,CAAA;AACH,CAAC;AAtBD,wCAsBC"}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.getCapabilities = void 0;
|
4
|
+
async function getCapabilities(client) {
|
5
|
+
const capabilities_raw = await client.request({
|
6
|
+
method: 'wallet_getCapabilities',
|
7
|
+
});
|
8
|
+
const capabilities = {};
|
9
|
+
for (const [key, value] of Object.entries(capabilities_raw))
|
10
|
+
capabilities[Number(key)] = value;
|
11
|
+
return capabilities;
|
12
|
+
}
|
13
|
+
exports.getCapabilities = getCapabilities;
|
14
|
+
//# sourceMappingURL=getCapabilities.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"getCapabilities.js","sourceRoot":"","sources":["../../../experimental/actions/getCapabilities.ts"],"names":[],"mappings":";;;AAsCO,KAAK,UAAU,eAAe,CAInC,MAAyC;IAEzC,MAAM,gBAAgB,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QAC5C,MAAM,EAAE,wBAAwB;KACjC,CAAC,CAAA;IAEF,MAAM,YAAY,GAAG,EAGpB,CAAA;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC;QACzD,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAA;IACnC,OAAO,YAAY,CAAA;AACrB,CAAC;AAjBD,0CAiBC"}
|
@@ -0,0 +1,42 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.sendCalls = void 0;
|
4
|
+
const account_js_1 = require("../../errors/account.js");
|
5
|
+
const chain_js_1 = require("../../errors/chain.js");
|
6
|
+
const accounts_js_1 = require("../../utils/accounts.js");
|
7
|
+
const toHex_js_1 = require("../../utils/encoding/toHex.js");
|
8
|
+
const index_js_1 = require("../../utils/index.js");
|
9
|
+
async function sendCalls(client, parameters) {
|
10
|
+
const { account: account_ = client.account, calls, capabilities, chain = client.chain, version = '1.0', } = parameters;
|
11
|
+
if (!account_)
|
12
|
+
throw new account_js_1.AccountNotFoundError({
|
13
|
+
docsPath: '/eip5792/actions/sendCalls',
|
14
|
+
});
|
15
|
+
const account = (0, accounts_js_1.parseAccount)(account_);
|
16
|
+
if (!chain)
|
17
|
+
throw new chain_js_1.ChainNotFoundError();
|
18
|
+
try {
|
19
|
+
return await client.request({
|
20
|
+
method: 'wallet_sendCalls',
|
21
|
+
params: {
|
22
|
+
calls: calls.map((call) => ({
|
23
|
+
...call,
|
24
|
+
value: call.value ? (0, toHex_js_1.numberToHex)(call.value) : undefined,
|
25
|
+
})),
|
26
|
+
capabilities,
|
27
|
+
chainId: (0, toHex_js_1.numberToHex)(chain.id),
|
28
|
+
from: account.address,
|
29
|
+
version,
|
30
|
+
},
|
31
|
+
}, { retryCount: 0 });
|
32
|
+
}
|
33
|
+
catch (err) {
|
34
|
+
throw (0, index_js_1.getTransactionError)(err, {
|
35
|
+
...parameters,
|
36
|
+
account,
|
37
|
+
chain: parameters.chain,
|
38
|
+
});
|
39
|
+
}
|
40
|
+
}
|
41
|
+
exports.sendCalls = sendCalls;
|
42
|
+
//# sourceMappingURL=sendCalls.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"sendCalls.js","sourceRoot":"","sources":["../../../experimental/actions/sendCalls.ts"],"names":[],"mappings":";;;AAEA,wDAA8D;AAE9D,oDAA0D;AAU1D,yDAAsD;AAEtD,4DAA2D;AAC3D,mDAA0D;AA4DnD,KAAK,UAAU,SAAS,CAK7B,MAAyC,EACzC,UAA8D;IAE9D,MAAM,EACJ,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC,OAAO,EAClC,KAAK,EACL,YAAY,EACZ,KAAK,GAAG,MAAM,CAAC,KAAK,EACpB,OAAO,GAAG,KAAK,GAChB,GAAG,UAAU,CAAA;IAEd,IAAI,CAAC,QAAQ;QACX,MAAM,IAAI,iCAAoB,CAAC;YAC7B,QAAQ,EAAE,4BAA4B;SACvC,CAAC,CAAA;IACJ,MAAM,OAAO,GAAG,IAAA,0BAAY,EAAC,QAAQ,CAAC,CAAA;IAEtC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,6BAAkB,EAAE,CAAA;IAE1C,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,CAAC,OAAO,CACzB;YACE,MAAM,EAAE,kBAAkB;YAC1B,MAAM,EAAE;gBACN,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAC1B,GAAG,IAAI;oBACP,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAA,sBAAW,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;iBACxD,CAAC,CAAQ;gBACV,YAAY;gBACZ,OAAO,EAAE,IAAA,sBAAW,EAAC,KAAM,CAAC,EAAE,CAAC;gBAC/B,IAAI,EAAE,OAAO,CAAC,OAAO;gBACrB,OAAO;aACR;SACF,EACD,EAAE,UAAU,EAAE,CAAC,EAAE,CAClB,CAAA;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAA,8BAAmB,EAAC,GAAgB,EAAE;YAC1C,GAAG,UAAU;YACb,OAAO;YACP,KAAK,EAAE,UAAU,CAAC,KAAM;SACzB,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAhDD,8BAgDC"}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.walletActionsEip5792 = void 0;
|
4
|
+
const getCallsStatus_js_1 = require("../actions/getCallsStatus.js");
|
5
|
+
const getCapabilities_js_1 = require("../actions/getCapabilities.js");
|
6
|
+
const sendCalls_js_1 = require("../actions/sendCalls.js");
|
7
|
+
function walletActionsEip5792() {
|
8
|
+
return (client) => {
|
9
|
+
return {
|
10
|
+
getCallsStatus: (parameters) => (0, getCallsStatus_js_1.getCallsStatus)(client, parameters),
|
11
|
+
getCapabilities: () => (0, getCapabilities_js_1.getCapabilities)(client),
|
12
|
+
sendCalls: (parameters) => (0, sendCalls_js_1.sendCalls)(client, parameters),
|
13
|
+
};
|
14
|
+
};
|
15
|
+
}
|
16
|
+
exports.walletActionsEip5792 = walletActionsEip5792;
|
17
|
+
//# sourceMappingURL=eip5792.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"eip5792.js","sourceRoot":"","sources":["../../../experimental/decorators/eip5792.ts"],"names":[],"mappings":";;;AAIA,oEAIqC;AACrC,sEAGsC;AACtC,0DAIgC;AA2GhC,SAAgB,oBAAoB;IAClC,OAAO,CAKL,MAAyC,EACH,EAAE;QACxC,OAAO;YACL,cAAc,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,IAAA,kCAAc,EAAC,MAAM,EAAE,UAAU,CAAC;YAClE,eAAe,EAAE,GAAG,EAAE,CAAC,IAAA,oCAAe,EAAC,MAAM,CAAC;YAC9C,SAAS,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,IAAA,wBAAS,EAAC,MAAM,EAAE,UAAU,CAAC;SACzD,CAAA;IACH,CAAC,CAAA;AACH,CAAC;AAdD,oDAcC"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.walletActionsEip5792 = exports.getCallsStatus = exports.sendCalls = exports.getCapabilities = void 0;
|
4
|
+
var getCapabilities_js_1 = require("./actions/getCapabilities.js");
|
5
|
+
Object.defineProperty(exports, "getCapabilities", { enumerable: true, get: function () { return getCapabilities_js_1.getCapabilities; } });
|
6
|
+
var sendCalls_js_1 = require("./actions/sendCalls.js");
|
7
|
+
Object.defineProperty(exports, "sendCalls", { enumerable: true, get: function () { return sendCalls_js_1.sendCalls; } });
|
8
|
+
var getCallsStatus_js_1 = require("./actions/getCallsStatus.js");
|
9
|
+
Object.defineProperty(exports, "getCallsStatus", { enumerable: true, get: function () { return getCallsStatus_js_1.getCallsStatus; } });
|
10
|
+
var eip5792_js_1 = require("./decorators/eip5792.js");
|
11
|
+
Object.defineProperty(exports, "walletActionsEip5792", { enumerable: true, get: function () { return eip5792_js_1.walletActionsEip5792; } });
|
12
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../experimental/index.ts"],"names":[],"mappings":";;;AAAA,mEAIqC;AADnC,qHAAA,eAAe,OAAA;AAEjB,uDAK+B;AAD7B,yGAAA,SAAS,OAAA;AAEX,iEAKoC;AADlC,mHAAA,cAAc,OAAA;AAGhB,sDAGgC;AAD9B,kHAAA,oBAAoB,OAAA"}
|
@@ -1,11 +1,11 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.defineTransactionReceipt = exports.formatTransactionReceipt = void 0;
|
3
|
+
exports.defineTransactionReceipt = exports.formatTransactionReceipt = exports.receiptStatuses = void 0;
|
4
4
|
const fromHex_js_1 = require("../encoding/fromHex.js");
|
5
5
|
const formatter_js_1 = require("./formatter.js");
|
6
6
|
const log_js_1 = require("./log.js");
|
7
7
|
const transaction_js_1 = require("./transaction.js");
|
8
|
-
|
8
|
+
exports.receiptStatuses = {
|
9
9
|
'0x0': 'reverted',
|
10
10
|
'0x1': 'success',
|
11
11
|
};
|
@@ -35,7 +35,7 @@ function formatTransactionReceipt(transactionReceipt) {
|
|
35
35
|
? (0, fromHex_js_1.hexToNumber)(transactionReceipt.transactionIndex)
|
36
36
|
: null,
|
37
37
|
status: transactionReceipt.status
|
38
|
-
?
|
38
|
+
? exports.receiptStatuses[transactionReceipt.status]
|
39
39
|
: null,
|
40
40
|
type: transactionReceipt.type
|
41
41
|
? transaction_js_1.transactionType[transactionReceipt.type] || transactionReceipt.type
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"transactionReceipt.js","sourceRoot":"","sources":["../../../utils/formatters/transactionReceipt.ts"],"names":[],"mappings":";;;AAQA,uDAAoD;AAEpD,iDAA+E;AAC/E,qCAAoC;AACpC,qDAAkD;
|
1
|
+
{"version":3,"file":"transactionReceipt.js","sourceRoot":"","sources":["../../../utils/formatters/transactionReceipt.ts"],"names":[],"mappings":";;;AAQA,uDAAoD;AAEpD,iDAA+E;AAC/E,qCAAoC;AACpC,qDAAkD;AAUrC,QAAA,eAAe,GAAG;IAC7B,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,SAAS;CACR,CAAA;AAIV,SAAgB,wBAAwB,CACtC,kBAAuD;IAEvD,MAAM,OAAO,GAAG;QACd,GAAG,kBAAkB;QACrB,WAAW,EAAE,kBAAkB,CAAC,WAAW;YACzC,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,WAAW,CAAC;YACxC,CAAC,CAAC,IAAI;QACR,eAAe,EAAE,kBAAkB,CAAC,eAAe;YACjD,CAAC,CAAC,kBAAkB,CAAC,eAAe;YACpC,CAAC,CAAC,IAAI;QACR,iBAAiB,EAAE,kBAAkB,CAAC,iBAAiB;YACrD,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;YAC9C,CAAC,CAAC,IAAI;QACR,iBAAiB,EAAE,kBAAkB,CAAC,iBAAiB;YACrD,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;YAC9C,CAAC,CAAC,IAAI;QACR,OAAO,EAAE,kBAAkB,CAAC,OAAO;YACjC,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC;YACpC,CAAC,CAAC,IAAI;QACR,IAAI,EAAE,kBAAkB,CAAC,IAAI;YAC3B,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,kBAAS,EAAC,GAAG,CAAC,CAAC;YACtD,CAAC,CAAC,IAAI;QACR,EAAE,EAAE,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;QACxD,gBAAgB,EAAE,kBAAkB,CAAC,gBAAgB;YACnD,CAAC,CAAC,IAAA,wBAAW,EAAC,kBAAkB,CAAC,gBAAgB,CAAC;YAClD,CAAC,CAAC,IAAI;QACR,MAAM,EAAE,kBAAkB,CAAC,MAAM;YAC/B,CAAC,CAAC,uBAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC;YAC5C,CAAC,CAAC,IAAI;QACR,IAAI,EAAE,kBAAkB,CAAC,IAAI;YAC3B,CAAC,CAAC,gCAAe,CACb,kBAAkB,CAAC,IAAoC,CACxD,IAAI,kBAAkB,CAAC,IAAI;YAC9B,CAAC,CAAC,IAAI;KACa,CAAA;IAEvB,IAAI,kBAAkB,CAAC,YAAY;QACjC,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAA;IAChE,IAAI,kBAAkB,CAAC,WAAW;QAChC,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAA;IAE9D,OAAO,OAAO,CAAA;AAChB,CAAC;AA3CD,4DA2CC;AAMY,QAAA,wBAAwB,GAAiB,IAAA,8BAAe,EACnE,oBAAoB,EACpB,wBAAwB,CACzB,CAAA"}
|
package/_esm/errors/version.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
export const version = '0.0.0-main.
|
1
|
+
export const version = '0.0.0-main.20240402T203246';
|
2
2
|
//# sourceMappingURL=version.js.map
|
@@ -0,0 +1,39 @@
|
|
1
|
+
import { hexToBigInt } from '../../utils/encoding/fromHex.js';
|
2
|
+
import { receiptStatuses } from '../../utils/formatters/transactionReceipt.js';
|
3
|
+
/**
|
4
|
+
* Returns the status of a call batch that was sent via `sendCalls`.
|
5
|
+
*
|
6
|
+
* - Docs: https://viem.sh/eip5792/actions/getCallsStatus
|
7
|
+
* - JSON-RPC Methods: [`wallet_getCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792)
|
8
|
+
*
|
9
|
+
* @param client - Client to use
|
10
|
+
* @returns Status of the calls. {@link GetCallsStatusReturnType}
|
11
|
+
*
|
12
|
+
* @example
|
13
|
+
* import { createWalletClient, custom } from 'viem'
|
14
|
+
* import { mainnet } from 'viem/chains'
|
15
|
+
* import { getCallsStatus } from 'viem/wallet'
|
16
|
+
*
|
17
|
+
* const client = createWalletClient({
|
18
|
+
* chain: mainnet,
|
19
|
+
* transport: custom(window.ethereum),
|
20
|
+
* })
|
21
|
+
* const { receipts, status } = await getCallsStatus(client, { id: '0xdeadbeef' })
|
22
|
+
*/
|
23
|
+
export async function getCallsStatus(client, parameters) {
|
24
|
+
const { id } = parameters;
|
25
|
+
const { receipts, status } = await client.request({
|
26
|
+
method: 'wallet_getCallsStatus',
|
27
|
+
params: id,
|
28
|
+
});
|
29
|
+
return {
|
30
|
+
status,
|
31
|
+
receipts: receipts?.map((receipt) => ({
|
32
|
+
...receipt,
|
33
|
+
blockNumber: hexToBigInt(receipt.blockNumber),
|
34
|
+
gasUsed: hexToBigInt(receipt.gasUsed),
|
35
|
+
status: receiptStatuses[receipt.status],
|
36
|
+
})) ?? [],
|
37
|
+
};
|
38
|
+
}
|
39
|
+
//# sourceMappingURL=getCallsStatus.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"getCallsStatus.js","sourceRoot":"","sources":["../../../experimental/actions/getCallsStatus.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAA;AAU9E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAIlC,MAAyC,EACzC,UAAoC;IAEpC,MAAM,EAAE,EAAE,EAAE,GAAG,UAAU,CAAA;IACzB,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QAChD,MAAM,EAAE,uBAAuB;QAC/B,MAAM,EAAE,EAAE;KACX,CAAC,CAAA;IACF,OAAO;QACL,MAAM;QACN,QAAQ,EACN,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC1B,GAAG,OAAO;YACV,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC;YAC7C,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC;YACrC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,MAAuB,CAAC;SACzD,CAAC,CAAC,IAAI,EAAE;KACZ,CAAA;AACH,CAAC"}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
/**
|
2
|
+
* Extract capabilities that a connected wallet supports (e.g. paymasters, session keys, etc).
|
3
|
+
*
|
4
|
+
* - Docs: https://viem.sh/eip5792/actions/getCapabilities
|
5
|
+
* - JSON-RPC Methods: [`wallet_getCapabilities`](https://eips.ethereum.org/EIPS/eip-5792)
|
6
|
+
*
|
7
|
+
* @param client - Client to use
|
8
|
+
* @returns The wallet's capabilities. {@link GetCapabilitiesReturnType}
|
9
|
+
*
|
10
|
+
* @example
|
11
|
+
* import { createWalletClient, custom } from 'viem'
|
12
|
+
* import { mainnet } from 'viem/chains'
|
13
|
+
* import { getCapabilities } from 'viem/wallet'
|
14
|
+
*
|
15
|
+
* const client = createWalletClient({
|
16
|
+
* chain: mainnet,
|
17
|
+
* transport: custom(window.ethereum),
|
18
|
+
* })
|
19
|
+
* const capabilities = await getCapabilities(client)
|
20
|
+
*/
|
21
|
+
export async function getCapabilities(client) {
|
22
|
+
const capabilities_raw = await client.request({
|
23
|
+
method: 'wallet_getCapabilities',
|
24
|
+
});
|
25
|
+
const capabilities = {};
|
26
|
+
for (const [key, value] of Object.entries(capabilities_raw))
|
27
|
+
capabilities[Number(key)] = value;
|
28
|
+
return capabilities;
|
29
|
+
}
|
30
|
+
//# sourceMappingURL=getCapabilities.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"getCapabilities.js","sourceRoot":"","sources":["../../../experimental/actions/getCapabilities.ts"],"names":[],"mappings":"AAkBA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAInC,MAAyC;IAEzC,MAAM,gBAAgB,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QAC5C,MAAM,EAAE,wBAAwB;KACjC,CAAC,CAAA;IAEF,MAAM,YAAY,GAAG,EAGpB,CAAA;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC;QACzD,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAA;IACnC,OAAO,YAAY,CAAA;AACrB,CAAC"}
|
@@ -0,0 +1,70 @@
|
|
1
|
+
import { AccountNotFoundError } from '../../errors/account.js';
|
2
|
+
import { ChainNotFoundError } from '../../errors/chain.js';
|
3
|
+
import { parseAccount } from '../../utils/accounts.js';
|
4
|
+
import { numberToHex } from '../../utils/encoding/toHex.js';
|
5
|
+
import { getTransactionError } from '../../utils/index.js';
|
6
|
+
/**
|
7
|
+
* Requests the connected wallet to send a batch of calls.
|
8
|
+
*
|
9
|
+
* - Docs: https://viem.sh/eip5792/actions/sendCalls
|
10
|
+
* - JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)
|
11
|
+
*
|
12
|
+
* @param client - Client to use
|
13
|
+
* @returns Transaction identifier. {@link SendCallsReturnType}
|
14
|
+
*
|
15
|
+
* @example
|
16
|
+
* import { createWalletClient, custom } from 'viem'
|
17
|
+
* import { mainnet } from 'viem/chains'
|
18
|
+
* import { sendCalls } from 'viem/wallet'
|
19
|
+
*
|
20
|
+
* const client = createWalletClient({
|
21
|
+
* chain: mainnet,
|
22
|
+
* transport: custom(window.ethereum),
|
23
|
+
* })
|
24
|
+
* const id = await sendCalls(client, {
|
25
|
+
* account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
|
26
|
+
* calls: [
|
27
|
+
* {
|
28
|
+
* data: '0xdeadbeef',
|
29
|
+
* to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
|
30
|
+
* },
|
31
|
+
* {
|
32
|
+
* to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
|
33
|
+
* value: 69420n,
|
34
|
+
* },
|
35
|
+
* ],
|
36
|
+
* })
|
37
|
+
*/
|
38
|
+
export async function sendCalls(client, parameters) {
|
39
|
+
const { account: account_ = client.account, calls, capabilities, chain = client.chain, version = '1.0', } = parameters;
|
40
|
+
if (!account_)
|
41
|
+
throw new AccountNotFoundError({
|
42
|
+
docsPath: '/eip5792/actions/sendCalls',
|
43
|
+
});
|
44
|
+
const account = parseAccount(account_);
|
45
|
+
if (!chain)
|
46
|
+
throw new ChainNotFoundError();
|
47
|
+
try {
|
48
|
+
return await client.request({
|
49
|
+
method: 'wallet_sendCalls',
|
50
|
+
params: {
|
51
|
+
calls: calls.map((call) => ({
|
52
|
+
...call,
|
53
|
+
value: call.value ? numberToHex(call.value) : undefined,
|
54
|
+
})),
|
55
|
+
capabilities,
|
56
|
+
chainId: numberToHex(chain.id),
|
57
|
+
from: account.address,
|
58
|
+
version,
|
59
|
+
},
|
60
|
+
}, { retryCount: 0 });
|
61
|
+
}
|
62
|
+
catch (err) {
|
63
|
+
throw getTransactionError(err, {
|
64
|
+
...parameters,
|
65
|
+
account,
|
66
|
+
chain: parameters.chain,
|
67
|
+
});
|
68
|
+
}
|
69
|
+
}
|
70
|
+
//# sourceMappingURL=sendCalls.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"sendCalls.js","sourceRoot":"","sources":["../../../experimental/actions/sendCalls.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAE9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAU1D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AA4B1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAK7B,MAAyC,EACzC,UAA8D;IAE9D,MAAM,EACJ,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC,OAAO,EAClC,KAAK,EACL,YAAY,EACZ,KAAK,GAAG,MAAM,CAAC,KAAK,EACpB,OAAO,GAAG,KAAK,GAChB,GAAG,UAAU,CAAA;IAEd,IAAI,CAAC,QAAQ;QACX,MAAM,IAAI,oBAAoB,CAAC;YAC7B,QAAQ,EAAE,4BAA4B;SACvC,CAAC,CAAA;IACJ,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;IAEtC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,kBAAkB,EAAE,CAAA;IAE1C,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,CAAC,OAAO,CACzB;YACE,MAAM,EAAE,kBAAkB;YAC1B,MAAM,EAAE;gBACN,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAC1B,GAAG,IAAI;oBACP,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;iBACxD,CAAC,CAAQ;gBACV,YAAY;gBACZ,OAAO,EAAE,WAAW,CAAC,KAAM,CAAC,EAAE,CAAC;gBAC/B,IAAI,EAAE,OAAO,CAAC,OAAO;gBACrB,OAAO;aACR;SACF,EACD,EAAE,UAAU,EAAE,CAAC,EAAE,CAClB,CAAA;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,mBAAmB,CAAC,GAAgB,EAAE;YAC1C,GAAG,UAAU;YACb,OAAO;YACP,KAAK,EAAE,UAAU,CAAC,KAAM;SACzB,CAAC,CAAA;IACJ,CAAC;AACH,CAAC"}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
import { getCallsStatus, } from '../actions/getCallsStatus.js';
|
2
|
+
import { getCapabilities, } from '../actions/getCapabilities.js';
|
3
|
+
import { sendCalls, } from '../actions/sendCalls.js';
|
4
|
+
/**
|
5
|
+
* A suite of EIP-5792 Wallet Actions.
|
6
|
+
*
|
7
|
+
* - Docs: https://viem.sh/eip5792
|
8
|
+
*
|
9
|
+
* @example
|
10
|
+
* import { createPublicClient, createWalletClient, http } from 'viem'
|
11
|
+
* import { mainnet } from 'viem/chains'
|
12
|
+
* import { walletActionsEip5792 } from 'viem/experimental'
|
13
|
+
*
|
14
|
+
* const walletClient = createWalletClient({
|
15
|
+
* chain: mainnet,
|
16
|
+
* transport: http(),
|
17
|
+
* }).extend(walletActionsEip5792())
|
18
|
+
*
|
19
|
+
* const hash = await walletClient.sendCalls({...})
|
20
|
+
*/
|
21
|
+
export function walletActionsEip5792() {
|
22
|
+
return (client) => {
|
23
|
+
return {
|
24
|
+
getCallsStatus: (parameters) => getCallsStatus(client, parameters),
|
25
|
+
getCapabilities: () => getCapabilities(client),
|
26
|
+
sendCalls: (parameters) => sendCalls(client, parameters),
|
27
|
+
};
|
28
|
+
};
|
29
|
+
}
|
30
|
+
//# sourceMappingURL=eip5792.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"eip5792.js","sourceRoot":"","sources":["../../../experimental/decorators/eip5792.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,cAAc,GACf,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAEL,eAAe,GAChB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAGL,SAAS,GACV,MAAM,yBAAyB,CAAA;AA0FhC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,CAKL,MAAyC,EACH,EAAE;QACxC,OAAO;YACL,cAAc,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC;YAClE,eAAe,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC;YAC9C,SAAS,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC;SACzD,CAAA;IACH,CAAC,CAAA;AACH,CAAC"}
|
@@ -0,0 +1,5 @@
|
|
1
|
+
export { getCapabilities, } from './actions/getCapabilities.js';
|
2
|
+
export { sendCalls, } from './actions/sendCalls.js';
|
3
|
+
export { getCallsStatus, } from './actions/getCallsStatus.js';
|
4
|
+
export { walletActionsEip5792, } from './decorators/eip5792.js';
|
5
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../experimental/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,eAAe,GAChB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAIL,SAAS,GACV,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAIL,cAAc,GACf,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EAEL,oBAAoB,GACrB,MAAM,yBAAyB,CAAA"}
|
@@ -2,7 +2,7 @@ import { hexToNumber } from '../encoding/fromHex.js';
|
|
2
2
|
import { defineFormatter } from './formatter.js';
|
3
3
|
import { formatLog } from './log.js';
|
4
4
|
import { transactionType } from './transaction.js';
|
5
|
-
const
|
5
|
+
export const receiptStatuses = {
|
6
6
|
'0x0': 'reverted',
|
7
7
|
'0x1': 'success',
|
8
8
|
};
|
@@ -32,7 +32,7 @@ export function formatTransactionReceipt(transactionReceipt) {
|
|
32
32
|
? hexToNumber(transactionReceipt.transactionIndex)
|
33
33
|
: null,
|
34
34
|
status: transactionReceipt.status
|
35
|
-
?
|
35
|
+
? receiptStatuses[transactionReceipt.status]
|
36
36
|
: null,
|
37
37
|
type: transactionReceipt.type
|
38
38
|
? transactionType[transactionReceipt.type] || transactionReceipt.type
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"transactionReceipt.js","sourceRoot":"","sources":["../../../utils/formatters/transactionReceipt.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD,OAAO,EAAiC,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAUlD,MAAM,
|
1
|
+
{"version":3,"file":"transactionReceipt.js","sourceRoot":"","sources":["../../../utils/formatters/transactionReceipt.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD,OAAO,EAAiC,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAUlD,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,SAAS;CACR,CAAA;AAIV,MAAM,UAAU,wBAAwB,CACtC,kBAAuD;IAEvD,MAAM,OAAO,GAAG;QACd,GAAG,kBAAkB;QACrB,WAAW,EAAE,kBAAkB,CAAC,WAAW;YACzC,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,WAAW,CAAC;YACxC,CAAC,CAAC,IAAI;QACR,eAAe,EAAE,kBAAkB,CAAC,eAAe;YACjD,CAAC,CAAC,kBAAkB,CAAC,eAAe;YACpC,CAAC,CAAC,IAAI;QACR,iBAAiB,EAAE,kBAAkB,CAAC,iBAAiB;YACrD,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;YAC9C,CAAC,CAAC,IAAI;QACR,iBAAiB,EAAE,kBAAkB,CAAC,iBAAiB;YACrD,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;YAC9C,CAAC,CAAC,IAAI;QACR,OAAO,EAAE,kBAAkB,CAAC,OAAO;YACjC,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC;YACpC,CAAC,CAAC,IAAI;QACR,IAAI,EAAE,kBAAkB,CAAC,IAAI;YAC3B,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACtD,CAAC,CAAC,IAAI;QACR,EAAE,EAAE,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;QACxD,gBAAgB,EAAE,kBAAkB,CAAC,gBAAgB;YACnD,CAAC,CAAC,WAAW,CAAC,kBAAkB,CAAC,gBAAgB,CAAC;YAClD,CAAC,CAAC,IAAI;QACR,MAAM,EAAE,kBAAkB,CAAC,MAAM;YAC/B,CAAC,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC;YAC5C,CAAC,CAAC,IAAI;QACR,IAAI,EAAE,kBAAkB,CAAC,IAAI;YAC3B,CAAC,CAAC,eAAe,CACb,kBAAkB,CAAC,IAAoC,CACxD,IAAI,kBAAkB,CAAC,IAAI;YAC9B,CAAC,CAAC,IAAI;KACa,CAAA;IAEvB,IAAI,kBAAkB,CAAC,YAAY;QACjC,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAA;IAChE,IAAI,kBAAkB,CAAC,WAAW;QAChC,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAA;IAE9D,OAAO,OAAO,CAAA;AAChB,CAAC;AAMD,MAAM,CAAC,MAAM,wBAAwB,GAAG,aAAa,CAAC,eAAe,CACnE,oBAAoB,EACpB,wBAAwB,CACzB,CAAA"}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
export declare const version = "0.0.0-main.
|
1
|
+
export declare const version = "0.0.0-main.20240402T203246";
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
@@ -0,0 +1,35 @@
|
|
1
|
+
import type { Client } from '../../clients/createClient.js';
|
2
|
+
import type { Transport } from '../../clients/transports/createTransport.js';
|
3
|
+
import type { ErrorType } from '../../errors/utils.js';
|
4
|
+
import type { Account } from '../../types/account.js';
|
5
|
+
import type { Chain } from '../../types/chain.js';
|
6
|
+
import type { WalletGetCallsStatusReturnType } from '../../types/eip1193.js';
|
7
|
+
import type { Prettify } from '../../types/utils.js';
|
8
|
+
import type { RequestErrorType } from '../../utils/buildRequest.js';
|
9
|
+
export type GetCallsStatusParameters = {
|
10
|
+
id: string;
|
11
|
+
};
|
12
|
+
export type GetCallsStatusReturnType = Prettify<WalletGetCallsStatusReturnType<bigint, 'success' | 'reverted'>>;
|
13
|
+
export type GetCallsStatusErrorType = RequestErrorType | ErrorType;
|
14
|
+
/**
|
15
|
+
* Returns the status of a call batch that was sent via `sendCalls`.
|
16
|
+
*
|
17
|
+
* - Docs: https://viem.sh/eip5792/actions/getCallsStatus
|
18
|
+
* - JSON-RPC Methods: [`wallet_getCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792)
|
19
|
+
*
|
20
|
+
* @param client - Client to use
|
21
|
+
* @returns Status of the calls. {@link GetCallsStatusReturnType}
|
22
|
+
*
|
23
|
+
* @example
|
24
|
+
* import { createWalletClient, custom } from 'viem'
|
25
|
+
* import { mainnet } from 'viem/chains'
|
26
|
+
* import { getCallsStatus } from 'viem/wallet'
|
27
|
+
*
|
28
|
+
* const client = createWalletClient({
|
29
|
+
* chain: mainnet,
|
30
|
+
* transport: custom(window.ethereum),
|
31
|
+
* })
|
32
|
+
* const { receipts, status } = await getCallsStatus(client, { id: '0xdeadbeef' })
|
33
|
+
*/
|
34
|
+
export declare function getCallsStatus<chain extends Chain | undefined, account extends Account | undefined = undefined>(client: Client<Transport, chain, account>, parameters: GetCallsStatusParameters): Promise<GetCallsStatusReturnType>;
|
35
|
+
//# sourceMappingURL=getCallsStatus.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"getCallsStatus.d.ts","sourceRoot":"","sources":["../../../experimental/actions/getCallsStatus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAA;AAC5E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAA;AAC5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAInE,MAAM,MAAM,wBAAwB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAA;AAErD,MAAM,MAAM,wBAAwB,GAAG,QAAQ,CAC7C,8BAA8B,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,CAAC,CAC/D,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,gBAAgB,GAAG,SAAS,CAAA;AAElE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,cAAc,CAClC,KAAK,SAAS,KAAK,GAAG,SAAS,EAC/B,OAAO,SAAS,OAAO,GAAG,SAAS,GAAG,SAAS,EAE/C,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,EACzC,UAAU,EAAE,wBAAwB,GACnC,OAAO,CAAC,wBAAwB,CAAC,CAgBnC"}
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import type { Client } from '../../clients/createClient.js';
|
2
|
+
import type { Transport } from '../../clients/transports/createTransport.js';
|
3
|
+
import type { ErrorType } from '../../errors/utils.js';
|
4
|
+
import type { Account } from '../../types/account.js';
|
5
|
+
import type { Chain } from '../../types/chain.js';
|
6
|
+
import type { WalletCapabilities, WalletCapabilitiesRecord } from '../../types/eip1193.js';
|
7
|
+
import type { Prettify } from '../../types/utils.js';
|
8
|
+
import type { RequestErrorType } from '../../utils/buildRequest.js';
|
9
|
+
export type GetCapabilitiesReturnType = Prettify<WalletCapabilitiesRecord<WalletCapabilities, number>>;
|
10
|
+
export type GetCapabilitiesErrorType = RequestErrorType | ErrorType;
|
11
|
+
/**
|
12
|
+
* Extract capabilities that a connected wallet supports (e.g. paymasters, session keys, etc).
|
13
|
+
*
|
14
|
+
* - Docs: https://viem.sh/eip5792/actions/getCapabilities
|
15
|
+
* - JSON-RPC Methods: [`wallet_getCapabilities`](https://eips.ethereum.org/EIPS/eip-5792)
|
16
|
+
*
|
17
|
+
* @param client - Client to use
|
18
|
+
* @returns The wallet's capabilities. {@link GetCapabilitiesReturnType}
|
19
|
+
*
|
20
|
+
* @example
|
21
|
+
* import { createWalletClient, custom } from 'viem'
|
22
|
+
* import { mainnet } from 'viem/chains'
|
23
|
+
* import { getCapabilities } from 'viem/wallet'
|
24
|
+
*
|
25
|
+
* const client = createWalletClient({
|
26
|
+
* chain: mainnet,
|
27
|
+
* transport: custom(window.ethereum),
|
28
|
+
* })
|
29
|
+
* const capabilities = await getCapabilities(client)
|
30
|
+
*/
|
31
|
+
export declare function getCapabilities<chain extends Chain | undefined, account extends Account | undefined = undefined>(client: Client<Transport, chain, account>): Promise<GetCapabilitiesReturnType>;
|
32
|
+
//# sourceMappingURL=getCapabilities.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"getCapabilities.d.ts","sourceRoot":"","sources":["../../../experimental/actions/getCapabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAA;AAC5E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,EACV,kBAAkB,EAClB,wBAAwB,EACzB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAEnE,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAC9C,wBAAwB,CAAC,kBAAkB,EAAE,MAAM,CAAC,CACrD,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG,gBAAgB,GAAG,SAAS,CAAA;AAEnE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,eAAe,CACnC,KAAK,SAAS,KAAK,GAAG,SAAS,EAC/B,OAAO,SAAS,OAAO,GAAG,SAAS,GAAG,SAAS,EAE/C,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,GACxC,OAAO,CAAC,yBAAyB,CAAC,CAYpC"}
|
@@ -0,0 +1,56 @@
|
|
1
|
+
import type { Client } from '../../clients/createClient.js';
|
2
|
+
import type { Transport } from '../../clients/transports/createTransport.js';
|
3
|
+
import type { ErrorType } from '../../errors/utils.js';
|
4
|
+
import type { Account, GetAccountParameter } from '../../types/account.js';
|
5
|
+
import type { Chain, GetChainParameter } from '../../types/chain.js';
|
6
|
+
import type { WalletCapabilities, WalletSendCallsParameters } from '../../types/eip1193.js';
|
7
|
+
import type { Hex } from '../../types/misc.js';
|
8
|
+
import type { OneOf } from '../../types/utils.js';
|
9
|
+
import type { RequestErrorType } from '../../utils/buildRequest.js';
|
10
|
+
export type SendCallsParameters<chain extends Chain | undefined = Chain | undefined, account extends Account | undefined = Account | undefined, chainOverride extends Chain | undefined = Chain | undefined> = {
|
11
|
+
calls: OneOf<{
|
12
|
+
to: Hex;
|
13
|
+
data?: Hex;
|
14
|
+
value?: bigint;
|
15
|
+
} | {
|
16
|
+
data: Hex;
|
17
|
+
}>[];
|
18
|
+
capabilities?: WalletSendCallsParameters<WalletCapabilities>['capabilities'] | undefined;
|
19
|
+
version?: WalletSendCallsParameters['version'] | undefined;
|
20
|
+
} & GetAccountParameter<account> & GetChainParameter<chain, chainOverride>;
|
21
|
+
export type SendCallsReturnType = string;
|
22
|
+
export type SendCallsErrorType = RequestErrorType | ErrorType;
|
23
|
+
/**
|
24
|
+
* Requests the connected wallet to send a batch of calls.
|
25
|
+
*
|
26
|
+
* - Docs: https://viem.sh/eip5792/actions/sendCalls
|
27
|
+
* - JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)
|
28
|
+
*
|
29
|
+
* @param client - Client to use
|
30
|
+
* @returns Transaction identifier. {@link SendCallsReturnType}
|
31
|
+
*
|
32
|
+
* @example
|
33
|
+
* import { createWalletClient, custom } from 'viem'
|
34
|
+
* import { mainnet } from 'viem/chains'
|
35
|
+
* import { sendCalls } from 'viem/wallet'
|
36
|
+
*
|
37
|
+
* const client = createWalletClient({
|
38
|
+
* chain: mainnet,
|
39
|
+
* transport: custom(window.ethereum),
|
40
|
+
* })
|
41
|
+
* const id = await sendCalls(client, {
|
42
|
+
* account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
|
43
|
+
* calls: [
|
44
|
+
* {
|
45
|
+
* data: '0xdeadbeef',
|
46
|
+
* to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
|
47
|
+
* },
|
48
|
+
* {
|
49
|
+
* to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
|
50
|
+
* value: 69420n,
|
51
|
+
* },
|
52
|
+
* ],
|
53
|
+
* })
|
54
|
+
*/
|
55
|
+
export declare function sendCalls<chain extends Chain | undefined, account extends Account | undefined = undefined, chainOverride extends Chain | undefined = undefined>(client: Client<Transport, chain, account>, parameters: SendCallsParameters<chain, account, chainOverride>): Promise<SendCallsReturnType>;
|
56
|
+
//# sourceMappingURL=sendCalls.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"sendCalls.d.ts","sourceRoot":"","sources":["../../../experimental/actions/sendCalls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAA;AAI5E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC1E,OAAO,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACpE,OAAO,KAAK,EACV,kBAAkB,EAClB,yBAAyB,EAC1B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAInE,MAAM,MAAM,mBAAmB,CAC7B,KAAK,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EACnD,OAAO,SAAS,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,EACzD,aAAa,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,IACzD;IACF,KAAK,EAAE,KAAK,CACR;QACE,EAAE,EAAE,GAAG,CAAA;QACP,IAAI,CAAC,EAAE,GAAG,CAAA;QACV,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,GACD;QACE,IAAI,EAAE,GAAG,CAAA;KACV,CACJ,EAAE,CAAA;IACH,YAAY,CAAC,EACT,yBAAyB,CAAC,kBAAkB,CAAC,CAAC,cAAc,CAAC,GAC7D,SAAS,CAAA;IACb,OAAO,CAAC,EAAE,yBAAyB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAA;CAC3D,GAAG,mBAAmB,CAAC,OAAO,CAAC,GAC9B,iBAAiB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;AAEzC,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAA;AAExC,MAAM,MAAM,kBAAkB,GAAG,gBAAgB,GAAG,SAAS,CAAA;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAsB,SAAS,CAC7B,KAAK,SAAS,KAAK,GAAG,SAAS,EAC/B,OAAO,SAAS,OAAO,GAAG,SAAS,GAAG,SAAS,EAC/C,aAAa,SAAS,KAAK,GAAG,SAAS,GAAG,SAAS,EAEnD,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,EACzC,UAAU,EAAE,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,GAC7D,OAAO,CAAC,mBAAmB,CAAC,CAyC9B"}
|