Skip to content

Commit 272ab65

Browse files
committed
[1.0.9] adjustVinsignature
1 parent ae98f25 commit 272ab65

File tree

3 files changed

+24
-28
lines changed

3 files changed

+24
-28
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@layr-labs/zeus",
3-
"version": "1.0.8",
3+
"version": "1.0.9",
44
"description": "web3 deployer / metadata manager",
55
"main": "src/index.ts",
66
"scripts": {

src/signing/strategies/gnosis/api/gnosisApi.ts

+11-21
Original file line numberDiff line numberDiff line change
@@ -50,14 +50,12 @@ export abstract class GnosisApiStrategy extends GnosisSigningStrategy {
5050
],
5151
})
5252

53-
const prompt = ora(`Forming transaction...`);
54-
const spinner = prompt.start();
53+
console.log(`Forming transaction...`);
5554
const hash = await protocolKitOwner1.getTransactionHash(txn)
56-
spinner.stop();
5755

5856
return {
5957
output,
60-
safeAddress: safeContext.addr,
58+
safeAddress: getAddress(safeContext.addr),
6159
safeTxHash: hash as `0x${string}`,
6260
senderAddress: signer as `0x${string}`,
6361
stateUpdates
@@ -101,11 +99,9 @@ export abstract class GnosisApiStrategy extends GnosisSigningStrategy {
10199
}]
102100
})
103101

104-
let prompt = ora(`Creating transaction...`);
105-
let spinner = prompt.start();
102+
console.log(`Creating transaction...`);
106103
const hash = await protocolKitOwner1.getTransactionHash(txn)
107104
const version = await protocolKitOwner1.getContractVersion();
108-
spinner.stop();
109105

110106
if (stateUpdates) {
111107
console.log(chalk.bold.underline(`Updated Environment: `));
@@ -114,25 +110,19 @@ export abstract class GnosisApiStrategy extends GnosisSigningStrategy {
114110

115111
const senderSignature = await this.getSignature(version, txn, safeContext.addr)
116112

117-
prompt = ora(`Sending transction to Gnosis SAFE UI... (safe=${ getAddress(safeContext.addr)})`);
118-
spinner = prompt.start();
119-
try {
120-
await apiKit.proposeTransaction({
121-
safeAddress: getAddress(safeContext.addr),
122-
safeTransactionData: txn.data,
123-
safeTxHash: hash,
124-
senderAddress: getAddress(signer),
125-
senderSignature,
126-
})
127-
} finally {
128-
spinner.stop();
129-
}
113+
await apiKit.proposeTransaction({
114+
safeAddress: getAddress(safeContext.addr),
115+
safeTransactionData: txn.data,
116+
safeTxHash: hash,
117+
senderAddress: getAddress(signer),
118+
senderSignature,
119+
})
130120

131121
return {
132122
output,
133123
safeAddress: safeContext.addr,
134124
safeTxHash: hash as `0x${string}`,
135-
senderAddress: signer,
125+
senderAddress: getAddress(signer),
136126
signature: senderSignature,
137127
stateUpdates
138128
}

src/signing/strategies/gnosis/api/gnosisLedger.ts

+12-6
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ import * as prompts from '../../../../commands/prompts';
1212
import { JsonRpcProvider } from "ethers";
1313
import * as AllChains from 'viem/chains';
1414
import { abi } from "../onchain/Safe";
15-
import { ethers } from 'ethers';
16-
import { calculateSafeTransactionHash } from "@safe-global/protocol-kit/dist/src/utils";
15+
import { adjustVInSignature, calculateSafeTransactionHash } from "@safe-global/protocol-kit/dist/src/utils";
16+
import { SigningMethod } from "@safe-global/protocol-kit";
1717

1818
export class GnosisLedgerStrategy extends GnosisApiStrategy {
1919
id = "gnosis.api.ledger";
@@ -68,21 +68,27 @@ export class GnosisLedgerStrategy extends GnosisApiStrategy {
6868
const addr = await signer.getAddress() as `0x${string}`;
6969
console.log(`The ledger reported this address: ${addr}`);
7070

71-
const signature = await signer.signMessage(
71+
const _signature = await signer.signMessage(
7272
gnosisHash
7373
) as `0x${string}`
7474

75-
const valid = await verifyMessage({address: addr, message: gnosisHash, signature});
75+
const signature = (await adjustVInSignature(SigningMethod.ETH_SIGN, _signature, gnosisHash, addr)) as `0x${string}`;
76+
77+
const valid = await verifyMessage({address: addr, message: gnosisHash, signature: _signature});
7678
if (!valid) {
7779
console.error(`Failed to verify signature. Nothing will be submitted. (signed from ${addr})`);
78-
console.warn(`Signature: ${signature}`);
80+
console.warn(`Signature: ${_signature}`);
81+
console.log(`V-Adjusted signature: ${signature}`);
7982
console.warn(`Gnosis Hash: ${gnosisHash}`);
8083
console.warn(`From: ${addr}`);
8184
throw new Error(`Invalid signature. Failed to verify typedData.`);
8285
} else {
83-
console.log(`Successfully verified signature (from=${addr},signature=${signature})`);
86+
console.log(`Successfully verified signature (from=${addr},signature=${_signature})`);
8487
}
8588

89+
console.log(`Original Signature: ${_signature}`);
90+
console.log(`V-Adjusted signature: ${signature}`);
91+
8692
return signature;
8793
} catch (e) {
8894
if ((e as Error).message.includes(`0x6a80`)) {

0 commit comments

Comments
 (0)