@cardano-sdk/wallet 0.22.0 → 0.24.0

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.
Files changed (57) hide show
  1. package/dist/cjs/PersonalWallet/PersonalWallet.d.ts +3 -1
  2. package/dist/cjs/PersonalWallet/PersonalWallet.d.ts.map +1 -1
  3. package/dist/cjs/PersonalWallet/PersonalWallet.js +14 -4
  4. package/dist/cjs/PersonalWallet/PersonalWallet.js.map +1 -1
  5. package/dist/cjs/cip30.d.ts.map +1 -1
  6. package/dist/cjs/cip30.js +25 -7
  7. package/dist/cjs/cip30.js.map +1 -1
  8. package/dist/cjs/services/ChangeAddress/DynamicChangeAddressResolver.d.ts.map +1 -1
  9. package/dist/cjs/services/ChangeAddress/DynamicChangeAddressResolver.js +3 -1
  10. package/dist/cjs/services/ChangeAddress/DynamicChangeAddressResolver.js.map +1 -1
  11. package/dist/cjs/services/DelegationTracker/DelegationTracker.d.ts +1 -1
  12. package/dist/cjs/services/DelegationTracker/DelegationTracker.d.ts.map +1 -1
  13. package/dist/cjs/services/DelegationTracker/DelegationTracker.js +36 -10
  14. package/dist/cjs/services/DelegationTracker/DelegationTracker.js.map +1 -1
  15. package/dist/cjs/services/PublicStakeKeysTracker.d.ts +21 -0
  16. package/dist/cjs/services/PublicStakeKeysTracker.d.ts.map +1 -0
  17. package/dist/cjs/services/PublicStakeKeysTracker.js +16 -0
  18. package/dist/cjs/services/PublicStakeKeysTracker.js.map +1 -0
  19. package/dist/cjs/services/WalletUtil.d.ts.map +1 -1
  20. package/dist/cjs/services/WalletUtil.js +16 -51
  21. package/dist/cjs/services/WalletUtil.js.map +1 -1
  22. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  23. package/dist/cjs/types.d.ts +2 -2
  24. package/dist/cjs/types.d.ts.map +1 -1
  25. package/dist/esm/PersonalWallet/PersonalWallet.d.ts +3 -1
  26. package/dist/esm/PersonalWallet/PersonalWallet.d.ts.map +1 -1
  27. package/dist/esm/PersonalWallet/PersonalWallet.js +14 -4
  28. package/dist/esm/PersonalWallet/PersonalWallet.js.map +1 -1
  29. package/dist/esm/cip30.d.ts.map +1 -1
  30. package/dist/esm/cip30.js +26 -8
  31. package/dist/esm/cip30.js.map +1 -1
  32. package/dist/esm/services/ChangeAddress/DynamicChangeAddressResolver.d.ts.map +1 -1
  33. package/dist/esm/services/ChangeAddress/DynamicChangeAddressResolver.js +3 -1
  34. package/dist/esm/services/ChangeAddress/DynamicChangeAddressResolver.js.map +1 -1
  35. package/dist/esm/services/DelegationTracker/DelegationTracker.d.ts +1 -1
  36. package/dist/esm/services/DelegationTracker/DelegationTracker.d.ts.map +1 -1
  37. package/dist/esm/services/DelegationTracker/DelegationTracker.js +36 -10
  38. package/dist/esm/services/DelegationTracker/DelegationTracker.js.map +1 -1
  39. package/dist/esm/services/PublicStakeKeysTracker.d.ts +21 -0
  40. package/dist/esm/services/PublicStakeKeysTracker.d.ts.map +1 -0
  41. package/dist/esm/services/PublicStakeKeysTracker.js +12 -0
  42. package/dist/esm/services/PublicStakeKeysTracker.js.map +1 -0
  43. package/dist/esm/services/WalletUtil.d.ts.map +1 -1
  44. package/dist/esm/services/WalletUtil.js +16 -51
  45. package/dist/esm/services/WalletUtil.js.map +1 -1
  46. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  47. package/dist/esm/types.d.ts +2 -2
  48. package/dist/esm/types.d.ts.map +1 -1
  49. package/package.json +15 -15
  50. package/dist/cjs/services/ActiveStakePublicKeysTracker.d.ts +0 -13
  51. package/dist/cjs/services/ActiveStakePublicKeysTracker.d.ts.map +0 -1
  52. package/dist/cjs/services/ActiveStakePublicKeysTracker.js +0 -15
  53. package/dist/cjs/services/ActiveStakePublicKeysTracker.js.map +0 -1
  54. package/dist/esm/services/ActiveStakePublicKeysTracker.d.ts +0 -13
  55. package/dist/esm/services/ActiveStakePublicKeysTracker.d.ts.map +0 -1
  56. package/dist/esm/services/ActiveStakePublicKeysTracker.js +0 -11
  57. package/dist/esm/services/ActiveStakePublicKeysTracker.js.map +0 -1
@@ -29,6 +29,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.requiresForeignSignatures = exports.createLazyWalletUtil = exports.createWalletUtil = exports.createInputResolver = void 0;
30
30
  const Crypto = __importStar(require("@cardano-sdk/crypto"));
31
31
  const core_1 = require("@cardano-sdk/core");
32
+ const key_management_1 = require("@cardano-sdk/key-management");
32
33
  const rxjs_1 = require("rxjs");
33
34
  const tx_construction_1 = require("@cardano-sdk/tx-construction");
34
35
  const util_1 = require("./util");
@@ -76,66 +77,30 @@ const createLazyWalletUtil = () => {
76
77
  };
77
78
  };
78
79
  exports.createLazyWalletUtil = createLazyWalletUtil;
80
+ const hasForeignInputs = ({ body: { inputs, collaterals = [] } }, utxoSet) => [...inputs, ...collaterals].some((txIn) => utxoSet.every((utxo) => !(0, util_1.txInEquals)(txIn, utxo[0])));
81
+ const hasCommitteeCertificates = ({ certificates }) => (certificates || []).some((certificate) => certificate.__typename === core_1.Cardano.CertificateType.AuthorizeCommitteeHot ||
82
+ certificate.__typename === core_1.Cardano.CertificateType.ResignCommitteeCold);
79
83
  const requiresForeignSignatures = async (tx, wallet) => {
80
84
  const utxoSet = await (0, rxjs_1.firstValueFrom)(wallet.utxo.total$);
81
85
  const knownAddresses = await (0, rxjs_1.firstValueFrom)(wallet.addresses$);
82
- const uniqueAccounts = (0, uniqBy_1.default)(knownAddresses, 'rewardAccount').map((groupedAddress) => {
86
+ const uniqueAccounts = (0, uniqBy_1.default)(knownAddresses, 'rewardAccount')
87
+ .map((groupedAddress) => {
83
88
  const stakeKeyHash = core_1.Cardano.RewardAccount.toHash(groupedAddress.rewardAccount);
84
89
  return {
90
+ derivationPath: groupedAddress.stakeKeyDerivationPath,
85
91
  poolId: core_1.Cardano.PoolId.fromKeyHash(stakeKeyHash),
86
92
  rewardAccount: groupedAddress.rewardAccount,
87
93
  stakeKeyHash
88
94
  };
89
- });
90
- for (const input of tx.body.inputs) {
91
- const ownsInput = utxoSet.find((utxo) => input.txId === utxo[0].txId && input.index === utxo[0].index);
92
- if (!ownsInput)
93
- return true;
94
- }
95
- if (tx.body.collaterals) {
96
- for (const input of tx.body.collaterals) {
97
- const ownsInput = utxoSet.find((utxo) => input.txId === utxo[0].txId && input.index === utxo[0].index);
98
- if (!ownsInput)
99
- return true;
100
- }
101
- }
102
- if (!tx.body.certificates)
103
- return false;
104
- for (const certificate of tx.body.certificates) {
105
- let matchesOneAccount = false;
106
- for (const account of uniqueAccounts) {
107
- switch (certificate.__typename) {
108
- case core_1.Cardano.CertificateType.StakeKeyDeregistration:
109
- case core_1.Cardano.CertificateType.StakeDelegation:
110
- if (certificate.stakeKeyHash === account.stakeKeyHash)
111
- matchesOneAccount = true;
112
- break;
113
- case core_1.Cardano.CertificateType.PoolRegistration:
114
- for (const owner of certificate.poolParameters.owners) {
115
- if (owner === account.rewardAccount)
116
- matchesOneAccount = true;
117
- }
118
- break;
119
- case core_1.Cardano.CertificateType.PoolRetirement:
120
- if (certificate.poolId === account.poolId)
121
- matchesOneAccount = true;
122
- break;
123
- case core_1.Cardano.CertificateType.MIR:
124
- if (certificate.kind === core_1.Cardano.MirCertificateKind.ToStakeCreds &&
125
- certificate.stakeCredential.hash ===
126
- Crypto.Hash28ByteBase16(core_1.Cardano.RewardAccount.toHash(account.rewardAccount)))
127
- matchesOneAccount = true;
128
- break;
129
- case core_1.Cardano.CertificateType.StakeKeyRegistration:
130
- case core_1.Cardano.CertificateType.GenesisKeyDelegation:
131
- default:
132
- matchesOneAccount = true;
133
- }
134
- }
135
- if (!matchesOneAccount)
136
- return true;
137
- }
138
- return false;
95
+ })
96
+ .filter((acct) => acct.derivationPath !== null);
97
+ const dRepKeyHash = (await Crypto.Ed25519PublicKey.fromHex(await wallet.getPubDRepKey()).hash()).hex();
98
+ return (hasForeignInputs(tx, utxoSet) ||
99
+ key_management_1.util.checkStakeCredentialCertificates(uniqueAccounts, tx.body).requiresForeignSignatures ||
100
+ key_management_1.util.getDRepCredentialKeyPaths({ dRepKeyHash, txBody: tx.body }).requiresForeignSignatures ||
101
+ key_management_1.util.getVotingProcedureKeyPaths({ dRepKeyHash, groupedAddresses: knownAddresses, txBody: tx.body })
102
+ .requiresForeignSignatures ||
103
+ hasCommitteeCertificates(tx.body));
139
104
  };
140
105
  exports.requiresForeignSignatures = requiresForeignSignatures;
141
106
  //# sourceMappingURL=WalletUtil.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WalletUtil.js","sourceRoot":"","sources":["../../../src/services/WalletUtil.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WalletUtil.js","sourceRoot":"","sources":["../../../src/services/WalletUtil.ts"],"names":[],"mappings":"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"}