viem 0.0.0-w-20230802141753 → 0.0.0-w-20230810183250
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/chains/utils/package.json +5 -0
- package/dist/cjs/accounts/index.js +5 -1
- package/dist/cjs/accounts/index.js.map +1 -1
- package/dist/cjs/accounts/utils/privateKeyToAddress.js +12 -0
- package/dist/cjs/accounts/utils/privateKeyToAddress.js.map +1 -0
- package/dist/cjs/accounts/utils/signTransaction.js.map +1 -1
- package/dist/cjs/actions/public/estimateContractGas.js +1 -1
- package/dist/cjs/actions/public/estimateContractGas.js.map +1 -1
- package/dist/cjs/actions/public/estimateGas.js +3 -1
- package/dist/cjs/actions/public/estimateGas.js.map +1 -1
- package/dist/cjs/actions/public/watchContractEvent.js +134 -67
- package/dist/cjs/actions/public/watchContractEvent.js.map +1 -1
- package/dist/cjs/actions/public/watchEvent.js +136 -62
- package/dist/cjs/actions/public/watchEvent.js.map +1 -1
- package/dist/cjs/actions/wallet/sendTransaction.js.map +1 -1
- package/dist/cjs/actions/wallet/writeContract.js.map +1 -1
- package/dist/cjs/chains/{formatters/celo.js → celo/formatters.js} +1 -1
- package/dist/cjs/chains/celo/formatters.js.map +1 -0
- package/dist/cjs/chains/{serializers/celo.js → celo/serializers.js} +1 -1
- package/dist/cjs/chains/celo/serializers.js.map +1 -0
- package/dist/cjs/{types/formatter.js → chains/celo/types.js} +1 -1
- package/dist/cjs/chains/celo/types.js.map +1 -0
- package/dist/cjs/chains/index.js +30 -15
- package/dist/cjs/chains/index.js.map +1 -1
- package/dist/cjs/chains/optimism/fees.js +7 -0
- package/dist/cjs/chains/optimism/fees.js.map +1 -0
- package/dist/cjs/chains/{formatters/optimism.js → optimism/formatters.js} +13 -1
- package/dist/cjs/chains/optimism/formatters.js.map +1 -0
- package/dist/cjs/{types/serializer.js → chains/optimism/types.js} +1 -1
- package/dist/cjs/chains/optimism/types.js.map +1 -0
- package/dist/cjs/chains/utils.js +11 -0
- package/dist/cjs/chains/utils.js.map +1 -0
- package/dist/cjs/errors/node.js +1 -1
- package/dist/cjs/errors/node.js.map +1 -1
- package/dist/cjs/errors/utils.js +1 -1
- package/dist/cjs/errors/utils.js.map +1 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/utils/abi/encodeAbiParameters.js +11 -14
- package/dist/cjs/utils/abi/encodeAbiParameters.js.map +1 -1
- package/dist/cjs/utils/chain.js +5 -3
- package/dist/cjs/utils/chain.js.map +1 -1
- package/dist/cjs/utils/formatters/block.js.map +1 -1
- package/dist/cjs/utils/formatters/extract.js.map +1 -1
- package/dist/cjs/utils/formatters/formatter.js.map +1 -1
- package/dist/cjs/utils/formatters/transaction.js.map +1 -1
- package/dist/cjs/utils/formatters/transactionReceipt.js.map +1 -1
- package/dist/cjs/utils/formatters/transactionRequest.js.map +1 -1
- package/dist/cjs/utils/hash/hashFunction.js +3 -2
- package/dist/cjs/utils/hash/hashFunction.js.map +1 -1
- package/dist/cjs/utils/transaction/prepareRequest.js +19 -12
- package/dist/cjs/utils/transaction/prepareRequest.js.map +1 -1
- package/dist/cjs/{errors/version.js → version.js} +1 -1
- package/dist/cjs/version.js.map +1 -0
- package/dist/esm/accounts/index.js +2 -0
- package/dist/esm/accounts/index.js.map +1 -1
- package/dist/esm/accounts/utils/privateKeyToAddress.js +15 -0
- package/dist/esm/accounts/utils/privateKeyToAddress.js.map +1 -0
- package/dist/esm/accounts/utils/signTransaction.js.map +1 -1
- package/dist/esm/actions/public/estimateContractGas.js +1 -1
- package/dist/esm/actions/public/estimateContractGas.js.map +1 -1
- package/dist/esm/actions/public/estimateGas.js +4 -2
- package/dist/esm/actions/public/estimateGas.js.map +1 -1
- package/dist/esm/actions/public/watchContractEvent.js +145 -76
- package/dist/esm/actions/public/watchContractEvent.js.map +1 -1
- package/dist/esm/actions/public/watchEvent.js +146 -70
- package/dist/esm/actions/public/watchEvent.js.map +1 -1
- package/dist/esm/actions/wallet/sendTransaction.js +1 -1
- package/dist/esm/actions/wallet/sendTransaction.js.map +1 -1
- package/dist/esm/actions/wallet/writeContract.js.map +1 -1
- package/dist/esm/chains/{formatters/celo.js → celo/formatters.js} +2 -2
- package/dist/esm/chains/celo/formatters.js.map +1 -0
- package/dist/esm/chains/{serializers/celo.js → celo/serializers.js} +1 -1
- package/dist/esm/chains/celo/serializers.js.map +1 -0
- package/dist/esm/chains/celo/types.js +2 -0
- package/dist/esm/chains/celo/types.js.map +1 -0
- package/dist/esm/chains/index.js +22 -7
- package/dist/esm/chains/index.js.map +1 -1
- package/dist/esm/chains/optimism/fees.js +4 -0
- package/dist/esm/chains/optimism/fees.js.map +1 -0
- package/dist/esm/chains/{formatters/optimism.js → optimism/formatters.js} +15 -2
- package/dist/esm/chains/optimism/formatters.js.map +1 -0
- package/dist/esm/chains/optimism/types.js +2 -0
- package/dist/esm/chains/optimism/types.js.map +1 -0
- package/dist/esm/chains/utils.js +4 -0
- package/dist/esm/chains/utils.js.map +1 -0
- package/dist/esm/errors/node.js +1 -1
- package/dist/esm/errors/node.js.map +1 -1
- package/dist/esm/errors/utils.js +1 -1
- package/dist/esm/errors/utils.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/utils/abi/encodeAbiParameters.js +13 -14
- package/dist/esm/utils/abi/encodeAbiParameters.js.map +1 -1
- package/dist/esm/utils/chain.js +5 -3
- package/dist/esm/utils/chain.js.map +1 -1
- package/dist/esm/utils/formatters/block.js.map +1 -1
- package/dist/esm/utils/formatters/extract.js.map +1 -1
- package/dist/esm/utils/formatters/formatter.js.map +1 -1
- package/dist/esm/utils/formatters/transaction.js.map +1 -1
- package/dist/esm/utils/formatters/transactionReceipt.js.map +1 -1
- package/dist/esm/utils/formatters/transactionRequest.js.map +1 -1
- package/dist/esm/utils/hash/hashFunction.js +3 -2
- package/dist/esm/utils/hash/hashFunction.js.map +1 -1
- package/dist/esm/utils/transaction/prepareRequest.js +20 -13
- package/dist/esm/utils/transaction/prepareRequest.js.map +1 -1
- package/dist/esm/version.js +2 -0
- package/dist/esm/version.js.map +1 -0
- package/dist/types/accounts/index.d.ts +2 -0
- package/dist/types/accounts/index.d.ts.map +1 -1
- package/dist/types/accounts/utils/privateKeyToAddress.d.ts +11 -0
- package/dist/types/accounts/utils/privateKeyToAddress.d.ts.map +1 -0
- package/dist/types/accounts/utils/signTransaction.d.ts +2 -2
- package/dist/types/accounts/utils/signTransaction.d.ts.map +1 -1
- package/dist/types/actions/public/estimateGas.d.ts.map +1 -1
- package/dist/types/actions/public/getTransactionReceipt.d.ts +1 -1
- package/dist/types/actions/public/getTransactionReceipt.d.ts.map +1 -1
- package/dist/types/actions/public/simulateContract.d.ts +2 -2
- package/dist/types/actions/public/simulateContract.d.ts.map +1 -1
- package/dist/types/actions/public/watchContractEvent.d.ts +32 -6
- package/dist/types/actions/public/watchContractEvent.d.ts.map +1 -1
- package/dist/types/actions/public/watchEvent.d.ts +32 -9
- package/dist/types/actions/public/watchEvent.d.ts.map +1 -1
- package/dist/types/actions/wallet/deployContract.d.ts +1 -1
- package/dist/types/actions/wallet/deployContract.d.ts.map +1 -1
- package/dist/types/actions/wallet/sendTransaction.d.ts +2 -2
- package/dist/types/actions/wallet/sendTransaction.d.ts.map +1 -1
- package/dist/types/actions/wallet/writeContract.d.ts +4 -2
- package/dist/types/actions/wallet/writeContract.d.ts.map +1 -1
- package/dist/types/chains/{formatters/celo.d.ts → celo/formatters.d.ts} +26 -85
- package/dist/types/chains/celo/formatters.d.ts.map +1 -0
- package/dist/types/chains/{serializers/celo.d.ts → celo/serializers.d.ts} +4 -4
- package/dist/types/chains/celo/serializers.d.ts.map +1 -0
- package/dist/types/chains/celo/types.d.ts +60 -0
- package/dist/types/chains/celo/types.d.ts.map +1 -0
- package/dist/types/chains/index.d.ts +2527 -2754
- package/dist/types/chains/index.d.ts.map +1 -1
- package/dist/types/chains/optimism/fees.d.ts +4 -0
- package/dist/types/chains/optimism/fees.d.ts.map +1 -0
- package/dist/types/chains/{formatters/optimism.d.ts → optimism/formatters.d.ts} +77 -54
- package/dist/types/chains/optimism/formatters.d.ts.map +1 -0
- package/dist/types/chains/optimism/types.d.ts +53 -0
- package/dist/types/chains/optimism/types.d.ts.map +1 -0
- package/dist/types/chains/utils.d.ts +6 -0
- package/dist/types/chains/utils.d.ts.map +1 -0
- package/dist/types/clients/decorators/public.d.ts +1 -1
- package/dist/types/clients/decorators/public.d.ts.map +1 -1
- package/dist/types/errors/node.d.ts.map +1 -1
- package/dist/types/index.d.ts +14 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types/chain.d.ts +52 -8
- package/dist/types/types/chain.d.ts.map +1 -1
- package/dist/types/types/rpc.d.ts +1 -1
- package/dist/types/types/rpc.d.ts.map +1 -1
- package/dist/types/types/utils.d.ts +10 -0
- package/dist/types/types/utils.d.ts.map +1 -1
- package/dist/types/utils/abi/encodeAbiParameters.d.ts.map +1 -1
- package/dist/types/utils/chain.d.ts +3 -6
- package/dist/types/utils/chain.d.ts.map +1 -1
- package/dist/types/utils/formatters/block.d.ts +7 -3
- package/dist/types/utils/formatters/block.d.ts.map +1 -1
- package/dist/types/utils/formatters/extract.d.ts +2 -2
- package/dist/types/utils/formatters/extract.d.ts.map +1 -1
- package/dist/types/utils/formatters/formatter.d.ts +1 -1
- package/dist/types/utils/formatters/transaction.d.ts +8 -4
- package/dist/types/utils/formatters/transaction.d.ts.map +1 -1
- package/dist/types/utils/formatters/transactionReceipt.d.ts +3 -4
- package/dist/types/utils/formatters/transactionReceipt.d.ts.map +1 -1
- package/dist/types/utils/formatters/transactionRequest.d.ts +4 -5
- package/dist/types/utils/formatters/transactionRequest.d.ts.map +1 -1
- package/dist/types/utils/hash/hashFunction.d.ts +1 -1
- package/dist/types/utils/hash/hashFunction.d.ts.map +1 -1
- package/dist/types/utils/transaction/prepareRequest.d.ts +6 -11
- package/dist/types/utils/transaction/prepareRequest.d.ts.map +1 -1
- package/dist/types/version.d.ts +2 -0
- package/dist/types/version.d.ts.map +1 -0
- package/package.json +8 -2
- package/src/accounts/index.ts +6 -0
- package/src/accounts/utils/privateKeyToAddress.ts +20 -0
- package/src/accounts/utils/signTransaction.ts +2 -2
- package/src/actions/public/estimateContractGas.ts +1 -1
- package/src/actions/public/estimateGas.ts +11 -2
- package/src/actions/public/simulateContract.ts +2 -2
- package/src/actions/public/watchContractEvent.ts +201 -87
- package/src/actions/public/watchEvent.ts +230 -109
- package/src/actions/wallet/deployContract.ts +1 -1
- package/src/actions/wallet/sendTransaction.ts +9 -6
- package/src/actions/wallet/writeContract.ts +11 -7
- package/src/chains/{formatters/celo.ts → celo/formatters.ts} +29 -48
- package/src/chains/{serializers/celo.ts → celo/serializers.ts} +5 -5
- package/src/chains/celo/types.ts +111 -0
- package/src/chains/index.ts +22 -7
- package/src/chains/optimism/fees.ts +5 -0
- package/src/chains/optimism/formatters.ts +74 -0
- package/src/chains/optimism/types.ts +102 -0
- package/src/chains/utils.ts +41 -0
- package/src/clients/decorators/public.ts +3 -3
- package/src/errors/node.ts +2 -1
- package/src/errors/utils.ts +1 -1
- package/src/index.ts +25 -8
- package/src/types/chain.ts +91 -14
- package/src/types/rpc.ts +2 -6
- package/src/types/utils.ts +11 -0
- package/src/utils/abi/encodeAbiParameters.ts +14 -17
- package/src/utils/chain.ts +21 -10
- package/src/utils/formatters/block.ts +8 -6
- package/src/utils/formatters/extract.ts +2 -2
- package/src/utils/formatters/formatter.ts +2 -2
- package/src/utils/formatters/transaction.ts +8 -6
- package/src/utils/formatters/transactionReceipt.ts +9 -3
- package/src/utils/formatters/transactionRequest.ts +9 -3
- package/src/utils/hash/hashFunction.ts +3 -2
- package/src/utils/transaction/prepareRequest.ts +55 -30
- package/src/version.ts +1 -0
- package/dist/cjs/chains/formatters/celo.js.map +0 -1
- package/dist/cjs/chains/formatters/optimism.js.map +0 -1
- package/dist/cjs/chains/serializers/celo.js.map +0 -1
- package/dist/cjs/errors/version.js.map +0 -1
- package/dist/cjs/types/formatter.js.map +0 -1
- package/dist/cjs/types/serializer.js.map +0 -1
- package/dist/esm/chains/formatters/celo.js.map +0 -1
- package/dist/esm/chains/formatters/optimism.js.map +0 -1
- package/dist/esm/chains/serializers/celo.js.map +0 -1
- package/dist/esm/errors/version.js +0 -2
- package/dist/esm/errors/version.js.map +0 -1
- package/dist/esm/types/formatter.js +0 -2
- package/dist/esm/types/formatter.js.map +0 -1
- package/dist/esm/types/serializer.js +0 -2
- package/dist/esm/types/serializer.js.map +0 -1
- package/dist/types/chains/formatters/celo.d.ts.map +0 -1
- package/dist/types/chains/formatters/optimism.d.ts.map +0 -1
- package/dist/types/chains/serializers/celo.d.ts.map +0 -1
- package/dist/types/errors/version.d.ts +0 -2
- package/dist/types/errors/version.d.ts.map +0 -1
- package/dist/types/types/formatter.d.ts +0 -17
- package/dist/types/types/formatter.d.ts.map +0 -1
- package/dist/types/types/serializer.d.ts +0 -7
- package/dist/types/types/serializer.d.ts.map +0 -1
- package/src/chains/formatters/optimism.ts +0 -91
- package/src/errors/version.ts +0 -1
- package/src/types/formatter.ts +0 -42
- package/src/types/serializer.ts +0 -19
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.prepareRequest =
|
3
|
+
exports.prepareRequest = void 0;
|
4
4
|
const parseAccount_js_1 = require("../../accounts/utils/parseAccount.js");
|
5
5
|
const estimateGas_js_1 = require("../../actions/public/estimateGas.js");
|
6
6
|
const getBlock_js_1 = require("../../actions/public/getBlock.js");
|
@@ -9,9 +9,8 @@ const getTransactionCount_js_1 = require("../../actions/public/getTransactionCou
|
|
9
9
|
const account_js_1 = require("../../errors/account.js");
|
10
10
|
const base_js_1 = require("../../errors/base.js");
|
11
11
|
const assertRequest_js_1 = require("./assertRequest.js");
|
12
|
-
exports.defaultTip = 1500000000n;
|
13
12
|
async function prepareRequest(client, args) {
|
14
|
-
const { account: account_, gas, gasPrice, maxFeePerGas, maxPriorityFeePerGas, nonce, } = args;
|
13
|
+
const { account: account_, chain = client.chain, gas, gasPrice, maxFeePerGas, maxPriorityFeePerGas, nonce, } = args;
|
15
14
|
if (!account_)
|
16
15
|
throw new account_js_1.AccountNotFoundError();
|
17
16
|
const account = (0, parseAccount_js_1.parseAccount)(account_);
|
@@ -22,28 +21,36 @@ async function prepareRequest(client, args) {
|
|
22
21
|
address: account.address,
|
23
22
|
blockTag: 'pending',
|
24
23
|
});
|
25
|
-
if (typeof block.baseFeePerGas === 'bigint'
|
26
|
-
|
27
|
-
|
24
|
+
if (typeof block.baseFeePerGas === 'bigint' &&
|
25
|
+
typeof gasPrice === 'undefined') {
|
26
|
+
let defaultPriorityFee = 1500000000n;
|
27
|
+
if (typeof chain?.fees?.defaultPriorityFee !== 'undefined') {
|
28
|
+
defaultPriorityFee =
|
29
|
+
typeof chain.fees.defaultPriorityFee === 'bigint'
|
30
|
+
? chain.fees.defaultPriorityFee
|
31
|
+
: await chain.fees.defaultPriorityFee({
|
32
|
+
block,
|
33
|
+
request: request,
|
34
|
+
});
|
35
|
+
}
|
28
36
|
if (typeof maxFeePerGas === 'undefined') {
|
29
|
-
request.maxPriorityFeePerGas = maxPriorityFeePerGas ??
|
37
|
+
request.maxPriorityFeePerGas = maxPriorityFeePerGas ?? defaultPriorityFee;
|
30
38
|
request.maxFeePerGas =
|
31
39
|
(block.baseFeePerGas * 120n) / 100n + request.maxPriorityFeePerGas;
|
32
40
|
}
|
33
41
|
else {
|
34
42
|
if (typeof maxPriorityFeePerGas === 'undefined' &&
|
35
|
-
maxFeePerGas <
|
43
|
+
maxFeePerGas < defaultPriorityFee)
|
36
44
|
throw new base_js_1.BaseError('`maxFeePerGas` cannot be less than the default `maxPriorityFeePerGas` (1.5 gwei).');
|
37
45
|
request.maxFeePerGas = maxFeePerGas;
|
38
|
-
request.maxPriorityFeePerGas = maxPriorityFeePerGas ??
|
46
|
+
request.maxPriorityFeePerGas = maxPriorityFeePerGas ?? defaultPriorityFee;
|
39
47
|
}
|
40
48
|
}
|
41
|
-
else {
|
49
|
+
else if (typeof gasPrice === 'undefined') {
|
42
50
|
if (typeof maxFeePerGas !== 'undefined' ||
|
43
51
|
typeof maxPriorityFeePerGas !== 'undefined')
|
44
52
|
throw new base_js_1.BaseError('Chain does not support EIP-1559 fees.');
|
45
|
-
|
46
|
-
request.gasPrice = ((await (0, getGasPrice_js_1.getGasPrice)(client)) * 120n) / 100n;
|
53
|
+
request.gasPrice = ((await (0, getGasPrice_js_1.getGasPrice)(client)) * 120n) / 100n;
|
47
54
|
}
|
48
55
|
if (typeof gas === 'undefined')
|
49
56
|
request.gas = await (0, estimateGas_js_1.estimateGas)(client, {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"prepareRequest.js","sourceRoot":"","sources":["../../../../src/utils/transaction/prepareRequest.ts"],"names":[],"mappings":";;;AAGA,0EAAmE;AACnE,wEAG4C;AAC5C,kEAA2D;AAC3D,wEAAiE;AACjE,wFAAiF;AAIjF,wDAA8D;AAC9D,kDAAgD;
|
1
|
+
{"version":3,"file":"prepareRequest.js","sourceRoot":"","sources":["../../../../src/utils/transaction/prepareRequest.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG,OAAO,CAAA"}
|
@@ -8,9 +8,11 @@ export { toAccount } from './toAccount.js';
|
|
8
8
|
export { sign } from './utils/sign.js';
|
9
9
|
export { signatureToHex } from '../utils/signature/signatureToHex.js';
|
10
10
|
export { signMessage, } from './utils/signMessage.js';
|
11
|
+
export { signTransaction, } from './utils/signTransaction.js';
|
11
12
|
export { signTypedData, } from './utils/signTypedData.js';
|
12
13
|
export { parseAccount } from './utils/parseAccount.js';
|
13
14
|
export { publicKeyToAddress } from './utils/publicKeyToAddress.js';
|
15
|
+
export { privateKeyToAddress } from './utils/privateKeyToAddress.js';
|
14
16
|
export { czech } from './wordlists/czech.js';
|
15
17
|
export { english } from './wordlists/english.js';
|
16
18
|
export { french } from './wordlists/french.js';
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/accounts/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAW1C,OAAO,EAA4C,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAA;AACrE,OAAO,EAGL,WAAW,GACZ,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAGL,aAAa,GACd,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA"}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/accounts/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAW1C,OAAO,EAA4C,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAA;AACrE,OAAO,EAGL,WAAW,GACZ,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAGL,eAAe,GAChB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAGL,aAAa,GACd,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA"}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import { secp256k1 } from '@noble/curves/secp256k1';
|
2
|
+
import { bytesToHex } from '../../utils/encoding/toHex.js';
|
3
|
+
import { publicKeyToAddress } from './publicKeyToAddress.js';
|
4
|
+
/**
|
5
|
+
* @description Converts an ECDSA private key to an address.
|
6
|
+
*
|
7
|
+
* @param privateKey The private key to convert.
|
8
|
+
*
|
9
|
+
* @returns The address.
|
10
|
+
*/
|
11
|
+
export function privateKeyToAddress(privateKey) {
|
12
|
+
const publicKey = bytesToHex(secp256k1.getPublicKey(privateKey.slice(2), false));
|
13
|
+
return publicKeyToAddress(publicKey);
|
14
|
+
}
|
15
|
+
//# sourceMappingURL=privateKeyToAddress.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"privateKeyToAddress.js","sourceRoot":"","sources":["../../../../src/accounts/utils/privateKeyToAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAInD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAe;IACjD,MAAM,SAAS,GAAG,UAAU,CAC1B,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CACnD,CAAA;IACD,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAA;AACtC,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"signTransaction.js","sourceRoot":"","sources":["../../../../src/accounts/utils/signTransaction.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAEzD,OAAO,EAEL,oBAAoB,GACrB,MAAM,iDAAiD,CAAA;AAExD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAehC,MAAM,CAAC,KAAK,UAAU,eAAe,CAEnC,EACA,UAAU,EACV,WAAW,EACX,UAAU,GAAG,oBAAoB,
|
1
|
+
{"version":3,"file":"signTransaction.js","sourceRoot":"","sources":["../../../../src/accounts/utils/signTransaction.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAEzD,OAAO,EAEL,oBAAoB,GACrB,MAAM,iDAAiD,CAAA;AAExD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAehC,MAAM,CAAC,KAAK,UAAU,eAAe,CAEnC,EACA,UAAU,EACV,WAAW,EACX,UAAU,GAAG,oBAAoB,GACmB;IAGpD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC;QAC3B,IAAI,EAAE,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACxC,UAAU;KACX,CAAC,CAAA;IACF,OAAO,UAAU,CACf,WAAW,EACX,SAAS,CAC6C,CAAA;AAC1D,CAAC"}
|
@@ -49,7 +49,7 @@ export async function estimateContractGas(client, { abi, address, args, function
|
|
49
49
|
abi: abi,
|
50
50
|
address,
|
51
51
|
args,
|
52
|
-
docsPath: '/docs/contract/
|
52
|
+
docsPath: '/docs/contract/estimateContractGas',
|
53
53
|
functionName,
|
54
54
|
sender: account?.address,
|
55
55
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"estimateContractGas.js","sourceRoot":"","sources":["../../../../src/actions/public/estimateContractGas.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAA;AAOnE,OAAO,EAEL,kBAAkB,GACnB,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AACzE,OAAO,EAA8B,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAmB1E;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAMvC,MAA2C,EAC3C,EACE,GAAG,EACH,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,GAAG,OAAO,EAC2D;IAEvE,MAAM,IAAI,GAAG,kBAAkB,CAAC;QAC9B,GAAG;QACH,IAAI;QACJ,YAAY;KACmD,CAAC,CAAA;IAClE,IAAI;QACF,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE;YACpC,IAAI;YACJ,EAAE,EAAE,OAAO;YACX,GAAG,OAAO;SACiC,CAAC,CAAA;QAC9C,OAAO,GAAG,CAAA;KACX;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC3E,MAAM,gBAAgB,CAAC,GAAgB,EAAE;YACvC,GAAG,EAAE,GAAU;YACf,OAAO;YACP,IAAI;YACJ,QAAQ,EAAE,
|
1
|
+
{"version":3,"file":"estimateContractGas.js","sourceRoot":"","sources":["../../../../src/actions/public/estimateContractGas.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAA;AAOnE,OAAO,EAEL,kBAAkB,GACnB,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AACzE,OAAO,EAA8B,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAmB1E;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAMvC,MAA2C,EAC3C,EACE,GAAG,EACH,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,GAAG,OAAO,EAC2D;IAEvE,MAAM,IAAI,GAAG,kBAAkB,CAAC;QAC9B,GAAG;QACH,IAAI;QACJ,YAAY;KACmD,CAAC,CAAA;IAClE,IAAI;QACF,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE;YACpC,IAAI;YACJ,EAAE,EAAE,OAAO;YACX,GAAG,OAAO;SACiC,CAAC,CAAA;QAC9C,OAAO,GAAG,CAAA;KACX;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC3E,MAAM,gBAAgB,CAAC,GAAgB,EAAE;YACvC,GAAG,EAAE,GAAU;YACf,OAAO;YACP,IAAI;YACJ,QAAQ,EAAE,oCAAoC;YAC9C,YAAY;YACZ,MAAM,EAAE,OAAO,EAAE,OAAO;SACzB,CAAC,CAAA;KACH;AACH,CAAC"}
|
@@ -5,7 +5,7 @@ import { getEstimateGasError } from '../../utils/errors/getEstimateGasError.js';
|
|
5
5
|
import { extract } from '../../utils/formatters/extract.js';
|
6
6
|
import { formatTransactionRequest, } from '../../utils/formatters/transactionRequest.js';
|
7
7
|
import { assertRequest, } from '../../utils/transaction/assertRequest.js';
|
8
|
-
import { prepareRequest } from '../../utils/transaction/prepareRequest.js';
|
8
|
+
import { prepareRequest, } from '../../utils/transaction/prepareRequest.js';
|
9
9
|
/**
|
10
10
|
* Estimates the gas necessary to complete a transaction without submitting it to the network.
|
11
11
|
*
|
@@ -39,7 +39,9 @@ export async function estimateGas(client, args) {
|
|
39
39
|
});
|
40
40
|
const account = parseAccount(account_);
|
41
41
|
try {
|
42
|
-
const { accessList, blockNumber, blockTag, data, gas, gasPrice, maxFeePerGas, maxPriorityFeePerGas, nonce, to, value, ...rest } = account.type === 'local'
|
42
|
+
const { accessList, blockNumber, blockTag, data, gas, gasPrice, maxFeePerGas, maxPriorityFeePerGas, nonce, to, value, ...rest } = account.type === 'local'
|
43
|
+
? (await prepareRequest(client, args))
|
44
|
+
: args;
|
43
45
|
const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined;
|
44
46
|
const block = blockNumberHex || blockTag;
|
45
47
|
assertRequest(args);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"estimateGas.js","sourceRoot":"","sources":["../../../../src/actions/public/estimateGas.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAA;AAGnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAO9D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAA;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAC3D,OAAO,EAEL,wBAAwB,GACzB,MAAM,8CAA8C,CAAA;AACrD,OAAO,EAEL,aAAa,GACd,MAAM,0CAA0C,CAAA;AACjD,OAAO,
|
1
|
+
{"version":3,"file":"estimateGas.js","sourceRoot":"","sources":["../../../../src/actions/public/estimateGas.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAA;AAGnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAO9D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAA;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAC3D,OAAO,EAEL,wBAAwB,GACzB,MAAM,8CAA8C,CAAA;AACrD,OAAO,EAEL,aAAa,GACd,MAAM,0CAA0C,CAAA;AACjD,OAAO,EAEL,cAAc,GACf,MAAM,2CAA2C,CAAA;AA6BlD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAI/B,MAA2C,EAC3C,IAA6C;IAE7C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAA;IAC/C,IAAI,CAAC,QAAQ;QACX,MAAM,IAAI,oBAAoB,CAAC;YAC7B,QAAQ,EAAE,kCAAkC;SAC7C,CAAC,CAAA;IACJ,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;IAEtC,IAAI;QACF,MAAM,EACJ,UAAU,EACV,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,GAAG,EACH,QAAQ,EACR,YAAY,EACZ,oBAAoB,EACpB,KAAK,EACL,EAAE,EACF,KAAK,EACL,GAAG,IAAI,EACR,GACC,OAAO,CAAC,IAAI,KAAK,OAAO;YACtB,CAAC,CAAE,CAAC,MAAM,cAAc,CACpB,MAAM,EACN,IAAgC,CACjC,CAA2B;YAC9B,CAAC,CAAC,IAAI,CAAA;QAEV,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACzE,MAAM,KAAK,GAAG,cAAc,IAAI,QAAQ,CAAA;QAExC,aAAa,CAAC,IAA+B,CAAC,CAAA;QAE9C,MAAM,MAAM,GACV,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM;YACpD,wBAAwB,CAAA;QAC1B,MAAM,OAAO,GAAG,MAAM,CAAC;YACrB,gFAAgF;YAChF,GAAG,OAAO,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC;YAC5B,IAAI,EAAE,OAAO,CAAC,OAAO;YACrB,UAAU;YACV,IAAI;YACJ,GAAG;YACH,QAAQ;YACR,YAAY;YACZ,oBAAoB;YACpB,KAAK;YACL,EAAE;YACF,KAAK;SACgB,CAAC,CAAA;QAExB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;YACnC,MAAM,EAAE,iBAAiB;YACzB,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;SAC7C,CAAC,CAAA;QACF,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;KACvB;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,mBAAmB,CAAC,GAAgB,EAAE;YAC1C,GAAG,IAAI;YACP,OAAO;YACP,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC,CAAA;KACH;AACH,CAAC"}
|
@@ -2,7 +2,8 @@ import { getAbiItem, } from '../../utils/abi/getAbiItem.js';
|
|
2
2
|
import { observe } from '../../utils/observe.js';
|
3
3
|
import { poll } from '../../utils/poll.js';
|
4
4
|
import { stringify } from '../../utils/stringify.js';
|
5
|
-
import {
|
5
|
+
import { DecodeLogDataMismatch } from '../../errors/abi.js';
|
6
|
+
import { DecodeLogTopicsMismatch, InvalidInputRpcError, decodeEventLog, encodeEventTopics, formatLog, } from '../../index.js';
|
6
7
|
import { createContractEventFilter, } from './createContractEventFilter.js';
|
7
8
|
import { getBlockNumber } from './getBlockNumber.js';
|
8
9
|
import { getFilterChanges } from './getFilterChanges.js';
|
@@ -38,89 +39,157 @@ import { uninstallFilter } from './uninstallFilter.js';
|
|
38
39
|
* onLogs: (logs) => console.log(logs),
|
39
40
|
* })
|
40
41
|
*/
|
41
|
-
export function watchContractEvent(client, { abi, address, args, batch = true, eventName, onError, onLogs, pollingInterval = client.pollingInterval, strict: strict_, }) {
|
42
|
-
const
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
eventName,
|
64
|
-
strict,
|
65
|
-
}));
|
66
|
-
}
|
67
|
-
catch { }
|
68
|
-
initialized = true;
|
69
|
-
return;
|
70
|
-
}
|
71
|
-
try {
|
72
|
-
let logs;
|
73
|
-
if (filter) {
|
74
|
-
logs = await getFilterChanges(client, { filter });
|
75
|
-
}
|
76
|
-
else {
|
77
|
-
// If the filter doesn't exist, we will fall back to use `getLogs`.
|
78
|
-
// The fall back exists because some RPC Providers do not support filters.
|
79
|
-
// Fetch the block number to use for `getLogs`.
|
80
|
-
const blockNumber = await getBlockNumber(client);
|
81
|
-
// If the block number has changed, we will need to fetch the logs.
|
82
|
-
// If the block number doesn't exist, we are yet to reach the first poll interval,
|
83
|
-
// so do not emit any logs.
|
84
|
-
if (previousBlockNumber && previousBlockNumber !== blockNumber) {
|
85
|
-
logs = await getLogs(client, {
|
42
|
+
export function watchContractEvent(client, { abi, address, args, batch = true, eventName, onError, onLogs, poll: poll_, pollingInterval = client.pollingInterval, strict: strict_, }) {
|
43
|
+
const enablePolling = typeof poll_ !== 'undefined' ? poll_ : client.transport.type !== 'webSocket';
|
44
|
+
const pollContractEvent = () => {
|
45
|
+
const observerId = stringify([
|
46
|
+
'watchContractEvent',
|
47
|
+
address,
|
48
|
+
args,
|
49
|
+
batch,
|
50
|
+
client.uid,
|
51
|
+
eventName,
|
52
|
+
pollingInterval,
|
53
|
+
]);
|
54
|
+
const strict = strict_ ?? false;
|
55
|
+
return observe(observerId, { onLogs, onError }, (emit) => {
|
56
|
+
let previousBlockNumber;
|
57
|
+
let filter;
|
58
|
+
let initialized = false;
|
59
|
+
const unwatch = poll(async () => {
|
60
|
+
if (!initialized) {
|
61
|
+
try {
|
62
|
+
filter = (await createContractEventFilter(client, {
|
63
|
+
abi,
|
86
64
|
address,
|
87
65
|
args,
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
66
|
+
eventName,
|
67
|
+
strict,
|
68
|
+
}));
|
69
|
+
}
|
70
|
+
catch { }
|
71
|
+
initialized = true;
|
72
|
+
return;
|
73
|
+
}
|
74
|
+
try {
|
75
|
+
let logs;
|
76
|
+
if (filter) {
|
77
|
+
logs = await getFilterChanges(client, { filter });
|
95
78
|
}
|
96
79
|
else {
|
97
|
-
|
80
|
+
// If the filter doesn't exist, we will fall back to use `getLogs`.
|
81
|
+
// The fall back exists because some RPC Providers do not support filters.
|
82
|
+
// Fetch the block number to use for `getLogs`.
|
83
|
+
const blockNumber = await getBlockNumber(client);
|
84
|
+
// If the block number has changed, we will need to fetch the logs.
|
85
|
+
// If the block number doesn't exist, we are yet to reach the first poll interval,
|
86
|
+
// so do not emit any logs.
|
87
|
+
if (previousBlockNumber && previousBlockNumber !== blockNumber) {
|
88
|
+
logs = await getLogs(client, {
|
89
|
+
address,
|
90
|
+
args,
|
91
|
+
fromBlock: previousBlockNumber + 1n,
|
92
|
+
toBlock: blockNumber,
|
93
|
+
event: getAbiItem({
|
94
|
+
abi,
|
95
|
+
name: eventName,
|
96
|
+
}),
|
97
|
+
});
|
98
|
+
}
|
99
|
+
else {
|
100
|
+
logs = [];
|
101
|
+
}
|
102
|
+
previousBlockNumber = blockNumber;
|
98
103
|
}
|
99
|
-
|
104
|
+
if (logs.length === 0)
|
105
|
+
return;
|
106
|
+
if (batch)
|
107
|
+
emit.onLogs(logs);
|
108
|
+
else
|
109
|
+
logs.forEach((log) => emit.onLogs([log]));
|
100
110
|
}
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
111
|
+
catch (err) {
|
112
|
+
// If a filter has been set and gets uninstalled, providers will throw an InvalidInput error.
|
113
|
+
// Reinitalize the filter when this occurs
|
114
|
+
if (filter && err instanceof InvalidInputRpcError)
|
115
|
+
initialized = false;
|
116
|
+
emit.onError?.(err);
|
117
|
+
}
|
118
|
+
}, {
|
119
|
+
emitOnBegin: true,
|
120
|
+
interval: pollingInterval,
|
121
|
+
});
|
122
|
+
return async () => {
|
123
|
+
if (filter)
|
124
|
+
await uninstallFilter(client, { filter });
|
125
|
+
unwatch();
|
126
|
+
};
|
127
|
+
});
|
128
|
+
};
|
129
|
+
const subscribeContractEvent = () => {
|
130
|
+
let active = true;
|
131
|
+
let unsubscribe = () => (active = false);
|
132
|
+
(async () => {
|
133
|
+
try {
|
134
|
+
const topics = eventName
|
135
|
+
? encodeEventTopics({
|
136
|
+
abi: abi,
|
137
|
+
eventName: eventName,
|
138
|
+
args,
|
139
|
+
})
|
140
|
+
: [];
|
141
|
+
const { unsubscribe: unsubscribe_ } = await client.transport.subscribe({
|
142
|
+
params: ['logs', { address, topics }],
|
143
|
+
onData(data) {
|
144
|
+
if (!active)
|
145
|
+
return;
|
146
|
+
const log = data.result;
|
147
|
+
try {
|
148
|
+
const { eventName, args } = decodeEventLog({
|
149
|
+
abi: abi,
|
150
|
+
data: log.data,
|
151
|
+
topics: log.topics,
|
152
|
+
strict: strict_,
|
153
|
+
});
|
154
|
+
const formatted = formatLog(log, {
|
155
|
+
args,
|
156
|
+
eventName: eventName,
|
157
|
+
});
|
158
|
+
onLogs([formatted]);
|
159
|
+
}
|
160
|
+
catch (err) {
|
161
|
+
let eventName;
|
162
|
+
let isUnnamed;
|
163
|
+
if (err instanceof DecodeLogDataMismatch ||
|
164
|
+
err instanceof DecodeLogTopicsMismatch) {
|
165
|
+
// If strict mode is on, and log data/topics do not match event definition, skip.
|
166
|
+
if (strict_)
|
167
|
+
return;
|
168
|
+
eventName = err.abiItem.name;
|
169
|
+
isUnnamed = err.abiItem.inputs?.some((x) => !('name' in x && x.name));
|
170
|
+
}
|
171
|
+
// Set args to empty if there is an error decoding (e.g. indexed/non-indexed params mismatch).
|
172
|
+
const formatted = formatLog(log, {
|
173
|
+
args: isUnnamed ? [] : {},
|
174
|
+
eventName,
|
175
|
+
});
|
176
|
+
onLogs([formatted]);
|
177
|
+
}
|
178
|
+
},
|
179
|
+
onError(error) {
|
180
|
+
onError?.(error);
|
181
|
+
},
|
182
|
+
});
|
183
|
+
unsubscribe = unsubscribe_;
|
184
|
+
if (!active)
|
185
|
+
unsubscribe();
|
107
186
|
}
|
108
187
|
catch (err) {
|
109
|
-
|
110
|
-
// Reinitalize the filter when this occurs
|
111
|
-
if (filter && err instanceof InvalidInputRpcError)
|
112
|
-
initialized = false;
|
113
|
-
emit.onError?.(err);
|
188
|
+
onError?.(err);
|
114
189
|
}
|
115
|
-
}
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
return async () => {
|
120
|
-
if (filter)
|
121
|
-
await uninstallFilter(client, { filter });
|
122
|
-
unwatch();
|
123
|
-
};
|
124
|
-
});
|
190
|
+
})();
|
191
|
+
return unsubscribe;
|
192
|
+
};
|
193
|
+
return enablePolling ? pollContractEvent() : subscribeContractEvent();
|
125
194
|
}
|
126
195
|
//# sourceMappingURL=watchContractEvent.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"watchContractEvent.js","sourceRoot":"","sources":["../../../../src/actions/public/watchContractEvent.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"watchContractEvent.js","sourceRoot":"","sources":["../../../../src/actions/public/watchContractEvent.ts"],"names":[],"mappings":"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"}
|