aboutsummaryrefslogtreecommitdiffstats
path: root/packages/web3-wrapper/src
diff options
context:
space:
mode:
authorLeonid Logvinov <logvinov.leon@gmail.com>2018-10-09 19:13:10 +0800
committerLeonid Logvinov <logvinov.leon@gmail.com>2018-10-09 19:13:10 +0800
commit7d2c975d7335155b85a7549c25b953d0afacf5cf (patch)
tree01a364d769f3eede04f4bd1e4a743784d39eea91 /packages/web3-wrapper/src
parente5153737d8386380675f28dd7cda70deeb1ea37c (diff)
parent024bcf492ddbdceb033466aeadef220adc145332 (diff)
downloaddexon-0x-contracts-7d2c975d7335155b85a7549c25b953d0afacf5cf.tar
dexon-0x-contracts-7d2c975d7335155b85a7549c25b953d0afacf5cf.tar.gz
dexon-0x-contracts-7d2c975d7335155b85a7549c25b953d0afacf5cf.tar.bz2
dexon-0x-contracts-7d2c975d7335155b85a7549c25b953d0afacf5cf.tar.lz
dexon-0x-contracts-7d2c975d7335155b85a7549c25b953d0afacf5cf.tar.xz
dexon-0x-contracts-7d2c975d7335155b85a7549c25b953d0afacf5cf.tar.zst
dexon-0x-contracts-7d2c975d7335155b85a7549c25b953d0afacf5cf.zip
Merge branch 'development'
Diffstat (limited to 'packages/web3-wrapper/src')
-rw-r--r--packages/web3-wrapper/src/index.ts1
-rw-r--r--packages/web3-wrapper/src/web3_wrapper.ts18
2 files changed, 19 insertions, 0 deletions
diff --git a/packages/web3-wrapper/src/index.ts b/packages/web3-wrapper/src/index.ts
index 7cdd25e55..9bef06fd4 100644
--- a/packages/web3-wrapper/src/index.ts
+++ b/packages/web3-wrapper/src/index.ts
@@ -30,6 +30,7 @@ export {
OpCode,
TxDataPayable,
JSONRPCResponsePayload,
+ JSONRPCResponseError,
RawLogEntry,
DecodedLogEntryEvent,
LogWithDecodedArgs,
diff --git a/packages/web3-wrapper/src/web3_wrapper.ts b/packages/web3-wrapper/src/web3_wrapper.ts
index d52c1cb6e..726246f1a 100644
--- a/packages/web3-wrapper/src/web3_wrapper.ts
+++ b/packages/web3-wrapper/src/web3_wrapper.ts
@@ -315,6 +315,21 @@ export class Web3Wrapper {
return signData;
}
/**
+ * Sign an EIP712 typed data message with a specific address's private key (`eth_signTypedData`)
+ * @param address Address of signer
+ * @param typedData Typed data message to sign
+ * @returns Signature string (as RSV)
+ */
+ public async signTypedDataAsync(address: string, typedData: any): Promise<string> {
+ assert.isETHAddressHex('address', address);
+ assert.doesConformToSchema('typedData', typedData, schemas.eip712TypedDataSchema);
+ const signData = await this.sendRawPayloadAsync<string>({
+ method: 'eth_signTypedData',
+ params: [address, typedData],
+ });
+ return signData;
+ }
+ /**
* Fetches the latest block number
* @returns Block number
*/
@@ -654,6 +669,9 @@ export class Web3Wrapper {
...payload,
};
const response = await promisify<JSONRPCResponsePayload>(sendAsync)(payloadWithDefaults);
+ if (response.error) {
+ throw new Error(response.error.message);
+ }
const result = response.result;
return result;
}