viem 1.9.5 → 1.10.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/actions/wallet/signTypedData.js +1 -13
- package/dist/cjs/actions/wallet/signTypedData.js.map +1 -1
- package/dist/cjs/chains/definitions/base.js +1 -3
- package/dist/cjs/chains/definitions/base.js.map +1 -1
- package/dist/cjs/chains/definitions/baseGoerli.js +1 -3
- package/dist/cjs/chains/definitions/baseGoerli.js.map +1 -1
- package/dist/cjs/chains/definitions/meter.js +22 -0
- package/dist/cjs/chains/definitions/meter.js.map +1 -0
- package/dist/cjs/chains/definitions/meterTestnet.js +25 -0
- package/dist/cjs/chains/definitions/meterTestnet.js.map +1 -0
- package/dist/cjs/chains/definitions/opBNB.js +28 -0
- package/dist/cjs/chains/definitions/opBNB.js.map +1 -0
- package/dist/cjs/chains/definitions/opBNBTestnet.js +29 -0
- package/dist/cjs/chains/definitions/opBNBTestnet.js.map +1 -0
- package/dist/cjs/chains/definitions/optimism.js +0 -2
- package/dist/cjs/chains/definitions/optimism.js.map +1 -1
- package/dist/cjs/chains/definitions/optimismGoerli.js +0 -2
- package/dist/cjs/chains/definitions/optimismGoerli.js.map +1 -1
- package/dist/cjs/chains/definitions/plinga.js +31 -0
- package/dist/cjs/chains/definitions/plinga.js.map +1 -0
- package/dist/cjs/chains/definitions/scrollSepolia.js +6 -0
- package/dist/cjs/chains/definitions/scrollSepolia.js.map +1 -1
- package/dist/cjs/chains/definitions/zora.js +0 -2
- package/dist/cjs/chains/definitions/zora.js.map +1 -1
- package/dist/cjs/chains/definitions/zoraTestnet.js +0 -2
- package/dist/cjs/chains/definitions/zoraTestnet.js.map +1 -1
- package/dist/cjs/chains/index.js +12 -2
- package/dist/cjs/chains/index.js.map +1 -1
- package/dist/cjs/errors/node.js +1 -1
- package/dist/cjs/errors/node.js.map +1 -1
- package/dist/cjs/errors/version.js +1 -1
- package/dist/cjs/errors/version.js.map +1 -1
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/utils/buildRequest.js +2 -0
- package/dist/cjs/utils/buildRequest.js.map +1 -1
- package/dist/cjs/utils/errors/getCallError.js +4 -3
- package/dist/cjs/utils/errors/getCallError.js.map +1 -1
- package/dist/cjs/utils/errors/getContractError.js +2 -1
- package/dist/cjs/utils/errors/getContractError.js.map +1 -1
- package/dist/cjs/utils/errors/getEstimateGasError.js +4 -3
- package/dist/cjs/utils/errors/getEstimateGasError.js.map +1 -1
- package/dist/cjs/utils/errors/getNodeError.js +16 -10
- package/dist/cjs/utils/errors/getNodeError.js.map +1 -1
- package/dist/cjs/utils/errors/getTransactionError.js +4 -3
- package/dist/cjs/utils/errors/getTransactionError.js.map +1 -1
- package/dist/cjs/utils/rpc.js +10 -16
- package/dist/cjs/utils/rpc.js.map +1 -1
- package/dist/cjs/utils/signature/hashTypedData.js +3 -14
- package/dist/cjs/utils/signature/hashTypedData.js.map +1 -1
- package/dist/cjs/utils/typedData.js +27 -1
- package/dist/cjs/utils/typedData.js.map +1 -1
- package/dist/esm/actions/wallet/signTypedData.js +2 -14
- package/dist/esm/actions/wallet/signTypedData.js.map +1 -1
- package/dist/esm/chains/definitions/base.js +1 -3
- package/dist/esm/chains/definitions/base.js.map +1 -1
- package/dist/esm/chains/definitions/baseGoerli.js +1 -3
- package/dist/esm/chains/definitions/baseGoerli.js.map +1 -1
- package/dist/esm/chains/definitions/meter.js +19 -0
- package/dist/esm/chains/definitions/meter.js.map +1 -0
- package/dist/esm/chains/definitions/meterTestnet.js +22 -0
- package/dist/esm/chains/definitions/meterTestnet.js.map +1 -0
- package/dist/esm/chains/definitions/opBNB.js +25 -0
- package/dist/esm/chains/definitions/opBNB.js.map +1 -0
- package/dist/esm/chains/definitions/opBNBTestnet.js +26 -0
- package/dist/esm/chains/definitions/opBNBTestnet.js.map +1 -0
- package/dist/esm/chains/definitions/optimism.js +0 -2
- package/dist/esm/chains/definitions/optimism.js.map +1 -1
- package/dist/esm/chains/definitions/optimismGoerli.js +0 -2
- package/dist/esm/chains/definitions/optimismGoerli.js.map +1 -1
- package/dist/esm/chains/definitions/plinga.js +28 -0
- package/dist/esm/chains/definitions/plinga.js.map +1 -0
- package/dist/esm/chains/definitions/scrollSepolia.js +6 -0
- package/dist/esm/chains/definitions/scrollSepolia.js.map +1 -1
- package/dist/esm/chains/definitions/zora.js +0 -2
- package/dist/esm/chains/definitions/zora.js.map +1 -1
- package/dist/esm/chains/definitions/zoraTestnet.js +0 -2
- package/dist/esm/chains/definitions/zoraTestnet.js.map +1 -1
- package/dist/esm/chains/index.js +5 -0
- package/dist/esm/chains/index.js.map +1 -1
- package/dist/esm/errors/node.js +1 -1
- package/dist/esm/errors/node.js.map +1 -1
- package/dist/esm/errors/version.js +1 -1
- package/dist/esm/errors/version.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/utils/buildRequest.js +4 -0
- package/dist/esm/utils/buildRequest.js.map +1 -1
- package/dist/esm/utils/errors/getCallError.js +5 -4
- package/dist/esm/utils/errors/getCallError.js.map +1 -1
- package/dist/esm/utils/errors/getContractError.js +2 -1
- package/dist/esm/utils/errors/getContractError.js.map +1 -1
- package/dist/esm/utils/errors/getEstimateGasError.js +5 -4
- package/dist/esm/utils/errors/getEstimateGasError.js.map +1 -1
- package/dist/esm/utils/errors/getNodeError.js +16 -10
- package/dist/esm/utils/errors/getNodeError.js.map +1 -1
- package/dist/esm/utils/errors/getTransactionError.js +5 -4
- package/dist/esm/utils/errors/getTransactionError.js.map +1 -1
- package/dist/esm/utils/rpc.js +7 -16
- package/dist/esm/utils/rpc.js.map +1 -1
- package/dist/esm/utils/signature/hashTypedData.js +3 -15
- package/dist/esm/utils/signature/hashTypedData.js.map +1 -1
- package/dist/esm/utils/typedData.js +24 -0
- package/dist/esm/utils/typedData.js.map +1 -1
- package/dist/types/actions/wallet/signTypedData.d.ts.map +1 -1
- package/dist/types/chains/definitions/base.d.ts +1 -1
- package/dist/types/chains/definitions/base.d.ts.map +1 -1
- package/dist/types/chains/definitions/baseGoerli.d.ts +1 -1
- package/dist/types/chains/definitions/baseGoerli.d.ts.map +1 -1
- package/dist/types/chains/definitions/meter.d.ts +25 -0
- package/dist/types/chains/definitions/meter.d.ts.map +1 -0
- package/dist/types/chains/definitions/meterTestnet.d.ts +25 -0
- package/dist/types/chains/definitions/meterTestnet.d.ts.map +1 -0
- package/dist/types/chains/definitions/opBNB.d.ts +31 -0
- package/dist/types/chains/definitions/opBNB.d.ts.map +1 -0
- package/dist/types/chains/definitions/opBNBTestnet.d.ts +32 -0
- package/dist/types/chains/definitions/opBNBTestnet.d.ts.map +1 -0
- package/dist/types/chains/definitions/optimism.d.ts.map +1 -1
- package/dist/types/chains/definitions/optimismGoerli.d.ts.map +1 -1
- package/dist/types/chains/definitions/plinga.d.ts +31 -0
- package/dist/types/chains/definitions/plinga.d.ts.map +1 -0
- package/dist/types/chains/definitions/scrollSepolia.d.ts +6 -0
- package/dist/types/chains/definitions/scrollSepolia.d.ts.map +1 -1
- package/dist/types/chains/definitions/zora.d.ts.map +1 -1
- package/dist/types/chains/definitions/zoraTestnet.d.ts.map +1 -1
- package/dist/types/chains/index.d.ts +5 -0
- package/dist/types/chains/index.d.ts.map +1 -1
- package/dist/types/errors/version.d.ts +1 -1
- package/dist/types/errors/version.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types/chain.d.ts +4 -0
- package/dist/types/types/chain.d.ts.map +1 -1
- package/dist/types/utils/buildRequest.d.ts.map +1 -1
- package/dist/types/utils/errors/getCallError.d.ts.map +1 -1
- package/dist/types/utils/errors/getContractError.d.ts.map +1 -1
- package/dist/types/utils/errors/getEstimateGasError.d.ts.map +1 -1
- package/dist/types/utils/errors/getNodeError.d.ts +1 -1
- package/dist/types/utils/errors/getNodeError.d.ts.map +1 -1
- package/dist/types/utils/errors/getTransactionError.d.ts.map +1 -1
- package/dist/types/utils/rpc.d.ts +3 -1
- package/dist/types/utils/rpc.d.ts.map +1 -1
- package/dist/types/utils/signature/hashTypedData.d.ts +10 -1
- package/dist/types/utils/signature/hashTypedData.d.ts.map +1 -1
- package/dist/types/utils/signature/verifyMessage.d.ts +2 -2
- package/dist/types/utils/signature/verifyMessage.d.ts.map +1 -1
- package/dist/types/utils/typedData.d.ts +8 -1
- package/dist/types/utils/typedData.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/actions/wallet/signTypedData.ts +5 -14
- package/src/chains/definitions/base.ts +1 -3
- package/src/chains/definitions/baseGoerli.ts +1 -3
- package/src/chains/definitions/meter.ts +19 -0
- package/src/chains/definitions/meterTestnet.ts +22 -0
- package/src/chains/definitions/opBNB.ts +26 -0
- package/src/chains/definitions/opBNBTestnet.ts +26 -0
- package/src/chains/definitions/optimism.ts +0 -2
- package/src/chains/definitions/optimismGoerli.ts +0 -2
- package/src/chains/definitions/plinga.ts +28 -0
- package/src/chains/definitions/scrollSepolia.ts +6 -0
- package/src/chains/definitions/zora.ts +0 -2
- package/src/chains/definitions/zoraTestnet.ts +0 -2
- package/src/chains/index.ts +5 -0
- package/src/errors/node.ts +1 -1
- package/src/errors/version.ts +1 -1
- package/src/index.ts +1 -1
- package/src/types/chain.ts +2 -0
- package/src/utils/buildRequest.ts +4 -0
- package/src/utils/errors/getCallError.ts +4 -8
- package/src/utils/errors/getContractError.ts +2 -1
- package/src/utils/errors/getEstimateGasError.ts +4 -8
- package/src/utils/errors/getNodeError.ts +18 -13
- package/src/utils/errors/getTransactionError.ts +4 -8
- package/src/utils/rpc.ts +9 -20
- package/src/utils/signature/hashTypedData.ts +3 -15
- package/src/utils/signature/verifyMessage.ts +2 -2
- package/src/utils/typedData.ts +34 -1
- package/chains/dist/cjs/celo/formatters.js +0 -57
- package/chains/dist/cjs/celo/formatters.js.map +0 -1
- package/chains/dist/cjs/celo/parsers.js +0 -72
- package/chains/dist/cjs/celo/parsers.js.map +0 -1
- package/chains/dist/cjs/celo/serializers.js +0 -75
- package/chains/dist/cjs/celo/serializers.js.map +0 -1
- package/chains/dist/cjs/celo/types.js +0 -3
- package/chains/dist/cjs/celo/types.js.map +0 -1
- package/chains/dist/cjs/index.js +0 -135
- package/chains/dist/cjs/index.js.map +0 -1
- package/chains/dist/cjs/optimism/fees.js +0 -7
- package/chains/dist/cjs/optimism/fees.js.map +0 -1
- package/chains/dist/cjs/optimism/formatters.js +0 -51
- package/chains/dist/cjs/optimism/formatters.js.map +0 -1
- package/chains/dist/cjs/optimism/types.js +0 -3
- package/chains/dist/cjs/optimism/types.js.map +0 -1
- package/chains/dist/cjs/types.js +0 -3
- package/chains/dist/cjs/types.js.map +0 -1
- package/chains/dist/cjs/utils.js +0 -23
- package/chains/dist/cjs/utils.js.map +0 -1
- package/chains/dist/tsconfig.build.tsbuildinfo +0 -1
- package/chains/tsconfig.tsbuildinfo +0 -1
- package/dist/cjs/chains/optimism/fees.js +0 -7
- package/dist/cjs/chains/optimism/fees.js.map +0 -1
- package/dist/esm/chains/optimism/fees.js +0 -4
- package/dist/esm/chains/optimism/fees.js.map +0 -1
- package/dist/types/chains/optimism/fees.d.ts +0 -4
- package/dist/types/chains/optimism/fees.d.ts.map +0 -1
- package/src/chains/optimism/fees.ts +0 -5
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"hashTypedData.d.ts","sourceRoot":"","sources":["../../../../src/utils/signature/hashTypedData.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAgB,SAAS,
|
1
|
+
{"version":3,"file":"hashTypedData.d.ts","sourceRoot":"","sources":["../../../../src/utils/signature/hashTypedData.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAgB,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEvE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAOnE,KAAK,mBAAmB,GAAG;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,uBAAuB,CACjC,UAAU,SAAS,SAAS,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAAG,SAAS,EACrE,YAAY,SAAS,MAAM,GAAG,MAAM,IAClC,mBAAmB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;AAEjD,MAAM,MAAM,uBAAuB,GAAG,GAAG,CAAA;AAEzC,wBAAgB,aAAa,CAC3B,KAAK,CAAC,UAAU,SAAS,SAAS,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,EAC/D,YAAY,SAAS,MAAM,GAAG,MAAM,EACpC,EACA,MAAM,EAAE,OAAO,EACf,OAAO,EACP,WAAW,EACX,KAAK,EAAE,MAAM,GACd,EAAE,uBAAuB,CAAC,UAAU,EAAE,YAAY,CAAC,GAAG,uBAAuB,CAoC7E;AAED,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,KAAK,GACN,EAAE;IACD,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAA;CAC7C,iBAMA"}
|
@@ -1,10 +1,10 @@
|
|
1
1
|
import type { Address } from 'abitype';
|
2
|
-
import type { ByteArray, Hex } from '../../types/misc.js';
|
2
|
+
import type { ByteArray, Hex, SignableMessage } from '../../types/misc.js';
|
3
3
|
export type VerifyMessageParameters = {
|
4
4
|
/** The address that signed the original message. */
|
5
5
|
address: Address;
|
6
6
|
/** The message to be verified. */
|
7
|
-
message:
|
7
|
+
message: SignableMessage;
|
8
8
|
/** The signature that was generated by signing the message with the address's private key. */
|
9
9
|
signature: Hex | ByteArray;
|
10
10
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"verifyMessage.d.ts","sourceRoot":"","sources":["../../../../src/utils/signature/verifyMessage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;
|
1
|
+
{"version":3,"file":"verifyMessage.d.ts","sourceRoot":"","sources":["../../../../src/utils/signature/verifyMessage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAM1E,MAAM,MAAM,uBAAuB,GAAG;IACpC,oDAAoD;IACpD,OAAO,EAAE,OAAO,CAAA;IAChB,kCAAkC;IAClC,OAAO,EAAE,eAAe,CAAA;IACxB,8FAA8F;IAC9F,SAAS,EAAE,GAAG,GAAG,SAAS,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAA;AAE7C;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CAAC,EAClC,OAAO,EACP,OAAO,EACP,SAAS,GACV,EAAE,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAK5D"}
|
@@ -1,6 +1,13 @@
|
|
1
|
-
import type { TypedData } from 'abitype';
|
1
|
+
import type { TypedData, TypedDataDomain, TypedDataParameter } from 'abitype';
|
2
|
+
import type { Hex } from '../types/misc.js';
|
2
3
|
import type { TypedDataDefinition } from '../types/typedData.js';
|
3
4
|
export declare function validateTypedData<const TTypedData extends TypedData | {
|
4
5
|
[key: string]: unknown;
|
5
6
|
}, TPrimaryType extends string = string>({ domain, message, primaryType, types: types_, }: TypedDataDefinition<TTypedData, TPrimaryType>): void;
|
7
|
+
export declare function getTypesForEIP712Domain({ domain, }: {
|
8
|
+
domain?: TypedDataDomain;
|
9
|
+
}): TypedDataParameter[];
|
10
|
+
export declare function domainSeparator({ domain }: {
|
11
|
+
domain: TypedDataDomain;
|
12
|
+
}): Hex;
|
6
13
|
//# sourceMappingURL=typedData.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"typedData.d.ts","sourceRoot":"","sources":["../../../src/utils/typedData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
1
|
+
{"version":3,"file":"typedData.d.ts","sourceRoot":"","sources":["../../../src/utils/typedData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,eAAe,EACf,kBAAkB,EAEnB,MAAM,SAAS,CAAA;AAIhB,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAQhE,wBAAgB,iBAAiB,CAC/B,KAAK,CAAC,UAAU,SAAS,SAAS,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,EAC/D,YAAY,SAAS,MAAM,GAAG,MAAM,EACpC,EACA,MAAM,EACN,OAAO,EACP,WAAW,EACX,KAAK,EAAE,MAAM,GACd,EAAE,mBAAmB,CAAC,UAAU,EAAE,YAAY,CAAC,QAoD/C;AAED,wBAAgB,uBAAuB,CAAC,EACtC,MAAM,GACP,EAAE;IAAE,MAAM,CAAC,EAAE,eAAe,CAAA;CAAE,GAAG,kBAAkB,EAAE,CAcrD;AAED,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,eAAe,CAAA;CAAE,GAAG,GAAG,CAO5E"}
|
package/package.json
CHANGED
@@ -11,7 +11,10 @@ import type { Hex } from '../../types/misc.js'
|
|
11
11
|
import type { TypedDataDefinition } from '../../types/typedData.js'
|
12
12
|
import { isHex } from '../../utils/data/isHex.js'
|
13
13
|
import { stringify } from '../../utils/stringify.js'
|
14
|
-
import {
|
14
|
+
import {
|
15
|
+
getTypesForEIP712Domain,
|
16
|
+
validateTypedData,
|
17
|
+
} from '../../utils/typedData.js'
|
15
18
|
|
16
19
|
export type SignTypedDataParameters<
|
17
20
|
TTypedData extends TypedData | { [key: string]: unknown } = TypedData,
|
@@ -142,19 +145,7 @@ export async function signTypedData<
|
|
142
145
|
const account = parseAccount(account_)
|
143
146
|
|
144
147
|
const types = {
|
145
|
-
EIP712Domain:
|
146
|
-
typeof domain?.name === 'string' && { name: 'name', type: 'string' },
|
147
|
-
domain?.version && { name: 'version', type: 'string' },
|
148
|
-
typeof domain?.chainId === 'number' && {
|
149
|
-
name: 'chainId',
|
150
|
-
type: 'uint256',
|
151
|
-
},
|
152
|
-
domain?.verifyingContract && {
|
153
|
-
name: 'verifyingContract',
|
154
|
-
type: 'address',
|
155
|
-
},
|
156
|
-
domain?.salt && { name: 'salt', type: 'bytes32' },
|
157
|
-
].filter(Boolean),
|
148
|
+
EIP712Domain: getTypesForEIP712Domain({ domain }),
|
158
149
|
...(types_ as TTypedData),
|
159
150
|
}
|
160
151
|
|
@@ -1,5 +1,4 @@
|
|
1
1
|
import { defineChain } from '../../utils/chain.js'
|
2
|
-
import { feesOptimism } from '../optimism/fees.js'
|
3
2
|
import { formattersOptimism } from '../optimism/formatters.js'
|
4
3
|
|
5
4
|
export const base = /*#__PURE__*/ defineChain(
|
@@ -7,7 +6,7 @@ export const base = /*#__PURE__*/ defineChain(
|
|
7
6
|
id: 8453,
|
8
7
|
network: 'base',
|
9
8
|
name: 'Base',
|
10
|
-
nativeCurrency: { name: '
|
9
|
+
nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
|
11
10
|
rpcUrls: {
|
12
11
|
default: {
|
13
12
|
http: ['https://mainnet.base.org'],
|
@@ -38,7 +37,6 @@ export const base = /*#__PURE__*/ defineChain(
|
|
38
37
|
},
|
39
38
|
},
|
40
39
|
{
|
41
|
-
fees: feesOptimism,
|
42
40
|
formatters: formattersOptimism,
|
43
41
|
},
|
44
42
|
)
|
@@ -1,5 +1,4 @@
|
|
1
1
|
import { defineChain } from '../../utils/chain.js'
|
2
|
-
import { feesOptimism } from '../optimism/fees.js'
|
3
2
|
import { formattersOptimism } from '../optimism/formatters.js'
|
4
3
|
|
5
4
|
export const baseGoerli = /*#__PURE__*/ defineChain(
|
@@ -7,7 +6,7 @@ export const baseGoerli = /*#__PURE__*/ defineChain(
|
|
7
6
|
id: 84531,
|
8
7
|
network: 'base-goerli',
|
9
8
|
name: 'Base Goerli',
|
10
|
-
nativeCurrency: { name: '
|
9
|
+
nativeCurrency: { name: 'Goerli Ether', symbol: 'ETH', decimals: 18 },
|
11
10
|
rpcUrls: {
|
12
11
|
default: {
|
13
12
|
http: ['https://goerli.base.org'],
|
@@ -36,7 +35,6 @@ export const baseGoerli = /*#__PURE__*/ defineChain(
|
|
36
35
|
sourceId: 5, // goerli
|
37
36
|
},
|
38
37
|
{
|
39
|
-
fees: feesOptimism,
|
40
38
|
formatters: formattersOptimism,
|
41
39
|
},
|
42
40
|
)
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import { defineChain } from '../../utils/chain.js'
|
2
|
+
|
3
|
+
export const meter = /*#__PURE__*/ defineChain({
|
4
|
+
id: 82,
|
5
|
+
name: 'Meter',
|
6
|
+
network: 'meter',
|
7
|
+
nativeCurrency: {
|
8
|
+
decimals: 18,
|
9
|
+
name: 'MTR',
|
10
|
+
symbol: 'MTR',
|
11
|
+
},
|
12
|
+
rpcUrls: {
|
13
|
+
default: { http: ['https://rpc.meter.io'] },
|
14
|
+
public: { http: ['https://rpc.meter.io'] },
|
15
|
+
},
|
16
|
+
blockExplorers: {
|
17
|
+
default: { name: 'MeterScan', url: 'https://scan.meter.io' },
|
18
|
+
},
|
19
|
+
})
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import { defineChain } from '../../utils/chain.js'
|
2
|
+
|
3
|
+
export const meterTestnet = /*#__PURE__*/ defineChain({
|
4
|
+
id: 83,
|
5
|
+
name: 'Meter Testnet',
|
6
|
+
network: 'meter-testnet',
|
7
|
+
nativeCurrency: {
|
8
|
+
decimals: 18,
|
9
|
+
name: 'MTR',
|
10
|
+
symbol: 'MTR',
|
11
|
+
},
|
12
|
+
rpcUrls: {
|
13
|
+
default: { http: ['https://rpctest.meter.io'] },
|
14
|
+
public: { http: ['https://rpctest.meter.io'] },
|
15
|
+
},
|
16
|
+
blockExplorers: {
|
17
|
+
default: {
|
18
|
+
name: 'MeterTestnetScan',
|
19
|
+
url: 'https://scan-warringstakes.meter.io',
|
20
|
+
},
|
21
|
+
},
|
22
|
+
})
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import { defineChain } from '../../utils/chain.js'
|
2
|
+
|
3
|
+
export const opBNB = /*#__PURE__*/ defineChain({
|
4
|
+
id: 204,
|
5
|
+
name: 'opBNB',
|
6
|
+
network: 'opBNB Mainnet',
|
7
|
+
nativeCurrency: {
|
8
|
+
name: 'BNB',
|
9
|
+
symbol: 'BNB',
|
10
|
+
decimals: 18,
|
11
|
+
},
|
12
|
+
rpcUrls: {
|
13
|
+
public: { http: ['https://opbnb-mainnet-rpc.bnbchain.org'] },
|
14
|
+
default: { http: ['https://opbnb-mainnet-rpc.bnbchain.org'] },
|
15
|
+
},
|
16
|
+
blockExplorers: {
|
17
|
+
default: { name: 'opbnbscan', url: 'https://mainnet.opbnbscan.com' },
|
18
|
+
},
|
19
|
+
|
20
|
+
contracts: {
|
21
|
+
multicall3: {
|
22
|
+
address: '0xcA11bde05977b3631167028862bE2a173976CA11',
|
23
|
+
blockCreated: 512881,
|
24
|
+
},
|
25
|
+
},
|
26
|
+
})
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import { defineChain } from '../../utils/chain.js'
|
2
|
+
|
3
|
+
export const opBNBTestnet = /*#__PURE__*/ defineChain({
|
4
|
+
id: 5611,
|
5
|
+
name: 'opBNB Testnet',
|
6
|
+
network: 'opBNB Testnet',
|
7
|
+
nativeCurrency: {
|
8
|
+
decimals: 18,
|
9
|
+
name: 'tBNB',
|
10
|
+
symbol: 'tBNB',
|
11
|
+
},
|
12
|
+
rpcUrls: {
|
13
|
+
public: { http: ['https://opbnb-testnet-rpc.bnbchain.org'] },
|
14
|
+
default: { http: ['https://opbnb-testnet-rpc.bnbchain.org'] },
|
15
|
+
},
|
16
|
+
blockExplorers: {
|
17
|
+
default: { name: 'opbnbscan', url: 'https://opbnbscan.com' },
|
18
|
+
},
|
19
|
+
contracts: {
|
20
|
+
multicall3: {
|
21
|
+
address: '0xcA11bde05977b3631167028862bE2a173976CA11',
|
22
|
+
blockCreated: 3705108,
|
23
|
+
},
|
24
|
+
},
|
25
|
+
testnet: true,
|
26
|
+
})
|
@@ -1,5 +1,4 @@
|
|
1
1
|
import { defineChain } from '../../utils/chain.js'
|
2
|
-
import { feesOptimism } from '../optimism/fees.js'
|
3
2
|
import { formattersOptimism } from '../optimism/formatters.js'
|
4
3
|
|
5
4
|
export const optimism = /*#__PURE__*/ defineChain(
|
@@ -42,7 +41,6 @@ export const optimism = /*#__PURE__*/ defineChain(
|
|
42
41
|
},
|
43
42
|
},
|
44
43
|
{
|
45
|
-
fees: feesOptimism,
|
46
44
|
formatters: formattersOptimism,
|
47
45
|
},
|
48
46
|
)
|
@@ -1,5 +1,4 @@
|
|
1
1
|
import { defineChain } from '../../utils/chain.js'
|
2
|
-
import { feesOptimism } from '../optimism/fees.js'
|
3
2
|
import { formattersOptimism } from '../optimism/formatters.js'
|
4
3
|
|
5
4
|
export const optimismGoerli = /*#__PURE__*/ defineChain(
|
@@ -43,7 +42,6 @@ export const optimismGoerli = /*#__PURE__*/ defineChain(
|
|
43
42
|
testnet: true,
|
44
43
|
},
|
45
44
|
{
|
46
|
-
fees: feesOptimism,
|
47
45
|
formatters: formattersOptimism,
|
48
46
|
},
|
49
47
|
)
|
@@ -0,0 +1,28 @@
|
|
1
|
+
import { defineChain } from '../../utils/chain.js'
|
2
|
+
|
3
|
+
export const plinga = /*#__PURE__*/ defineChain({
|
4
|
+
id: 242,
|
5
|
+
name: 'Plinga',
|
6
|
+
network: 'plinga',
|
7
|
+
nativeCurrency: { name: 'Plinga', symbol: 'PLINGA', decimals: 18 },
|
8
|
+
rpcUrls: {
|
9
|
+
default: {
|
10
|
+
http: ['https://rpcurl.mainnet.plgchain.com'],
|
11
|
+
},
|
12
|
+
public: {
|
13
|
+
http: ['https://rpcurl.mainnet.plgchain.com'],
|
14
|
+
},
|
15
|
+
},
|
16
|
+
blockExplorers: {
|
17
|
+
default: {
|
18
|
+
name: 'Plgscan',
|
19
|
+
url: 'https://www.plgscan.com',
|
20
|
+
},
|
21
|
+
},
|
22
|
+
contracts: {
|
23
|
+
multicall3: {
|
24
|
+
address: '0x0989576160f2e7092908BB9479631b901060b6e4',
|
25
|
+
blockCreated: 204489,
|
26
|
+
},
|
27
|
+
},
|
28
|
+
})
|
@@ -21,5 +21,11 @@ export const scrollSepolia = /*#__PURE__*/ defineChain({
|
|
21
21
|
url: 'https://sepolia-blockscout.scroll.io',
|
22
22
|
},
|
23
23
|
},
|
24
|
+
contracts: {
|
25
|
+
multicall3: {
|
26
|
+
address: '0xca11bde05977b3631167028862be2a173976ca11',
|
27
|
+
blockCreated: 9473,
|
28
|
+
},
|
29
|
+
},
|
24
30
|
testnet: true,
|
25
31
|
})
|
@@ -1,5 +1,4 @@
|
|
1
1
|
import { defineChain } from '../../utils/chain.js'
|
2
|
-
import { feesOptimism } from '../optimism/fees.js'
|
3
2
|
import { formattersOptimism } from '../optimism/formatters.js'
|
4
3
|
|
5
4
|
export const zora = /*#__PURE__*/ defineChain(
|
@@ -33,7 +32,6 @@ export const zora = /*#__PURE__*/ defineChain(
|
|
33
32
|
},
|
34
33
|
},
|
35
34
|
{
|
36
|
-
fees: feesOptimism,
|
37
35
|
formatters: formattersOptimism,
|
38
36
|
},
|
39
37
|
)
|
@@ -1,5 +1,4 @@
|
|
1
1
|
import { defineChain } from '../../utils/chain.js'
|
2
|
-
import { feesOptimism } from '../optimism/fees.js'
|
3
2
|
import { formattersOptimism } from '../optimism/formatters.js'
|
4
3
|
|
5
4
|
export const zoraTestnet = /*#__PURE__*/ defineChain(
|
@@ -37,7 +36,6 @@ export const zoraTestnet = /*#__PURE__*/ defineChain(
|
|
37
36
|
testnet: true,
|
38
37
|
},
|
39
38
|
{
|
40
|
-
fees: feesOptimism,
|
41
39
|
formatters: formattersOptimism,
|
42
40
|
},
|
43
41
|
)
|
package/src/chains/index.ts
CHANGED
@@ -65,6 +65,8 @@ export { localhost } from './definitions/localhost.js'
|
|
65
65
|
export { mainnet } from './definitions/mainnet.js'
|
66
66
|
export { mantle } from './definitions/mantle.js'
|
67
67
|
export { mantleTestnet } from './definitions/mantleTestnet.js'
|
68
|
+
export { meter } from './definitions/meter.js'
|
69
|
+
export { meterTestnet } from './definitions/meterTestnet.js'
|
68
70
|
export { metis } from './definitions/metis.js'
|
69
71
|
export { metisGoerli } from './definitions/metisGoerli.js'
|
70
72
|
export { mev } from './definitions/mev.js'
|
@@ -80,6 +82,9 @@ export { oasys } from './definitions/oasys.js'
|
|
80
82
|
export { okc } from './definitions/okc.js'
|
81
83
|
export { optimism } from './definitions/optimism.js'
|
82
84
|
export { optimismGoerli } from './definitions/optimismGoerli.js'
|
85
|
+
export { opBNB } from './definitions/opBNB.js'
|
86
|
+
export { opBNBTestnet } from './definitions/opBNBTestnet.js'
|
87
|
+
export { plinga } from './definitions/plinga.js'
|
83
88
|
export { polygon } from './definitions/polygon.js'
|
84
89
|
export { polygonMumbai } from './definitions/polygonMumbai.js'
|
85
90
|
export { polygonZkEvmTestnet } from './definitions/polygonZkEvmTestnet.js'
|
package/src/errors/node.ts
CHANGED
@@ -216,7 +216,7 @@ export class UnknownNodeError extends BaseError {
|
|
216
216
|
override name = 'UnknownNodeError'
|
217
217
|
|
218
218
|
constructor({ cause }: { cause?: BaseError }) {
|
219
|
-
super(`An error occurred while executing: ${cause?.
|
219
|
+
super(`An error occurred while executing: ${cause?.shortMessage}`, {
|
220
220
|
cause,
|
221
221
|
})
|
222
222
|
}
|
package/src/errors/version.ts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export const version = '1.
|
1
|
+
export const version = '1.10.0'
|
package/src/index.ts
CHANGED
@@ -878,4 +878,4 @@ export { size } from './utils/data/size.js'
|
|
878
878
|
export { slice, sliceBytes, sliceHex } from './utils/data/slice.js'
|
879
879
|
export { stringify } from './utils/stringify.js'
|
880
880
|
export { trim } from './utils/data/trim.js'
|
881
|
-
export { validateTypedData } from './utils/typedData.js'
|
881
|
+
export { validateTypedData, domainSeparator } from './utils/typedData.js'
|
package/src/types/chain.ts
CHANGED
@@ -34,6 +34,8 @@ export type ChainConstants = {
|
|
34
34
|
}
|
35
35
|
/** Collection of contracts */
|
36
36
|
contracts?: {
|
37
|
+
[key: string]: ChainContract | { [chainId: number]: ChainContract }
|
38
|
+
} & {
|
37
39
|
ensRegistry?: ChainContract
|
38
40
|
ensUniversalResolver?: ChainContract
|
39
41
|
multicall3?: ChainContract
|
@@ -126,6 +126,10 @@ export function buildRequest<TRequest extends (args: any) => Promise<any>>(
|
|
126
126
|
// 4902
|
127
127
|
case SwitchChainError.code:
|
128
128
|
throw new SwitchChainError(err)
|
129
|
+
// CAIP-25: User Rejected Error
|
130
|
+
// https://docs.walletconnect.com/2.0/specs/clients/sign/error-codes#rejected-caip-25
|
131
|
+
case 5000:
|
132
|
+
throw new UserRejectedRequestError(err)
|
129
133
|
default:
|
130
134
|
if (err_ instanceof BaseError) throw err_
|
131
135
|
throw new UnknownRpcError(err as Error)
|
@@ -1,13 +1,10 @@
|
|
1
1
|
import type { CallParameters } from '../../actions/public/call.js'
|
2
2
|
import type { BaseError } from '../../errors/base.js'
|
3
3
|
import { CallExecutionError } from '../../errors/contract.js'
|
4
|
+
import { UnknownNodeError } from '../../errors/node.js'
|
4
5
|
import type { Chain } from '../../types/chain.js'
|
5
6
|
|
6
|
-
import {
|
7
|
-
type GetNodeErrorParameters,
|
8
|
-
containsNodeError,
|
9
|
-
getNodeError,
|
10
|
-
} from './getNodeError.js'
|
7
|
+
import { type GetNodeErrorParameters, getNodeError } from './getNodeError.js'
|
11
8
|
|
12
9
|
export function getCallError(
|
13
10
|
err: BaseError,
|
@@ -19,9 +16,8 @@ export function getCallError(
|
|
19
16
|
docsPath?: string
|
20
17
|
},
|
21
18
|
) {
|
22
|
-
let cause = err
|
23
|
-
if (
|
24
|
-
cause = getNodeError(err, args as GetNodeErrorParameters)
|
19
|
+
let cause = getNodeError(err, args as GetNodeErrorParameters)
|
20
|
+
if (cause instanceof UnknownNodeError) cause = err
|
25
21
|
return new CallExecutionError(cause, {
|
26
22
|
docsPath,
|
27
23
|
...args,
|
@@ -8,6 +8,7 @@ import {
|
|
8
8
|
ContractFunctionZeroDataError,
|
9
9
|
RawContractError,
|
10
10
|
} from '../../errors/contract.js'
|
11
|
+
import { InternalRpcError } from '../../errors/rpc.js'
|
11
12
|
|
12
13
|
const EXECUTION_REVERTED_ERROR_CODE = 3
|
13
14
|
|
@@ -41,7 +42,7 @@ export function getContractError(
|
|
41
42
|
if (err instanceof AbiDecodingZeroDataError) {
|
42
43
|
cause = new ContractFunctionZeroDataError({ functionName })
|
43
44
|
} else if (
|
44
|
-
code
|
45
|
+
[EXECUTION_REVERTED_ERROR_CODE, InternalRpcError.code].includes(code) &&
|
45
46
|
(data || message || shortMessage)
|
46
47
|
) {
|
47
48
|
cause = new ContractFunctionRevertedError({
|
@@ -2,13 +2,10 @@ import type { Account } from '../../accounts/types.js'
|
|
2
2
|
import type { EstimateGasParameters } from '../../actions/public/estimateGas.js'
|
3
3
|
import type { BaseError } from '../../errors/base.js'
|
4
4
|
import { EstimateGasExecutionError } from '../../errors/estimateGas.js'
|
5
|
+
import { UnknownNodeError } from '../../errors/node.js'
|
5
6
|
import type { Chain } from '../../types/chain.js'
|
6
7
|
|
7
|
-
import {
|
8
|
-
type GetNodeErrorParameters,
|
9
|
-
containsNodeError,
|
10
|
-
getNodeError,
|
11
|
-
} from './getNodeError.js'
|
8
|
+
import { type GetNodeErrorParameters, getNodeError } from './getNodeError.js'
|
12
9
|
|
13
10
|
export function getEstimateGasError(
|
14
11
|
err: BaseError,
|
@@ -21,9 +18,8 @@ export function getEstimateGasError(
|
|
21
18
|
docsPath?: string
|
22
19
|
},
|
23
20
|
) {
|
24
|
-
let cause = err
|
25
|
-
if (
|
26
|
-
cause = getNodeError(err, args as GetNodeErrorParameters)
|
21
|
+
let cause = getNodeError(err, args as GetNodeErrorParameters)
|
22
|
+
if (cause instanceof UnknownNodeError) cause = err
|
27
23
|
return new EstimateGasExecutionError(cause, {
|
28
24
|
docsPath,
|
29
25
|
...args,
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import type { SendTransactionParameters } from '../../actions/wallet/sendTransaction.js'
|
2
|
-
import
|
2
|
+
import { BaseError } from '../../errors/base.js'
|
3
3
|
import {
|
4
4
|
ExecutionRevertedError,
|
5
5
|
FeeCapTooHighError,
|
@@ -31,8 +31,22 @@ export function containsNodeError(err: BaseError) {
|
|
31
31
|
export type GetNodeErrorParameters = Partial<SendTransactionParameters<any>>
|
32
32
|
|
33
33
|
export function getNodeError(err: BaseError, args: GetNodeErrorParameters) {
|
34
|
-
const message = err.details.toLowerCase()
|
35
|
-
|
34
|
+
const message = (err.details || '').toLowerCase()
|
35
|
+
|
36
|
+
const executionRevertedError = err.walk(
|
37
|
+
(e) => (e as { code: number }).code === ExecutionRevertedError.code,
|
38
|
+
)
|
39
|
+
if (executionRevertedError instanceof BaseError) {
|
40
|
+
return new ExecutionRevertedError({
|
41
|
+
cause: err,
|
42
|
+
message: executionRevertedError.details,
|
43
|
+
})
|
44
|
+
} else if (ExecutionRevertedError.nodeMessage.test(message))
|
45
|
+
return new ExecutionRevertedError({
|
46
|
+
cause: err,
|
47
|
+
message: err.details,
|
48
|
+
})
|
49
|
+
else if (FeeCapTooHighError.nodeMessage.test(message))
|
36
50
|
return new FeeCapTooHighError({
|
37
51
|
cause: err,
|
38
52
|
maxFeePerGas: args?.maxFeePerGas,
|
@@ -62,16 +76,7 @@ export function getNodeError(err: BaseError, args: GetNodeErrorParameters) {
|
|
62
76
|
maxFeePerGas: args?.maxFeePerGas,
|
63
77
|
maxPriorityFeePerGas: args?.maxPriorityFeePerGas,
|
64
78
|
})
|
65
|
-
else if (
|
66
|
-
message.match(ExecutionRevertedError.nodeMessage) ||
|
67
|
-
('code' in (err.cause as BaseError) &&
|
68
|
-
(err.cause as { code: number })?.code === ExecutionRevertedError.code)
|
69
|
-
)
|
70
|
-
return new ExecutionRevertedError({
|
71
|
-
cause: err,
|
72
|
-
message: (err.cause as BaseError).details || err.details,
|
73
|
-
})
|
74
79
|
return new UnknownNodeError({
|
75
|
-
cause:
|
80
|
+
cause: err,
|
76
81
|
})
|
77
82
|
}
|
@@ -1,14 +1,11 @@
|
|
1
1
|
import type { Account } from '../../accounts/types.js'
|
2
2
|
import type { SendTransactionParameters } from '../../actions/wallet/sendTransaction.js'
|
3
3
|
import type { BaseError } from '../../errors/base.js'
|
4
|
+
import { UnknownNodeError } from '../../errors/node.js'
|
4
5
|
import { TransactionExecutionError } from '../../errors/transaction.js'
|
5
6
|
import type { Chain } from '../../types/chain.js'
|
6
7
|
|
7
|
-
import {
|
8
|
-
type GetNodeErrorParameters,
|
9
|
-
containsNodeError,
|
10
|
-
getNodeError,
|
11
|
-
} from './getNodeError.js'
|
8
|
+
import { type GetNodeErrorParameters, getNodeError } from './getNodeError.js'
|
12
9
|
|
13
10
|
export type GetTransactionErrorParameters = Omit<
|
14
11
|
SendTransactionParameters,
|
@@ -23,9 +20,8 @@ export function getTransactionError(
|
|
23
20
|
err: BaseError,
|
24
21
|
{ docsPath, ...args }: GetTransactionErrorParameters,
|
25
22
|
) {
|
26
|
-
let cause = err
|
27
|
-
if (
|
28
|
-
cause = getNodeError(err, args as GetNodeErrorParameters)
|
23
|
+
let cause = getNodeError(err, args as GetNodeErrorParameters)
|
24
|
+
if (cause instanceof UnknownNodeError) cause = err
|
29
25
|
return new TransactionExecutionError(cause, {
|
30
26
|
docsPath,
|
31
27
|
...args,
|
package/src/utils/rpc.ts
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
import
|
1
|
+
import WebSocket from 'isomorphic-ws'
|
2
|
+
import type { MessageEvent } from 'isomorphic-ws'
|
2
3
|
|
3
4
|
import {
|
4
5
|
HttpRequestError,
|
@@ -40,7 +41,7 @@ type Subscription<TResult, TError> = {
|
|
40
41
|
)
|
41
42
|
}
|
42
43
|
|
43
|
-
export type RpcRequest = { method: string; params?: any }
|
44
|
+
export type RpcRequest = { method: string; params?: any; id?: number }
|
44
45
|
|
45
46
|
export type RpcResponse<TResult = any, TError = any> = {
|
46
47
|
jsonrpc: `${number}`
|
@@ -82,11 +83,11 @@ async function http<TBody extends RpcRequest | RpcRequest[]>(
|
|
82
83
|
? stringify(
|
83
84
|
body.map((body) => ({
|
84
85
|
jsonrpc: '2.0',
|
85
|
-
id: id++,
|
86
|
+
id: body.id ?? id++,
|
86
87
|
...body,
|
87
88
|
})),
|
88
89
|
)
|
89
|
-
: stringify({ jsonrpc: '2.0', id: id++, ...body }),
|
90
|
+
: stringify({ jsonrpc: '2.0', id: body.id ?? id++, ...body }),
|
90
91
|
headers: {
|
91
92
|
...headers,
|
92
93
|
'Content-Type': 'application/json',
|
@@ -144,10 +145,10 @@ export type Socket = WebSocket & {
|
|
144
145
|
subscriptions: CallbackMap
|
145
146
|
}
|
146
147
|
|
147
|
-
const
|
148
|
+
export const socketsCache = /*#__PURE__*/ new Map<string, Socket>()
|
148
149
|
|
149
150
|
export async function getSocket(url: string) {
|
150
|
-
let socket =
|
151
|
+
let socket = socketsCache.get(url)
|
151
152
|
|
152
153
|
// If the socket already exists, return it.
|
153
154
|
if (socket) return socket
|
@@ -155,18 +156,6 @@ export async function getSocket(url: string) {
|
|
155
156
|
const { schedule } = createBatchScheduler<undefined, [Socket]>({
|
156
157
|
id: url,
|
157
158
|
fn: async () => {
|
158
|
-
let WebSocket = await import('isomorphic-ws')
|
159
|
-
// Workaround for Vite.
|
160
|
-
// https://github.com/vitejs/vite/issues/9703
|
161
|
-
// TODO: Remove when issue is resolved.
|
162
|
-
if (
|
163
|
-
(WebSocket as unknown as { default?: typeof WebSocket }).default
|
164
|
-
?.constructor
|
165
|
-
)
|
166
|
-
WebSocket = (WebSocket as unknown as { default: typeof WebSocket })
|
167
|
-
.default
|
168
|
-
else WebSocket = WebSocket.WebSocket
|
169
|
-
|
170
159
|
const webSocket = new WebSocket(url)
|
171
160
|
|
172
161
|
// Set up a cache for incoming "synchronous" requests.
|
@@ -185,7 +174,7 @@ export async function getSocket(url: string) {
|
|
185
174
|
if (!isSubscription) cache.delete(id)
|
186
175
|
}
|
187
176
|
const onClose = () => {
|
188
|
-
|
177
|
+
socketsCache.delete(url)
|
189
178
|
webSocket.removeEventListener('close', onClose)
|
190
179
|
webSocket.removeEventListener('message', onMessage)
|
191
180
|
}
|
@@ -208,7 +197,7 @@ export async function getSocket(url: string) {
|
|
208
197
|
requests,
|
209
198
|
subscriptions,
|
210
199
|
})
|
211
|
-
|
200
|
+
socketsCache.set(url, socket)
|
212
201
|
|
213
202
|
return [socket]
|
214
203
|
},
|