From 9a8332410ff338fa6c1c7bfc76a376ca5f0fe8bf Mon Sep 17 00:00:00 2001 From: yushi Date: Sat, 18 Nov 2023 19:19:37 +0800 Subject: [PATCH 1/4] connector witnesses the tx with its stake key if there is pool registration certificate with one of the owners being the wallet --- .../chrome/extension/connector/api.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/packages/yoroi-extension/chrome/extension/connector/api.js b/packages/yoroi-extension/chrome/extension/connector/api.js index 591722e969..30df4b9383 100644 --- a/packages/yoroi-extension/chrome/extension/connector/api.js +++ b/packages/yoroi-extension/chrome/extension/connector/api.js @@ -595,7 +595,7 @@ function getTxRequiredSigningKeys( return set; } -function getCip95RequiredSignKeys( +function getCertificatesRequiredSignKeys( txBody: RustModule.WalletV4.TransactionBody, ): Set { const result: Set = new Set(); @@ -679,6 +679,13 @@ function getCip95RequiredSignKeys( } continue; } + const poolRegCert = cert.as_pool_registration(); + if (poolRegCert) { + const hashes = poolRegCert.pool_params().pool_owners(); + for (let i = 0; i < hashes.len(); i++) { + result.add(hashes.get(i).to_hex()); + } + } } } @@ -765,13 +772,10 @@ async function __connectorSignCardanoTx( throw new Error(`missing chains functionality`); } - const requiredTxSignKeys = getTxRequiredSigningKeys(txBody); - const requiredScriptSignKeys = getScriptRequiredSigningKeys(witnessSet, RustModule); - const requiredCip95SignKeys = getCip95RequiredSignKeys(txBody); const totalAdditionalRequiredSignKeys = new Set([ - ...requiredTxSignKeys, - ...requiredScriptSignKeys, - ...requiredCip95SignKeys, + ...getTxRequiredSigningKeys(txBody), + ...getScriptRequiredSigningKeys(witnessSet, RustModule), + ...getCertificatesRequiredSignKeys(txBody), ]); console.log('totalAdditionalRequiredSignKeys', [...totalAdditionalRequiredSignKeys]); From 91435f128c56182d3518931fc5bc8a2f159957a5 Mon Sep 17 00:00:00 2001 From: Ruslan Dudin Date: Sat, 18 Nov 2023 22:49:57 +0300 Subject: [PATCH 2/4] Update packages/yoroi-extension/chrome/extension/connector/api.js --- packages/yoroi-extension/chrome/extension/connector/api.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/yoroi-extension/chrome/extension/connector/api.js b/packages/yoroi-extension/chrome/extension/connector/api.js index 30df4b9383..9b62bf3205 100644 --- a/packages/yoroi-extension/chrome/extension/connector/api.js +++ b/packages/yoroi-extension/chrome/extension/connector/api.js @@ -685,6 +685,7 @@ function getCertificatesRequiredSignKeys( for (let i = 0; i < hashes.len(); i++) { result.add(hashes.get(i).to_hex()); } + continue; } } } From 12da382eba18a395dce44ab22425b7e7bdc937a2 Mon Sep 17 00:00:00 2001 From: vantuz-subhuman Date: Sat, 18 Nov 2023 23:03:55 +0300 Subject: [PATCH 3/4] eslint fixes --- packages/yoroi-extension/chrome/extension/connector/api.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/yoroi-extension/chrome/extension/connector/api.js b/packages/yoroi-extension/chrome/extension/connector/api.js index 9b62bf3205..a21b2a4279 100644 --- a/packages/yoroi-extension/chrome/extension/connector/api.js +++ b/packages/yoroi-extension/chrome/extension/connector/api.js @@ -682,8 +682,8 @@ function getCertificatesRequiredSignKeys( const poolRegCert = cert.as_pool_registration(); if (poolRegCert) { const hashes = poolRegCert.pool_params().pool_owners(); - for (let i = 0; i < hashes.len(); i++) { - result.add(hashes.get(i).to_hex()); + for (let j = 0; j < hashes.len(); j++) { + result.add(hashes.get(j).to_hex()); } continue; } From ebaaa26da94c361f94acee7f9a546fc317b96d70 Mon Sep 17 00:00:00 2001 From: vantuz-subhuman Date: Sat, 18 Nov 2023 23:59:47 +0300 Subject: [PATCH 4/4] Version bump: 4.23.200 --- packages/yoroi-extension/package-lock.json | 2 +- packages/yoroi-extension/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/yoroi-extension/package-lock.json b/packages/yoroi-extension/package-lock.json index 2e477e56cf..d915d3bf8f 100644 --- a/packages/yoroi-extension/package-lock.json +++ b/packages/yoroi-extension/package-lock.json @@ -1,6 +1,6 @@ { "name": "yoroi", - "version": "4.23.100", + "version": "4.23.200", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/yoroi-extension/package.json b/packages/yoroi-extension/package.json index f5e19d1f54..5dd95baeed 100644 --- a/packages/yoroi-extension/package.json +++ b/packages/yoroi-extension/package.json @@ -1,6 +1,6 @@ { "name": "yoroi", - "version": "4.23.100", + "version": "4.23.200", "description": "Cardano ADA wallet", "scripts": { "dev-mv2": "rimraf dev/ && babel-node scripts-mv2/build --type=debug --env 'mainnet'",