viem 2.17.2 → 2.17.3
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/CHANGELOG.md +6 -0
- package/_cjs/actions/public/verifyHash.js +9 -0
- package/_cjs/actions/public/verifyHash.js.map +1 -1
- package/_cjs/errors/version.js +1 -1
- package/_esm/actions/public/verifyHash.js +10 -0
- package/_esm/actions/public/verifyHash.js.map +1 -1
- package/_esm/errors/version.js +1 -1
- package/_types/actions/public/verifyHash.d.ts.map +1 -1
- package/_types/errors/version.d.ts +1 -1
- package/actions/public/verifyHash.ts +12 -0
- package/errors/version.ts +1 -1
- package/package.json +1 -1
    
        package/CHANGELOG.md
    CHANGED
    
    | @@ -1,5 +1,11 @@ | |
| 1 1 | 
             
            # viem
         | 
| 2 2 |  | 
| 3 | 
            +
            ## 2.17.3
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            ### Patch Changes
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            - [`ec3b0e0`](https://github.com/wevm/viem/commit/ec3b0e08f0a379249224e65092277191f1a8502b) Thanks [@jxom](https://github.com/jxom)! - Added fallback verification in `verifyHash`.
         | 
| 8 | 
            +
             | 
| 3 9 | 
             
            ## 2.17.2
         | 
| 4 10 |  | 
| 5 11 | 
             
            ### Patch Changes
         | 
| @@ -5,11 +5,14 @@ const abis_js_1 = require("../../constants/abis.js"); | |
| 5 5 | 
             
            const contracts_js_1 = require("../../constants/contracts.js");
         | 
| 6 6 | 
             
            const contract_js_1 = require("../../errors/contract.js");
         | 
| 7 7 | 
             
            const encodeDeployData_js_1 = require("../../utils/abi/encodeDeployData.js");
         | 
| 8 | 
            +
            const getAddress_js_1 = require("../../utils/address/getAddress.js");
         | 
| 9 | 
            +
            const isAddressEqual_js_1 = require("../../utils/address/isAddressEqual.js");
         | 
| 8 10 | 
             
            const isBytesEqual_js_1 = require("../../utils/data/isBytesEqual.js");
         | 
| 9 11 | 
             
            const isHex_js_1 = require("../../utils/data/isHex.js");
         | 
| 10 12 | 
             
            const toHex_js_1 = require("../../utils/encoding/toHex.js");
         | 
| 11 13 | 
             
            const getAction_js_1 = require("../../utils/getAction.js");
         | 
| 12 14 | 
             
            const isErc6492Signature_js_1 = require("../../utils/signature/isErc6492Signature.js");
         | 
| 15 | 
            +
            const recoverAddress_js_1 = require("../../utils/signature/recoverAddress.js");
         | 
| 13 16 | 
             
            const serializeErc6492Signature_js_1 = require("../../utils/signature/serializeErc6492Signature.js");
         | 
| 14 17 | 
             
            const serializeSignature_js_1 = require("../../utils/signature/serializeSignature.js");
         | 
| 15 18 | 
             
            const call_js_1 = require("./call.js");
         | 
| @@ -49,6 +52,12 @@ async function verifyHash(client, parameters) { | |
| 49 52 | 
             
                    return (0, isBytesEqual_js_1.isBytesEqual)(data ?? '0x0', '0x1');
         | 
| 50 53 | 
             
                }
         | 
| 51 54 | 
             
                catch (error) {
         | 
| 55 | 
            +
                    try {
         | 
| 56 | 
            +
                        const verified = (0, isAddressEqual_js_1.isAddressEqual)((0, getAddress_js_1.getAddress)(address), await (0, recoverAddress_js_1.recoverAddress)({ hash, signature }));
         | 
| 57 | 
            +
                        if (verified)
         | 
| 58 | 
            +
                            return true;
         | 
| 59 | 
            +
                    }
         | 
| 60 | 
            +
                    catch { }
         | 
| 52 61 | 
             
                    if (error instanceof contract_js_1.CallExecutionError) {
         | 
| 53 62 | 
             
                        return false;
         | 
| 54 63 | 
             
                    }
         | 
| @@ -1 +1 @@ | |
| 1 | 
            -
            {"version":3,"file":"verifyHash.js","sourceRoot":"","sources":["../../../actions/public/verifyHash.ts"],"names":[],"mappings":";; | 
| 1 | 
            +
            {"version":3,"file":"verifyHash.js","sourceRoot":"","sources":["../../../actions/public/verifyHash.ts"],"names":[],"mappings":";;AA4DA,gCAoEC;AA5HD,qDAAwE;AACxE,+DAAkF;AAClF,0DAA6D;AAK7D,6EAG4C;AAC5C,qEAA8D;AAC9D,6EAAsE;AACtE,sEAGyC;AACzC,wDAAsE;AACtE,4DAA+E;AAC/E,2DAAoD;AACpD,uFAAgF;AAChF,+EAAwE;AACxE,qGAA8F;AAC9F,uFAAgF;AAChF,uCAAyE;AACzE,6CAAsC;AA+B/B,KAAK,UAAU,UAAU,CAC9B,MAAiC,EACjC,UAAgC;IAEhC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,UAAU,CAAA;IAE9E,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE;QACzB,IAAI,IAAA,gBAAK,EAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAA;QACtC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG,IAAI,SAAS;YACvE,OAAO,IAAA,0CAAkB,EAAC,SAAS,CAAC,CAAA;QACtC,OAAO,IAAA,qBAAU,EAAC,SAAS,CAAC,CAAA;IAC9B,CAAC,CAAC,EAAE,CAAA;IAEJ,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;QAGzC,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW;YAAE,OAAO,YAAY,CAAA;QAGjD,IAAI,IAAA,0CAAkB,EAAC,YAAY,CAAC;YAAE,OAAO,YAAY,CAAA;QAEzD,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAS,EAAC,MAAM,EAAE,oBAAO,EAAE,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;QAEzE,IAAI,QAAQ;YAAE,OAAO,YAAY,CAAA;QAIjC,OAAO,IAAA,wDAAyB,EAAC;YAC/B,OAAO,EAAE,OAAQ;YACjB,IAAI,EAAE,WAAY;YAClB,SAAS,EAAE,YAAY;SACxB,CAAC,CAAA;IACJ,CAAC,CAAC,EAAE,CAAA;IAEJ,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAA,wBAAS,EAC9B,MAAM,EACN,cAAI,EACJ,MAAM,CACP,CAAC;YACA,IAAI,EAAE,IAAA,sCAAgB,EAAC;gBACrB,GAAG,EAAE,wCAA8B;gBACnC,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,gBAAgB,CAAC;gBACvC,QAAQ,EAAE,kDAAmC;aAC9C,CAAC;YACF,GAAG,IAAI;SACqB,CAAC,CAAA;QAE/B,OAAO,IAAA,8BAAY,EAAC,IAAI,IAAI,KAAK,EAAE,KAAK,CAAC,CAAA;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAEf,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAA,kCAAc,EAC7B,IAAA,0BAAU,EAAC,OAAO,CAAC,EACnB,MAAM,IAAA,kCAAc,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAC1C,CAAA;YACD,IAAI,QAAQ;gBAAE,OAAO,IAAI,CAAA;QAC3B,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QAEV,IAAI,KAAK,YAAY,gCAAkB,EAAE,CAAC;YAIxC,OAAO,KAAK,CAAA;QACd,CAAC;QAED,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC"}
         | 
    
        package/_cjs/errors/version.js
    CHANGED
    
    
| @@ -2,11 +2,14 @@ import { universalSignatureValidatorAbi } from '../../constants/abis.js'; | |
| 2 2 | 
             
            import { universalSignatureValidatorByteCode } from '../../constants/contracts.js';
         | 
| 3 3 | 
             
            import { CallExecutionError } from '../../errors/contract.js';
         | 
| 4 4 | 
             
            import { encodeDeployData, } from '../../utils/abi/encodeDeployData.js';
         | 
| 5 | 
            +
            import { getAddress } from '../../utils/address/getAddress.js';
         | 
| 6 | 
            +
            import { isAddressEqual } from '../../utils/address/isAddressEqual.js';
         | 
| 5 7 | 
             
            import { isBytesEqual, } from '../../utils/data/isBytesEqual.js';
         | 
| 6 8 | 
             
            import { isHex } from '../../utils/data/isHex.js';
         | 
| 7 9 | 
             
            import { bytesToHex } from '../../utils/encoding/toHex.js';
         | 
| 8 10 | 
             
            import { getAction } from '../../utils/getAction.js';
         | 
| 9 11 | 
             
            import { isErc6492Signature } from '../../utils/signature/isErc6492Signature.js';
         | 
| 12 | 
            +
            import { recoverAddress } from '../../utils/signature/recoverAddress.js';
         | 
| 10 13 | 
             
            import { serializeErc6492Signature } from '../../utils/signature/serializeErc6492Signature.js';
         | 
| 11 14 | 
             
            import { serializeSignature } from '../../utils/signature/serializeSignature.js';
         | 
| 12 15 | 
             
            import { call } from './call.js';
         | 
| @@ -59,6 +62,13 @@ export async function verifyHash(client, parameters) { | |
| 59 62 | 
             
                    return isBytesEqual(data ?? '0x0', '0x1');
         | 
| 60 63 | 
             
                }
         | 
| 61 64 | 
             
                catch (error) {
         | 
| 65 | 
            +
                    // Fallback attempt to verify the signature via ECDSA recovery.
         | 
| 66 | 
            +
                    try {
         | 
| 67 | 
            +
                        const verified = isAddressEqual(getAddress(address), await recoverAddress({ hash, signature }));
         | 
| 68 | 
            +
                        if (verified)
         | 
| 69 | 
            +
                            return true;
         | 
| 70 | 
            +
                    }
         | 
| 71 | 
            +
                    catch { }
         | 
| 62 72 | 
             
                    if (error instanceof CallExecutionError) {
         | 
| 63 73 | 
             
                        // if the execution fails, the signature was not valid and an internal method inside of the validator reverted
         | 
| 64 74 | 
             
                        // this can happen for many reasons, for example if signer can not be recovered from the signature
         | 
| @@ -1 +1 @@ | |
| 1 | 
            -
            {"version":3,"file":"verifyHash.js","sourceRoot":"","sources":["../../../actions/public/verifyHash.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,8BAA8B,EAAE,MAAM,yBAAyB,CAAA;AACxE,OAAO,EAAE,mCAAmC,EAAE,MAAM,8BAA8B,CAAA;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAK7D,OAAO,EAEL,gBAAgB,GACjB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAEL,YAAY,GACb,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAuB,KAAK,EAAE,MAAM,2BAA2B,CAAA;AACtE,OAAO,EAAuB,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAA;AAChF,OAAO,EAAE,yBAAyB,EAAE,MAAM,oDAAoD,CAAA;AAC9F,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAA;AAChF,OAAO,EAA2C,IAAI,EAAE,MAAM,WAAW,CAAA;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAwBtC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAiC,EACjC,UAAgC;IAEhC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,UAAU,CAAA;IAE9E,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE;QACzB,IAAI,KAAK,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAA;QACtC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG,IAAI,SAAS;YACvE,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAA;QACtC,OAAO,UAAU,CAAC,SAAS,CAAC,CAAA;IAC9B,CAAC,CAAC,EAAE,CAAA;IAEJ,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;QACzC,uEAAuE;QACvE,4EAA4E;QAC5E,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW;YAAE,OAAO,YAAY,CAAA;QAEjD,6DAA6D;QAC7D,IAAI,kBAAkB,CAAC,YAAY,CAAC;YAAE,OAAO,YAAY,CAAA;QAEzD,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;QACzE,gEAAgE;QAChE,IAAI,QAAQ;YAAE,OAAO,YAAY,CAAA;QAEjC,+EAA+E;QAC/E,wCAAwC;QACxC,OAAO,yBAAyB,CAAC;YAC/B,OAAO,EAAE,OAAQ;YACjB,IAAI,EAAE,WAAY;YAClB,SAAS,EAAE,YAAY;SACxB,CAAC,CAAA;IACJ,CAAC,CAAC,EAAE,CAAA;IAEJ,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,SAAS,CAC9B,MAAM,EACN,IAAI,EACJ,MAAM,CACP,CAAC;YACA,IAAI,EAAE,gBAAgB,CAAC;gBACrB,GAAG,EAAE,8BAA8B;gBACnC,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,gBAAgB,CAAC;gBACvC,QAAQ,EAAE,mCAAmC;aAC9C,CAAC;YACF,GAAG,IAAI;SACqB,CAAC,CAAA;QAE/B,OAAO,YAAY,CAAC,IAAI,IAAI,KAAK,EAAE,KAAK,CAAC,CAAA;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,kBAAkB,EAAE,CAAC;YACxC,8GAA8G;YAC9G,kGAAkG;YAClG,0CAA0C;YAC1C,OAAO,KAAK,CAAA;QACd,CAAC;QAED,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC"}
         | 
| 1 | 
            +
            {"version":3,"file":"verifyHash.js","sourceRoot":"","sources":["../../../actions/public/verifyHash.ts"],"names":[],"mappings":"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"}
         | 
    
        package/_esm/errors/version.js
    CHANGED
    
    | @@ -1,2 +1,2 @@ | |
| 1 | 
            -
            export const version = '2.17. | 
| 1 | 
            +
            export const version = '2.17.3';
         | 
| 2 2 | 
             
            //# sourceMappingURL=version.js.map
         | 
| @@ -1 +1 @@ | |
| 1 | 
            -
            {"version":3,"file":"verifyHash.d.ts","sourceRoot":"","sources":["../../../actions/public/verifyHash.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,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,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EACL,KAAK,yBAAyB,EAE/B,MAAM,qCAAqC,CAAA; | 
| 1 | 
            +
            {"version":3,"file":"verifyHash.d.ts","sourceRoot":"","sources":["../../../actions/public/verifyHash.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,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,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EACL,KAAK,yBAAyB,EAE/B,MAAM,qCAAqC,CAAA;AAG5C,OAAO,EACL,KAAK,qBAAqB,EAE3B,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,KAAK,cAAc,EAAS,MAAM,2BAA2B,CAAA;AACtE,OAAO,EAAE,KAAK,cAAc,EAAc,MAAM,+BAA+B,CAAA;AAM/E,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAQ,MAAM,WAAW,CAAA;AAGzE,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,cAAc,EACd,aAAa,GAAG,UAAU,CAC3B,GAAG;IACF,oDAAoD;IACpD,OAAO,EAAE,OAAO,CAAA;IAChB,+BAA+B;IAC/B,IAAI,EAAE,GAAG,CAAA;IACT,8FAA8F;IAC9F,SAAS,EAAE,GAAG,GAAG,SAAS,GAAG,SAAS,CAAA;CACvC,GAAG,KAAK,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,GAAG,CAAA;CAAE,GAAG,EAAE,CAAC,CAAA;AAEtD,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAA;AAE1C,MAAM,MAAM,mBAAmB,GAC3B,aAAa,GACb,cAAc,GACd,cAAc,GACd,qBAAqB,GACrB,yBAAyB,GACzB,SAAS,CAAA;AAEb;;;;;;GAMG;AACH,wBAAsB,UAAU,CAAC,MAAM,SAAS,KAAK,GAAG,SAAS,EAC/D,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,EACjC,UAAU,EAAE,oBAAoB,GAC/B,OAAO,CAAC,oBAAoB,CAAC,CAiE/B"}
         | 
| @@ -1,2 +1,2 @@ | |
| 1 | 
            -
            export declare const version = "2.17. | 
| 1 | 
            +
            export declare const version = "2.17.3";
         | 
| 2 2 | 
             
            //# sourceMappingURL=version.d.ts.map
         | 
| @@ -13,6 +13,8 @@ import { | |
| 13 13 | 
             
              type EncodeDeployDataErrorType,
         | 
| 14 14 | 
             
              encodeDeployData,
         | 
| 15 15 | 
             
            } from '../../utils/abi/encodeDeployData.js'
         | 
| 16 | 
            +
            import { getAddress } from '../../utils/address/getAddress.js'
         | 
| 17 | 
            +
            import { isAddressEqual } from '../../utils/address/isAddressEqual.js'
         | 
| 16 18 | 
             
            import {
         | 
| 17 19 | 
             
              type IsBytesEqualErrorType,
         | 
| 18 20 | 
             
              isBytesEqual,
         | 
| @@ -21,6 +23,7 @@ import { type IsHexErrorType, isHex } from '../../utils/data/isHex.js' | |
| 21 23 | 
             
            import { type ToHexErrorType, bytesToHex } from '../../utils/encoding/toHex.js'
         | 
| 22 24 | 
             
            import { getAction } from '../../utils/getAction.js'
         | 
| 23 25 | 
             
            import { isErc6492Signature } from '../../utils/signature/isErc6492Signature.js'
         | 
| 26 | 
            +
            import { recoverAddress } from '../../utils/signature/recoverAddress.js'
         | 
| 24 27 | 
             
            import { serializeErc6492Signature } from '../../utils/signature/serializeErc6492Signature.js'
         | 
| 25 28 | 
             
            import { serializeSignature } from '../../utils/signature/serializeSignature.js'
         | 
| 26 29 | 
             
            import { type CallErrorType, type CallParameters, call } from './call.js'
         | 
| @@ -105,6 +108,15 @@ export async function verifyHash<TChain extends Chain | undefined>( | |
| 105 108 |  | 
| 106 109 | 
             
                return isBytesEqual(data ?? '0x0', '0x1')
         | 
| 107 110 | 
             
              } catch (error) {
         | 
| 111 | 
            +
                // Fallback attempt to verify the signature via ECDSA recovery.
         | 
| 112 | 
            +
                try {
         | 
| 113 | 
            +
                  const verified = isAddressEqual(
         | 
| 114 | 
            +
                    getAddress(address),
         | 
| 115 | 
            +
                    await recoverAddress({ hash, signature }),
         | 
| 116 | 
            +
                  )
         | 
| 117 | 
            +
                  if (verified) return true
         | 
| 118 | 
            +
                } catch {}
         | 
| 119 | 
            +
             | 
| 108 120 | 
             
                if (error instanceof CallExecutionError) {
         | 
| 109 121 | 
             
                  // if the execution fails, the signature was not valid and an internal method inside of the validator reverted
         | 
| 110 122 | 
             
                  // this can happen for many reasons, for example if signer can not be recovered from the signature
         | 
    
        package/errors/version.ts
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            export const version = '2.17. | 
| 1 | 
            +
            export const version = '2.17.3'
         |