diff options
author | Fabio Berger <me@fabioberger.com> | 2018-06-02 02:34:12 +0800 |
---|---|---|
committer | Fabio Berger <me@fabioberger.com> | 2018-06-02 02:34:12 +0800 |
commit | 8cd4578d839c4311ff69ce9bb0245867e25dcf6d (patch) | |
tree | a2588e41113fa5eb41f7528ad237368bb62d967e /packages/order-utils/src/assert.ts | |
parent | 152082e1820f89bf65e99b5b3ecfe9d3946e3148 (diff) | |
download | dexon-sol-tools-8cd4578d839c4311ff69ce9bb0245867e25dcf6d.tar dexon-sol-tools-8cd4578d839c4311ff69ce9bb0245867e25dcf6d.tar.gz dexon-sol-tools-8cd4578d839c4311ff69ce9bb0245867e25dcf6d.tar.bz2 dexon-sol-tools-8cd4578d839c4311ff69ce9bb0245867e25dcf6d.tar.lz dexon-sol-tools-8cd4578d839c4311ff69ce9bb0245867e25dcf6d.tar.xz dexon-sol-tools-8cd4578d839c4311ff69ce9bb0245867e25dcf6d.tar.zst dexon-sol-tools-8cd4578d839c4311ff69ce9bb0245867e25dcf6d.zip |
Add signature specific validation methods, and other refactors
Diffstat (limited to 'packages/order-utils/src/assert.ts')
-rw-r--r-- | packages/order-utils/src/assert.ts | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/packages/order-utils/src/assert.ts b/packages/order-utils/src/assert.ts index 07cde453a..a1318b9b8 100644 --- a/packages/order-utils/src/assert.ts +++ b/packages/order-utils/src/assert.ts @@ -3,11 +3,13 @@ import { assert as sharedAssert } from '@0xproject/assert'; // tslint:disable-next-line:no-unused-variable import { Schema } from '@0xproject/json-schemas'; // tslint:disable-next-line:no-unused-variable -import { ECSignature } from '@0xproject/types'; +import { ECSignature, SignatureType } from '@0xproject/types'; import { BigNumber } from '@0xproject/utils'; import { Web3Wrapper } from '@0xproject/web3-wrapper'; import * as _ from 'lodash'; +import { utils } from './utils'; + export const assert = { ...sharedAssert, async isSenderAddressAsync( @@ -22,4 +24,14 @@ export const assert = { `Specified ${variableName} ${senderAddressHex} isn't available through the supplied web3 provider`, ); }, + isOneOfExpectedSignatureTypes(signature: string, signatureTypes: SignatureType[]): void { + sharedAssert.isHexString('signature', signature); + const signatureTypeIndexIfExists = utils.getSignatureTypeIndexIfExists(signature); + const isExpectedSignatureType = _.includes(signatureTypes, signatureTypeIndexIfExists); + if (!isExpectedSignatureType) { + throw new Error( + `Unexpected signatureType: ${signatureTypeIndexIfExists}. Valid signature types: ${signatureTypes}`, + ); + } + }, }; |