Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: ada support conway #376

Draft
wants to merge 1 commit into
base: onekey
Choose a base branch
from
Draft

feat: ada support conway #376

wants to merge 1 commit into from

Conversation

ByteZhang1024
Copy link
Contributor

@ByteZhang1024 ByteZhang1024 commented Oct 11, 2024

Summary by CodeRabbit

  • 新特性

    • 引入了新的投票注册和代表结构,增强了对 Cardano 交易的支持。
    • 新增了多个方法和参数,以支持 Conway 版本的签名和验证。
    • 更新了证书处理逻辑,支持新的存款和代表字段。
  • 文档

    • 更新了消息文件,反映了新的 Cardano 证书类型和投票参数。
  • 类型更新

    • 重命名了多个与治理相关的类型,以适应新的 CVote 结构。
    • 新增了 CardanoDRep 类型,增强了对代表的支持。

@ByteZhang1024 ByteZhang1024 force-pushed the feat/adaConway branch 2 times, most recently from 5e10d92 to ec6d810 Compare October 15, 2024 07:37
@ByteZhang1024 ByteZhang1024 marked this pull request as ready for review October 15, 2024 08:06
Copy link

coderabbitai bot commented Oct 15, 2024

Walkthrough

此次变更主要集中在Cardano相关代码的更新上。CardanoSignTransaction类进行了重要修改,新增了多个方法和参数,更新了签名处理逻辑。治理相关的数据结构被重命名为CVote相关,确保向后兼容。新类型CardanoDRep及其相关函数被引入以支持新的投票结构。多个接口和枚举也进行了更新,以反映这些结构的变化。这些更改旨在增强Cardano的功能和兼容性。

Changes

文件路径 更改摘要
packages/core/src/api/cardano/CardanoSignTransaction.ts 更新CardanoSignTransaction类,新增方法hasConwaysupportConwayVersionRangecheckSupportConway,更新initsignTx方法,包含新参数。弃用governanceRegistrationParameters
packages/core/src/api/cardano/helper/auxiliaryData.ts 重命名类型CardanoGovernanceRegistrationDelegationCardanoGovernanceRegistrationParametersCardanoCVoteRegistrationDelegationCardanoCVoteRegistrationParameters,更新transformDelegationtransformAuxiliaryData函数,新增transformCvoteRegistrationParameters函数。
packages/core/src/api/cardano/helper/certificate.ts 新增类型CardanoDRep和函数transformDRep,更新transformCertificate函数以验证dRep字段并新增deposit参数。
packages/core/src/data/messages/messages.json 更新messages.json,新增CardanoCertificateTypeCardanoDRepType枚举的字段,重命名CardanoGovernanceRegistrationParametersTypeCardanoCVoteRegistrationParametersType
packages/core/src/types/api/cardano.ts 新增接口CardanoDRep,更新CardanoCertificate接口以包含depositdRep属性,重命名治理相关接口为CVote相关。
packages/hd-transport/src/types/messages.ts 更新CardanoCertificateType枚举,新增CardanoDRepType,重命名CardanoGovernanceRegistrationFormatCardanoCVoteRegistrationFormat,更新CardanoTxCertificateCardanoTxWithdrawal类型以包含新属性。
packages/hd-transport/scripts/protobuf-patches/index.js 更新RULE_PATCHTYPE_PATCH对象,新增CardanoTxCertificate.deposit字段,标记多个字段为可选。
submodules/firmware 更新子项目提交引用,新的提交哈希为1a791cbf3d312c3c12feee3e82f7a1d8803581d9

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant CardanoSignTransaction
    participant AuxiliaryData
    participant Certificate

    User->>CardanoSignTransaction: 调用signTx()
    CardanoSignTransaction->>AuxiliaryData: 验证参数
    AuxiliaryData-->>CardanoSignTransaction: 返回验证结果
    CardanoSignTransaction->>Certificate: 调用transformCertificate()
    Certificate-->>CardanoSignTransaction: 返回证书信息
    CardanoSignTransaction-->>User: 返回签名结果
Loading

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary or Summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@ByteZhang1024 ByteZhang1024 enabled auto-merge (squash) October 15, 2024 08:07
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 11

🧹 Outside diff range comments (2)
packages/core/src/api/cardano/helper/auxiliaryData.ts (2)

Line range hint 39-90: 修正类型定义,避免类型错误

多处使用 @ts-expect-error 忽略类型错误。更新类型定义,包含可选的旧参数,提升代码质量。

修改类型定义如下:

+ interface CardanoCVoteRegistrationParameters {
+   votePublicKey: string;
+   votingPublicKey?: string;
+   stakingPath: string | number[];
+   nonce: number;
+   format?: number;
+   delegations?: CardanoCVoteRegistrationDelegation[];
+   votingPurpose?: number;
+   paymentAddress?: string;
+   paymentAddressParameters?: AddressParameters;
+   rewardAddressParameters?: AddressParameters;
+ }

这样可避免类型错误,也无需使用 @ts-expect-error


Line range hint 71-76: 更新错误信息中的术语

错误信息中提到了 "governance registration",请改为 "cVote registration" 以保持一致。

请修改错误信息:

- `At most ${MAX_DELEGATION_COUNT} delegations are allowed in a governance registration`
+ `At most ${MAX_DELEGATION_COUNT} delegations are allowed in a cVote registration`
📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE

📥 Commits

Files that changed from the base of the PR and between 237c606 and 42f0292.

📒 Files selected for processing (6)
  • packages/core/src/api/cardano/CardanoSignTransaction.ts (7 hunks)
  • packages/core/src/api/cardano/helper/auxiliaryData.ts (3 hunks)
  • packages/core/src/api/cardano/helper/certificate.ts (4 hunks)
  • packages/core/src/data/messages/messages.json (11 hunks)
  • packages/core/src/types/api/cardano.ts (5 hunks)
  • packages/hd-transport/src/types/messages.ts (9 hunks)
🧰 Additional context used
🪛 Biome
packages/core/src/api/cardano/CardanoSignTransaction.ts

[error] 58-58: Change to an optional chain.

Unsafe fix: Change to an optional chain.

(lint/complexity/useOptionalChain)

🔇 Additional comments (32)
packages/core/src/data/messages/messages.json (6)

1892-1896: 新增的 Cardano 证书类型

新增了三种 Cardano 证书类型:STAKE_REGISTRATION_CONWAY、STAKE_DEREGISTRATION_CONWAY 和 VOTE_DELEGATION。这些添加反映了 Cardano 区块链的新功能。


2484-2500: 新增 CardanoDRep 消息类型

添加了新的 CardanoDRep 消息类型,包含 type、key_hash 和 script_hash 字段。这个新类型可能与 Cardano 的去中心化代表(DRep)功能有关。


2531-2538: CardanoTxCertificate 消息类型的修改

在 CardanoTxCertificate 消息类型中添加了 deposit 和 drep 字段。这些变更似乎与新的质押和投票机制有关。


Line range hint 2567-2622: CardanoCVoteRegistrationParametersType 的更新

CardanoCVoteRegistrationParametersType 消息类型进行了多项更新,包括添加了 voting_purpose 和 payment_address 字段。这些变更可能与 Cardano 的治理和投票系统有关。


1916-1919: CardanoTxAuxiliaryDataSupplementType 枚举的修改

CardanoTxAuxiliaryDataSupplementType 枚举中的 CATALYST_REGISTRATION 值被 CVOTE_REGISTRATION_SIGNATURE 替换。这表明 Cardano 可能正在更新其附加数据处理方式。


Line range hint 1919-1924: 新增 CardanoCVoteRegistrationFormat 枚举

添加了新的 CardanoCVoteRegistrationFormat 枚举,包含 CIP15 和 CIP36 两个值。这可能与 Cardano 改进提案(CIP)相关的新投票注册格式有关。

packages/core/src/types/api/cardano.ts (7)

35-39: 新增 CardanoDRep 接口

定义了新的 CardanoDRep 接口,包含 typekeyHashscriptHash 属性。


48-49: 在 CardanoCertificate 中添加可选属性

CardanoCertificate 接口中,添加了可选的 depositdRep 属性。


140-141: 更新 CardanoCVoteRegistrationDelegation 接口

接口重命名为 CardanoCVoteRegistrationDelegation,属性 votingPublicKey 更名为 votePublicKey


152-160: 更新 CardanoCVoteRegistrationParameters 接口

接口重命名为 CardanoCVoteRegistrationParameters,并更新了以下属性:

  • votePublicKey 设为可选
  • 添加 paymentAddressParameters
  • 更新 format 属性
  • 添加 delegationsvotingPurposepaymentAddress 属性

165-165: 在 CardanoAuxiliaryData 中添加新属性

添加了 cVoteRegistrationParameters 属性。


190-191: 在 CardanoSignTransaction 中添加可选参数

添加了可选参数 chunkifytagCborSets


204-204: 更新 CardanoAuxiliaryDataSupplement 接口

添加了可选属性 cVoteRegistrationSignature

packages/core/src/api/cardano/helper/certificate.ts (7)

12-12: 符合编码规范

成功引入 CardanoDRep 类型,符合项目需求。


160-190: transformDRep 函数实现正确

函数 transformDRep 正确地验证并转换了 CardanoDRep 对象,逻辑清晰,符合预期。


211-216: 正确添加了 deposit 参数的验证

STAKE_REGISTRATION_CONWAYSTAKE_DEREGISTRATION_CONWAY 类型添加了 deposit 参数的验证,确保了参数完整性。


218-220: 正确添加了 dRep 参数的验证

VOTE_DELEGATION 类型添加了 dRep 参数的验证,确保了参数完整性。


228-229: 正确调用了 transformDRep 函数

在转换证书时正确调用了 transformDRep 函数,处理了 dRep 字段。


238-239: 在证书对象中包含了 depositdrep 字段

在返回的证书对象中添加了 depositdrep 字段,确保了新参数的传递。


Line range hint 211-239: 请验证新证书类型在代码库中被正确处理

建议检查 STAKE_REGISTRATION_CONWAYSTAKE_DEREGISTRATION_CONWAYVOTE_DELEGATION 这几个新证书类型在代码库的其他部分是否被正确处理,确保兼容性和功能完整性。

运行以下脚本以查找代码库中对这些证书类型的引用:

✅ Verification successful

验证通过
新证书类型在代码库中被正确处理。

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# 描述:查找代码库中使用新证书类型的地方

# 测试:搜索新证书类型的使用。期望:显示所有引用新证书类型的文件和行号。
rg --type typescript 'CardanoCertificateType\.(STAKE_REGISTRATION_CONWAY|STAKE_DEREGISTRATION_CONWAY|VOTE_DELEGATION)'

Length of output: 155


Script:

#!/bin/bash
# 描述:查找代码库中使用新证书类型的地方

# 搜索所有 .ts 和 .tsx 文件中使用新证书类型的地方
fd --extension ts --extension tsx | xargs rg 'CardanoCertificateType\.(STAKE_REGISTRATION_CONWAY|STAKE_DEREGISTRATION_CONWAY|VOTE_DELEGATION)'

Length of output: 958


Script:

#!/bin/bash
# 描述:提取使用新证书类型的代码上下文

# 定义包含新证书类型的文件
files=(
  "packages/core/src/api/cardano/helper/certificate.ts"
  "packages/core/src/api/cardano/CardanoSignTransaction.ts"
)

# 提取每个文件中包含新证书类型的行及其上下文
for file in "${files[@]}"; do
  echo "文件: $file"
  rg -C 3 'CardanoCertificateType\.(STAKE_REGISTRATION_CONWAY|STAKE_DEREGISTRATION_CONWAY|VOTE_DELEGATION)' "$file"
  echo ""
done

Length of output: 1527

packages/core/src/api/cardano/CardanoSignTransaction.ts (8)

1-2: LGTM!

引入必要的模块semverERRORSHardwareErrorCode


29-29: 类型别名导入正确。

CardanoSignTransaction导入为CardanoSignTransactionType,提高了代码清晰度。


31-32: 导入模块正确。

正确引入了DeviceFirmwareRangegetDeviceFirmwareVersiongetMethodVersionRange模块。


87-88: 参数验证更新正确。

添加了chunkifytagCborSets参数的验证。


192-193: 参数赋值正确。

chunkifytagCborSets添加到this.params中。


197-222: 新增hasConway方法,逻辑正确。

hasConway方法正确检测了Conway相关的参数和证书。


224-229: 新增supportConwayVersionRange方法,定义正确。

正确定义了支持Conway功能的固件版本范围。


278-279: 正确添加chunkifytagCborSetssignTxInitMessage

packages/hd-transport/src/types/messages.ts (4)

761-765: 新枚举 CardanoDRepType 定义合理

CardanoDRepType 枚举的定义清晰,命名直观,符合代码风格。


844-844: 新增属性 chunkify

CardanoGetAddress 类型中,添加了 chunkify?: boolean; 属性。请确保在相关逻辑中正确处理此新属性。


888-889: 新增属性 chunkifytag_cbor_sets

CardanoSignTxInit 类型中,添加了 chunkify?: boolean;tag_cbor_sets?: boolean; 属性。请确保在使用该类型时正确处理这些新属性。


968-974: 新增类型 CardanoDRep

定义了新的类型 CardanoDRep,结构清晰,字段命名合理。

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 12

🧹 Outside diff range comments (1)
packages/core/src/data/messages/messages.json (1)

Line range hint 1916-2622: Conway 时代的变更看起来很全面

对 Cardano 相关消息结构的修改反映了 Conway 时代的新特性。这些变更看起来一致且全面。

建议:为了保持一致性,考虑使用 "CVote" 前缀替换所有与投票相关的 "Vote" 前缀。例如,将 VOTE_DELEGATION 改为 CVOTE_DELEGATION

📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE

📥 Commits

Files that changed from the base of the PR and between 42f0292 and 37b0a00.

📒 Files selected for processing (12)
  • packages/core/src/api/cardano/CardanoSignTransaction.ts (7 hunks)
  • packages/core/src/api/cardano/helper/auxiliaryData.ts (3 hunks)
  • packages/core/src/api/cardano/helper/certificate.ts (4 hunks)
  • packages/core/src/api/ton/TonSignMessage.ts (1 hunks)
  • packages/core/src/api/ton/TonSignProof.ts (1 hunks)
  • packages/core/src/data/messages/messages.json (11 hunks)
  • packages/core/src/types/api/cardano.ts (6 hunks)
  • packages/core/src/types/api/tonSignMessage.ts (1 hunks)
  • packages/core/src/types/api/tonSignProof.ts (1 hunks)
  • packages/hd-transport/scripts/protobuf-patches/index.js (2 hunks)
  • packages/hd-transport/src/types/messages.ts (12 hunks)
  • submodules/firmware (1 hunks)
🧰 Additional context used
🪛 Biome
packages/core/src/api/cardano/CardanoSignTransaction.ts

[error] 58-58: Change to an optional chain.

Unsafe fix: Change to an optional chain.

(lint/complexity/useOptionalChain)

🔇 Additional comments (33)
packages/core/src/types/api/tonSignProof.ts (3)

1-6: 导入语句更新正确。

新增的 UintType 导入与后续的类型更改相符。这种做法有助于保持代码的清晰度和类型安全性。


Line range hint 1-28: 总体评价:代码改动合理,提高了类型安全性。

此次更新主要涉及 UintType 的引入和 expireAt 属性类型的修改。这些变更有助于提高代码的类型安全性和一致性。建议在合并前,仔细检查这些改动对现有代码的影响。


13-13: 类型更新合理,建议验证影响。

expireAt 的类型从 number 改为 UintType 提高了类型安全性。这是个好改动。

不过,请确保检查使用 TonSignProofParams 的所有地方,以避免潜在的类型不匹配问题。

运行以下脚本来查找可能受影响的代码:

✅ Verification successful

类型更新合理,建议验证影响。

之前的脚本无法识别 typescript 类型,请运行以下脚本以查找使用 TonSignProofParams 的位置:


类型更新已验证,无问题。

expireAt 的类型已从 number 更新为 UintType,并且所有使用此类型的地方均已正确处理,未发现类型不匹配的问题。

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# 描述:查找使用 TonSignProofParams 的地方

rg --type typescript "TonSignProofParams" -A 5 -B 5

Length of output: 86


Script:

#!/bin/bash
# 查找使用 TonSignProofParams 的地方

rg "TonSignProofParams" --glob "*.ts" --glob "*.tsx" -A 5 -B 5

Length of output: 4026

packages/core/src/types/api/tonSignMessage.ts (3)

1-6: 导入更新获批!

新增了 UintType 的导入,与后续类型定义的变更一致。这提升了类型安全性。


21-21: 过期时间字段类型更新获批!

将 expireAt 的类型改为 UintType 与其他字段保持一致,提高了时间戳的精确度。


Line range hint 1-43: 总体评价:代码质量提升!

此次更新统一使用 UintType,提高了类型安全性和一致性。建议适当添加注释,解释 UintType 的含义和某些字段的用途,以进一步提升代码可读性。

packages/core/src/api/ton/TonSignProof.ts (2)

Line range hint 1-58: 代码总体评审

除了 'expireAt' 参数的变更外,其他代码保持不变。整体结构清晰,功能完整。

建议在解决 'expireAt' 的问题后,进行全面测试以确保功能正常。


19-19: 检查 'expireAt' 的类型变更

'expireAt' 参数的类型限制被移除了。这可能导致类型相关的问题。

请确认这是有意为之。如果是,考虑在使用此值的地方添加类型检查。如果不是,建议恢复类型规定。

packages/hd-transport/scripts/protobuf-patches/index.js (2)

205-209: 新增了 TON 相关的字段类型

为 TON 签名消息和证明添加了新的无符号整数类型字段:

  1. TonSignMessage 新增了 ton_amountjetton_amountfwd_feeext_ton_amount
  2. TonSignProof 新增了 expire_at

这些新字段可能是为了增强 TON 区块链的支持。请确保相关的 TON 处理逻辑已更新,以利用这些新字段。

运行以下脚本来验证 TON 相关更改:

#!/bin/bash
# 描述:检查 TON 相关字段的使用情况

# 测试:搜索 TonSignMessage 和 TonSignProof 的使用
echo "检查 TON 相关字段的使用:"
rg --type typescript "TonSignMessage|TonSignProof"

130-130: 新增和修改了几个字段的规则

这些更改调整了多个字段的必填/可选状态:

  1. CardanoTxCertificate.deposit 现在是必填的。
  2. GetOwnershipProof.ownership_ids 变为可选。
  3. NEM 相关的几个字段也变为可选。

这些变化可能会影响 protobuf 的序列化和反序列化过程。请确保相关的代码已经适应了这些新规则。

运行以下脚本来验证这些更改的影响:

✅ Verification successful

验证通过:未发现受影响字段的使用

  • 修改后的字段在代码库中暂无使用记录。
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# 描述:检查受影响字段的使用情况

# 测试:搜索 CardanoTxCertificate.deposit 的使用
echo "检查 CardanoTxCertificate.deposit 的使用:"
rg --type typescript "CardanoTxCertificate.*deposit"

# 测试:搜索 GetOwnershipProof.ownership_ids 的使用
echo "检查 GetOwnershipProof.ownership_ids 的使用:"
rg --type typescript "GetOwnershipProof.*ownership_ids"

# 测试:搜索 NEM 相关字段的使用
echo "检查 NEM 相关字段的使用:"
rg --type typescript "NEMTransfer.*mosaics|NEMMosaicDefinition.*networks|NEMAggregateModification.*modifications"

Length of output: 223


Script:

#!/bin/bash
# 描述:检查受影响字段的使用情况

# 测试:搜索 CardanoTxCertificate.deposit 的使用
echo "检查 CardanoTxCertificate.deposit 的使用:"
rg --type ts "CardanoTxCertificate\.deposit"

# 测试:搜索 GetOwnershipProof.ownership_ids 的使用
echo "检查 GetOwnershipProof.ownership_ids 的使用:"
rg --type ts "GetOwnershipProof\.ownership_ids"

# 测试:搜索 NEM 相关字段的使用
echo "检查 NEM 相关字段的使用:"
rg --type ts "NEMTransfer\..*mosaics|NEMMosaicDefinition\..*networks|NEMAggregateModification\..*modifications"

Length of output: 423

packages/core/src/api/cardano/helper/auxiliaryData.ts (5)

11-12: 导入新的类型

成功引入了 CardanoCVoteRegistrationParametersCardanoCVoteRegistrationDelegation,为 CVote 功能提供了类型支持。


19-27: 旧参数兼容处理

transformDelegation 函数中,对旧参数 votingPublicKey 进行了兼容处理,并建议使用新参数 votePublicKey。确保了代码的向后兼容性。


43-55: 处理旧参数,保持兼容性

transformCvoteRegistrationParameters 函数中,对旧参数 votingPublicKeyrewardAddressParameters 进行了兼容处理,并提示用户使用新的参数名称。这有助于平滑过渡到新版本的参数。


57-65: 完善的参数验证

cVoteRegistrationParameters 的各项参数进行了验证,确保输入数据的正确性,提升了代码的健壮性。


117-127: 保持向后兼容

modifyAuxiliaryDataForBackwardsCompatibility 函数中,对 cvote_registration_parameters.payment_address_parameters 进行了兼容性修改,确保旧版本的数据仍可正常使用。

packages/core/src/types/api/cardano.ts (6)

49-50: 在 'CardanoCertificate' 中新增属性

'CardanoCertificate' 接口新增了 'deposit' 和 'dRep' 属性。请确认这些属性在相关流程中已正确处理。


141-143: 接口重命名和属性更新

接口重命名为 'CardanoCVoteRegistrationDelegation',并将 'votingPublicKey' 更名为 'votePublicKey'。请确保所有引用和使用均已更新。


153-161: 新增 'CardanoCVoteRegistrationParameters' 接口

新接口定义清晰简洁。注意 'votePublicKey' 为可选项,确认这符合需求。确保所有参数在实现中正确使用。


166-166: 更新 'CardanoAuxiliaryData' 接口

'CardanoAuxiliaryData' 中新增了 'cVoteRegistrationParameters' 属性。处理辅助数据时,请确保对新属性的支持。


191-192: 在 'CardanoSignTransaction' 中添加新属性

添加了 'chunkify' 和 'tagCborSets' 属性。请确认这些属性在交易签名过程中已正确实现,并对其影响进行了充分测试。


205-205: 添加 'cVoteRegistrationSignature' 属性

在 'CardanoAuxiliaryDataSupplement' 中新增了 'cVoteRegistrationSignature' 属性。处理辅助数据补充时,请确保正确使用此属性。

packages/core/src/api/cardano/helper/certificate.ts (5)

12-12: 导入 CardanoDRep 符合预期

该类型的导入用于后续函数,实现正确。


160-190: transformDRep 函数实现正确

该函数有效地验证并转换了 CardanoDRep,逻辑清晰,简洁明了。


218-220: 验证 'dRep' 参数的添加符合预期

VOTE_DELEGATION 类型证书增加了 dRep 参数的验证,逻辑正确。


228-228: 正确调用 transformDRep 函数

certificate.dRep 进行转换,确保数据一致性。


238-239: 在证书对象中正确添加 'deposit' 和 'drep' 字段

返回的证书对象包括新的 depositdrep 字段,逻辑清晰。

packages/hd-transport/src/types/messages.ts (7)

761-765: 枚举 CardanoDRepType 定义无误

枚举定义正确,命名符合规范。


968-974: 类型 CardanoDRep 定义正确

类型定义合理,属性命名一致,遵循代码规范。


983-984: CardanoTxCertificate 类型更新正确

新增的 depositdrep 属性定义合理,类型匹配,符合代码规范。


3894-3895: TonSignMessage 类型更新正确

新增的 ton_amountjetton_amount 属性定义合理,类型一致。


3908-3909: TonSignMessage 类型扩展正确

新增的 ext_ton_amountext_payload 属性定义合理,类型匹配。


3923-3923: TonSignProof 类型更新正确

新增的 expire_at 属性定义合理,类型一致。


4161-4165: MessageType 类型更新正确

新增的类型映射添加正确,命名符合规范。

submodules/firmware Show resolved Hide resolved
Comment on lines 14 to 16
tonAmount: UintType;
jettonAmount?: UintType;
fwdFee?: UintType;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick (assertive)

金额字段类型更新获批!

将 tonAmount、jettonAmount 和 fwdFee 的类型从 number 改为 UintType 提高了精度。建议在注释中解释 UintType 的具体含义,以增强代码可读性。

packages/core/src/types/api/tonSignMessage.ts Outdated Show resolved Hide resolved
packages/core/src/api/ton/TonSignMessage.ts Outdated Show resolved Hide resolved
packages/core/src/types/api/cardano.ts Show resolved Hide resolved
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 12

📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE

📥 Commits

Files that changed from the base of the PR and between 37b0a00 and f800200.

📒 Files selected for processing (8)
  • packages/core/src/api/cardano/CardanoSignTransaction.ts (8 hunks)
  • packages/core/src/api/cardano/helper/auxiliaryData.ts (3 hunks)
  • packages/core/src/api/cardano/helper/certificate.ts (4 hunks)
  • packages/core/src/data/messages/messages.json (11 hunks)
  • packages/core/src/types/api/cardano.ts (6 hunks)
  • packages/hd-transport/scripts/protobuf-patches/index.js (1 hunks)
  • packages/hd-transport/src/types/messages.ts (9 hunks)
  • submodules/firmware (1 hunks)
🧰 Additional context used
🪛 Biome
packages/core/src/api/cardano/CardanoSignTransaction.ts

[error] 58-58: Change to an optional chain.

Unsafe fix: Change to an optional chain.

(lint/complexity/useOptionalChain)

🔇 Additional comments (18)
submodules/firmware (1)

1-1: 固件子模块已更新。请验证新提交。

固件子模块指向了新的提交。我们需要确保这个新提交存在且可访问。

运行以下脚本来验证新提交:

packages/core/src/data/messages/messages.json (2)

Line range hint 1892-2538: Cardano更新增强了功能

这些变更扩展了对Cardano新特性的支持,特别是Conway时代的治理机制。新的证书类型、DRep枚举和字段添加都很协调。

建议:

  1. 添加简洁的注释,解释新添加的类型和字段。
  2. 全面测试这些更改,确保与现有代码的无缝集成。
  3. 更新相关文档,反映这些新功能。

总体而言,这些改动提升了对Cardano最新发展的支持,值得肯定。


2531-2538: 新字段补充了证书结构

deposit和drep字段的添加与新的证书类型和DRep系统一致。这增强了CardanoTxCertificate消息的功能。

建议:验证这些新字段在其他相关消息和函数中的使用,确保整体集成正确。

packages/core/src/api/cardano/helper/auxiliaryData.ts (4)

11-12: 类型导入正确

新添加的类型 CardanoCVoteRegistrationParametersCardanoCVoteRegistrationDelegation 导入正确,符合代码更新需求。


78-87: 确保可选参数的正确处理

在构建返回对象时,请确保可选参数(如 formatdelegationsvotingPurposepaymentAddress)在未提供时处理得当,避免出现 undefined 的情况。

请确认这些参数在未提供时不会引发任何问题。


101-110: 辅助数据转换逻辑清晰

对辅助数据的转换逻辑更新准确,成功引入了新的 cVoteRegistrationParameters 处理方式。


117-126: 兼容性处理完善

modifyAuxiliaryDataForBackwardsCompatibility 函数中,对兼容性进行了正确的处理,确保旧版本数据的适配。

packages/core/src/types/api/cardano.ts (5)

166-166: 辅助数据更新,检查兼容性

CardanoAuxiliaryData 接口中,添加了 cVoteRegistrationParameters。请确保在处理辅助数据时,正确处理了新添加的参数,保持与旧版本的兼容性。


191-192: 签名交易请求添加新属性

CardanoSignTransaction 接口中,新增了可选属性 chunkifytagCborSets。请确认这些属性在签名流程中的作用,并确保相关逻辑已更新。


205-205: 更新辅助数据补充的属性名称

CardanoAuxiliaryDataSupplement 接口中的属性 cVoteRegistrationSignature 已更新。请确保在使用该属性时,代码中的引用和逻辑都已相应调整。


141-143: 接口重命名,更新引用

CardanoGovernanceRegistrationDelegation 接口已重命名为 CardanoCVoteRegistrationDelegation。请确保代码中所有引用旧接口的地方都已更新,避免类型错误。

#!/bin/bash
# 查找仍然引用旧接口的地方
rg 'CardanoGovernanceRegistrationDelegation'

49-50: 请确认新增属性已正确处理

CardanoCertificate 接口中,添加了可选属性 depositdRep。请确保在处理证书时,这些属性被正确考虑,以避免潜在的问题。

✅ Verification successful

新增属性处理正确

所有使用 CardanoCertificate 的地方已正确处理新增的 depositdRep 属性,未发现潜在问题。

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# 检查所有使用 CardanoCertificate 的地方,确保处理了新属性
rg --type ts 'CardanoCertificate' -A 5

Length of output: 368


Script:

#!/bin/bash
# 检查所有使用 CardanoCertificate 的地方,确保处理了新增的 deposit 和 dRep 属性
rg --type ts 'CardanoCertificate' -A 10

Length of output: 10372

packages/core/src/api/cardano/CardanoSignTransaction.ts (2)

224-229: 确认是否需要为 model_mini 定义固件版本范围

supportConwayVersionRange 方法中,仅定义了 model_touch 的固件版本范围,未包含 model_mini。请确认 model_mini 是否需要支持 Conway 功能,若需要,请补充相应的固件版本范围。


230-249: 检查未定义版本范围时的逻辑处理

checkSupportConway 方法中,如果 versionRange 未定义,函数将直接返回。这意味着可能会跳过某些设备的固件版本检查。请确认这种处理方式是否符合预期,或者是否需要对所有设备进行固件版本验证。

packages/hd-transport/src/types/messages.ts (4)

984-984: deposit 属性类型应与其他金额类型一致

CardanoTxCertificate 类型中,新增的 deposit 属性类型为 UintType,这与项目中其他金额类型一致,符合最佳实践。


776-776: 🛠️ Refactor suggestion

统一枚举命名风格:CVote

CardanoTxAuxiliaryDataSupplementType 枚举中,CVOTE_REGISTRATION_SIGNATURE 的命名方式与其他地方的 CVote 前缀不一致。为了保持代码一致性,建议将其重命名为 CVote_REGISTRATION_SIGNATURE

应用以下修改:

- CVOTE_REGISTRATION_SIGNATURE = 1,
+ CVote_REGISTRATION_SIGNATURE = 1,

Likely invalid or redundant comment.


1015-1015: 🛠️ Refactor suggestion

命名一致性:cvote_registration_parameters

CardanoTxAuxiliaryData 类型中,cvote_registration_parameters 属性的命名与其他地方的 CVote 前缀大小写不一致。建议统一大小写,确保命名风格一致。

应用以下修改:

- cvote_registration_parameters?: CardanoCVoteRegistrationParametersType;
+ cVote_registration_parameters?: CardanoCVoteRegistrationParametersType;

- cvote_registration_parameters?: CardanoCVoteRegistrationParametersType;
+ CVote_registration_parameters?: CardanoCVoteRegistrationParametersType;

Likely invalid or redundant comment.


995-998: ⚠️ Potential issue

weight 属性类型应为 UintType

CardanoCVoteRegistrationDelegation 类型中,weight 属性目前为 number 类型。为与其他数值类型保持一致,建议将其修改为 UintType

应用以下修改:

- weight: number;
+ weight: UintType;

Likely invalid or redundant comment.

@@ -127,6 +127,7 @@ const TYPE_PATCH = {
'CardanoPoolParametersType.cost': UINT_TYPE,
'CardanoPoolParametersType.margin_numerator': UINT_TYPE,
'CardanoPoolParametersType.margin_denominator': UINT_TYPE,
'CardanoTxCertificate.deposit': UINT_TYPE,
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick (assertive)

新增 Cardano 交易证书存款字段

新增的 CardanoTxCertificate.deposit 字段使用 UINT_TYPE 类型很合适。这与其他 Cardano 相关字段保持一致。

建议:考虑在nearby添加简短注释,解释此字段的用途。这将提高代码可读性。

Comment on lines +1892 to +1896
"STAKE_POOL_REGISTRATION": 3,
"STAKE_REGISTRATION_CONWAY": 7,
"STAKE_DEREGISTRATION_CONWAY": 8,
"VOTE_DELEGATION": 9
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick (assertive)

新证书类型看起来不错

新增的Cardano证书类型反映了Conway时代的变化。命名一致,值正确递增。

建议:考虑为这些新类型添加简短注释,解释它们的用途。

Comment on lines +1898 to +1903
"CardanoDRepType": {
"values": {
"KEY_HASH": 0,
"SCRIPT_HASH": 1,
"ABSTAIN": 2,
"NO_CONFIDENCE": 3
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick (assertive)

DRep类型是个好主意

新的CardanoDRepType枚举很好地捕捉了Cardano的委托代表系统。命名清晰,遵循惯例。

建议:在枚举前添加一行注释,简要解释DRep的概念。

Comment on lines +66 to +67
const { paymentAddressParameters } = cVoteRegistrationParameters;
validateAddressParameters(paymentAddressParameters);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

检查 'paymentAddressParameters' 是否为 undefined

在调用 validateAddressParameters(paymentAddressParameters) 之前,应该检查 paymentAddressParameters 是否为 undefined,以防止可能的错误。

建议修改如下:

const { paymentAddressParameters } = cVoteRegistrationParameters;
+ if (paymentAddressParameters) {
    validateAddressParameters(paymentAddressParameters);
+ }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
const { paymentAddressParameters } = cVoteRegistrationParameters;
validateAddressParameters(paymentAddressParameters);
const { paymentAddressParameters } = cVoteRegistrationParameters;
if (paymentAddressParameters) {
validateAddressParameters(paymentAddressParameters);
}

Comment on lines +44 to +55
if (cVoteRegistrationParameters.votingPublicKey) {
console.warn('Please use votePublicKey instead of votingPublicKey.');
// @ts-expect-error
cVoteRegistrationParameters.votePublicKey = cVoteRegistrationParameters.votingPublicKey;
}
// @ts-expect-error
if (cVoteRegistrationParameters.rewardAddressParameters) {
console.warn('Please use paymentAddressParameters instead of rewardAddressParameters.');
cVoteRegistrationParameters.paymentAddressParameters =
// @ts-expect-error
cVoteRegistrationParameters.rewardAddressParameters;
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

避免修改函数参数

同样地,在 transformCvoteRegistrationParameters 函数中,直接修改了传入的 cVoteRegistrationParameters 对象。建议使用新的对象来处理,避免对原始参数的修改。

建议修改如下:

let { votePublicKey, paymentAddressParameters } = cVoteRegistrationParameters;

if (cVoteRegistrationParameters.votingPublicKey) {
  console.warn('Please use votePublicKey instead of votingPublicKey.');
- cVoteRegistrationParameters.votePublicKey = cVoteRegistrationParameters.votingPublicKey;
+ votePublicKey = cVoteRegistrationParameters.votingPublicKey;
}

if (cVoteRegistrationParameters.rewardAddressParameters) {
  console.warn('Please use paymentAddressParameters instead of rewardAddressParameters.');
- cVoteRegistrationParameters.paymentAddressParameters = cVoteRegistrationParameters.rewardAddressParameters;
+ paymentAddressParameters = cVoteRegistrationParameters.rewardAddressParameters;
}
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
if (cVoteRegistrationParameters.votingPublicKey) {
console.warn('Please use votePublicKey instead of votingPublicKey.');
// @ts-expect-error
cVoteRegistrationParameters.votePublicKey = cVoteRegistrationParameters.votingPublicKey;
}
// @ts-expect-error
if (cVoteRegistrationParameters.rewardAddressParameters) {
console.warn('Please use paymentAddressParameters instead of rewardAddressParameters.');
cVoteRegistrationParameters.paymentAddressParameters =
// @ts-expect-error
cVoteRegistrationParameters.rewardAddressParameters;
}
let { votePublicKey, paymentAddressParameters } = cVoteRegistrationParameters;
if (cVoteRegistrationParameters.votingPublicKey) {
console.warn('Please use votePublicKey instead of votingPublicKey.');
votePublicKey = cVoteRegistrationParameters.votingPublicKey;
}
if (cVoteRegistrationParameters.rewardAddressParameters) {
console.warn('Please use paymentAddressParameters instead of rewardAddressParameters.');
paymentAddressParameters = cVoteRegistrationParameters.rewardAddressParameters;
}

Comment on lines +160 to +189
const transformDRep = (dRep: CardanoDRep | undefined): PROTO.CardanoDRep | undefined => {
if (!dRep) {
return undefined;
}

validateParams(dRep, [
{ name: 'type', type: 'number', required: true },
{ name: 'keyHash', type: 'string' },
{ name: 'scriptHash', type: 'string' },
]);

if (dRep.type === PROTO.CardanoDRepType.KEY_HASH && !dRep.keyHash) {
throw ERRORS.TypedError(
HardwareErrorCode.CallMethodInvalidParameter,
'key_hash must be supplied for key_hash type'
);
}

if (dRep.type === PROTO.CardanoDRepType.SCRIPT_HASH && !dRep.scriptHash) {
throw ERRORS.TypedError(
HardwareErrorCode.CallMethodInvalidParameter,
'script_hash must be supplied for script_hash type'
);
}
return {
type: dRep.type,
key_hash: dRep.keyHash,
script_hash: dRep.scriptHash,
};
};
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

建议处理未知的 dRep.type

当前的 transformDRep 函数只处理了 KEY_HASHSCRIPT_HASH 类型。如果出现未知的 dRep.type,函数可能返回未定义的 key_hashscript_hash,可能导致意外行为。建议添加错误处理,以捕获未知的 dRep.type,提高代码的健壮性。

可以考虑以下修改:

   if (dRep.type === PROTO.CardanoDRepType.SCRIPT_HASH && !dRep.scriptHash) {
     throw ERRORS.TypedError(
       HardwareErrorCode.CallMethodInvalidParameter,
       'script_hash must be supplied for script_hash type'
     );
+  } else if (dRep.type !== PROTO.CardanoDRepType.KEY_HASH && dRep.type !== PROTO.CardanoDRepType.SCRIPT_HASH) {
+    throw ERRORS.TypedError(
+      HardwareErrorCode.CallMethodInvalidParameter,
+      `Unsupported dRep type: ${dRep.type}`
+    );
   }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
const transformDRep = (dRep: CardanoDRep | undefined): PROTO.CardanoDRep | undefined => {
if (!dRep) {
return undefined;
}
validateParams(dRep, [
{ name: 'type', type: 'number', required: true },
{ name: 'keyHash', type: 'string' },
{ name: 'scriptHash', type: 'string' },
]);
if (dRep.type === PROTO.CardanoDRepType.KEY_HASH && !dRep.keyHash) {
throw ERRORS.TypedError(
HardwareErrorCode.CallMethodInvalidParameter,
'key_hash must be supplied for key_hash type'
);
}
if (dRep.type === PROTO.CardanoDRepType.SCRIPT_HASH && !dRep.scriptHash) {
throw ERRORS.TypedError(
HardwareErrorCode.CallMethodInvalidParameter,
'script_hash must be supplied for script_hash type'
);
}
return {
type: dRep.type,
key_hash: dRep.keyHash,
script_hash: dRep.scriptHash,
};
};
const transformDRep = (dRep: CardanoDRep | undefined): PROTO.CardanoDRep | undefined => {
if (!dRep) {
return undefined;
}
validateParams(dRep, [
{ name: 'type', type: 'number', required: true },
{ name: 'keyHash', type: 'string' },
{ name: 'scriptHash', type: 'string' },
]);
if (dRep.type === PROTO.CardanoDRepType.KEY_HASH && !dRep.keyHash) {
throw ERRORS.TypedError(
HardwareErrorCode.CallMethodInvalidParameter,
'key_hash must be supplied for key_hash type'
);
}
if (dRep.type === PROTO.CardanoDRepType.SCRIPT_HASH && !dRep.scriptHash) {
throw ERRORS.TypedError(
HardwareErrorCode.CallMethodInvalidParameter,
'script_hash must be supplied for script_hash type'
);
} else if (dRep.type !== PROTO.CardanoDRepType.KEY_HASH && dRep.type !== PROTO.CardanoDRepType.SCRIPT_HASH) {
throw ERRORS.TypedError(
HardwareErrorCode.CallMethodInvalidParameter,
`Unsupported dRep type: ${dRep.type}`
);
}
return {
type: dRep.type,
key_hash: dRep.keyHash,
script_hash: dRep.scriptHash,
};
};

}

export enum CardanoGovernanceRegistrationFormat {
export enum CardanoCVoteRegistrationFormat {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

命名风格一致性:CardanoCVoteRegistrationFormat

类型命名中,CVote 前缀应保持大写格式,以保持一致性。请确认命名是否符合项目的命名规范。

Comment on lines +1002 to +1010
export type CardanoCVoteRegistrationParametersType = {
vote_public_key?: string;
staking_path: number[];
reward_address_parameters: CardanoAddressParametersType;
payment_address_parameters?: CardanoAddressParametersType;
nonce: number;
format?: CardanoGovernanceRegistrationFormat;
delegations: CardanoGovernanceRegistrationDelegation[];
format?: CardanoCVoteRegistrationFormat;
delegations: CardanoCVoteRegistrationDelegation[];
voting_purpose?: number;
payment_address?: string;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

属性命名风格不一致

CardanoCVoteRegistrationParametersType 类型中,部分属性使用了下划线命名(如 vote_public_key),而其他属性使用了驼峰式命名(如 staking_path)。建议统一命名风格,保持代码一致性。

可选择以下一种命名风格:

  • 全部使用驼峰式命名:

    - vote_public_key?: string;
    + votePublicKey?: string;
  • 全部使用下划线命名:

    - staking_path: number[];
    + staking_path: number[];

Committable suggestion was skipped due to low confidence.

Comment on lines +756 to +759
STAKE_REGISTRATION_CONWAY = 7,
STAKE_DEREGISTRATION_CONWAY = 8,
VOTE_DELEGATION = 9,
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

注意枚举值编号的连续性

CardanoCertificateType 枚举中,新增的枚举值从 7 开始(STAKE_REGISTRATION_CONWAY = 7),之前的值最高为 3。为了保持编号的连续性和避免潜在的混淆,建议调整枚举值的编号,或者添加注释解释跳跃的原因。

应用以下修改:

+ // 值 4 至 6 是否有特殊含义,若无,建议重新编号
  STAKE_REGISTRATION_CONWAY = 4,
  STAKE_DEREGISTRATION_CONWAY = 5,
  VOTE_DELEGATION = 6,

Committable suggestion was skipped due to low confidence.

@@ -831,6 +841,7 @@
network_id: number;
address_parameters: CardanoAddressParametersType;
derivation_type: CardanoDerivationType;
chunkify?: boolean;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codebase verification

chunkify 属性未在代码中处理

CardanoGetAddress 类型中新增了 chunkify 属性,但目前代码库中未发现对此属性的处理逻辑。请确保在相关功能中正确使用和处理 chunkify 属性,以避免潜在的问题。

🔗 Analysis chain

检查新增的可选属性 chunkify

CardanoGetAddress 类型中,新增了可选属性 chunkify。请确保在代码的其他部分正确处理了该属性,避免潜在的错误。

运行以下脚本验证 chunkify 属性的使用情况:

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# 描述:查找代码库中 `CardanoGetAddress` 类型的使用情况,确认 `chunkify` 属性的处理

# 测试:搜索所有使用了 `CardanoGetAddress` 的文件,期望看到对 `chunkify` 属性的处理
rg --type js --type ts 'CardanoGetAddress' -A 5

Length of output: 6384


Script:

#!/bin/bash
# 描述:查找代码库中对 `CardanoGetAddress` 类型的 `chunkify` 属性的处理情况

# 搜索所有包含 `CardanoGetAddress` 的文件,并在附近查找 `chunkify` 属性的使用
rg --type js --type ts 'CardanoGetAddress' -A 10 | rg 'chunkify'

Length of output: 128

@ByteZhang1024 ByteZhang1024 marked this pull request as draft October 16, 2024 03:44
auto-merge was automatically disabled October 16, 2024 03:44

Pull request was converted to draft

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant