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/obridge docs #322

Open
wants to merge 14 commits into
base: main
Choose a base branch
from
Open

Feat/obridge docs #322

wants to merge 14 commits into from

Conversation

trung2891
Copy link
Member

@trung2891 trung2891 commented Aug 27, 2024

  • Docs for bridge between Oraichain and EVM bases

Summary by CodeRabbit

  • New Features

    • Introduced comprehensive documentation for the Obridge project, detailing cross-chain asset transfers and functionalities.
    • Launched the Oraichain-EVM bridge, enabling seamless asset transfers between Oraichain and EVM-compatible chains.
    • Added specifications for the UniversalSwap memo, enhancing token swap capabilities within the multi-chain ecosystem.
    • Released a guide on Swap Route functionality, facilitating multi-hop token swaps on the Oraidex platform.
    • Introduced the Ton Bridge, enabling token transfers between the Ton blockchain and Oraichain.
  • Documentation

    • Enhanced resources for understanding the operational framework and technical implementation of Obridge, including encoding processes and API usage.
    • Provided a technical guide for implementing token bridging between the Ton blockchain and Oraichain.

Copy link

coderabbitai bot commented Aug 27, 2024

Warning

Rate limit exceeded

@perfogic has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 10 minutes and 27 seconds before requesting another review.

How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

Commits

Files that changed from the base of the PR and between 0dc395c and cd9270e.

Walkthrough

The updates introduce several new documentation files related to the Obridge project by Oraichain, detailing cross-chain solutions for asset transfers between various blockchain ecosystems. Key features include the Oraichain-EVM bridge, the Ton Bridge for token transfers, UniversalSwap memo specifications, and encoding processes for seamless token swaps. Additionally, the documentation outlines operational frameworks, supported chains, and code examples for developers, enhancing clarity and functionality in cross-chain interactions.

Changes

Files Change Summary
specs/obridge/background.md Introduced background documentation for the Obridge project, detailing its architecture and operational capabilities.
specs/obridge/orai-evm.md Introduced the Oraichain-EVM bridge, detailing workflows and code examples for asset transfers.
specs/obridge/orai-ton.md Introduced documentation for the Ton Bridge, detailing workflows for token transfers between Ton and Oraichain.
specs/obridge/universal-swap-memo.md Specified the structure and functionality of the UniversalSwap memo for token swaps using Protocol Buffers.
specs/obridge/universal-swap/encode-memo.md Outlined the process for encoding a memo using Protocol Buffers and TypeScript, with structured steps and code snippets.
specs/obridge/universal-swap/swap-route.md Introduced a guide for Swap Route functionality, detailing multi-hop swaps and API usage for token conversions.

Poem

🐰 In the land of code where changes bloom,
Obridge hops forth, dispelling the gloom.
Tokens dance across the chain,
With seamless swaps, there’s much to gain!
A bridge to EVM, a memo so bright,
Hooray for the swaps, oh what a delight! 🌟


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share
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>.
    • 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 generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @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 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.

Copy link

github-actions bot commented Aug 27, 2024

badge

Code Coverage Summary

Filename                                                                      Stmts    Miss  Cover    Missing
--------------------------------------------------------------------------  -------  ------  -------  --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
docs/assets/main.js                                                              58      58  0.00%    1-58
docs/assets/search.js                                                             1       1  0.00%    1
packages/ibc-routing/hardhat.config.ts                                           59      59  0.00%    1-75
packages/ibc-routing/src/db.ts                                                  158     158  0.00%    1-263
packages/ibc-routing/src/event.ts                                                85      85  0.00%    1-122
packages/ibc-routing/src/index.ts                                                31      31  0.00%    1-56
packages/ibc-routing/src/machine.ts                                              30      30  0.00%    1-34
packages/ibc-routing/test/mock-eth-ws.ts                                         52      52  0.00%    1-55
packages/ibc-routing/test/mock-tendermint-ws.spec.ts                             25      17  32.00%   7-24
packages/oraidex-common/src/alpha-network.ts                                     61       0  100.00%
packages/oraidex-common/src/axios-request.ts                                     11      11  0.00%    1-20
packages/oraidex-common/src/bigdecimal.ts                                       139      50  64.02%   23-24, 30-33, 40-41, 45-54, 63-65, 71-73, 120-124, 127-146, 149-150, 153-154, 180-181, 184-185
packages/oraidex-common/src/constant.ts                                         161       0  100.00%
packages/oraidex-common/src/helper.ts                                           464     139  70.04%   141-142, 145-156, 159-169, 276-283, 286-299, 309-315, 325-340, 343-350, 353-383, 386-394, 397-399, 402-404, 408-417, 426-440, 446-448, 533-534, 559-562
packages/oraidex-common/src/ibc-info.ts                                         183     183  0.00%    1-215
packages/oraidex-common/src/index.ts                                             13      13  0.00%    1-13
packages/oraidex-common/src/network.ts                                          968       0  100.00%
packages/oraidex-common/src/pairs.ts                                            154       4  97.40%   151-152, 157-158
packages/oraidex-common/src/token.ts                                             71       0  100.00%
packages/oraidex-common/src/wallet.ts                                           146     146  0.00%    1-236
packages/oraidex-common/src/config/chainInfosWithIcon.ts                        196     196  0.00%    1-210
packages/oraidex-common/src/interface/index.ts                                    1       1  0.00%    1
packages/oraidex-common/src/interface/wallet.ts                                  19      19  0.00%    1-20
packages/oraidex-common/tests/bigdecimal.spec.ts                                220       0  100.00%
packages/oraidex-common/tests/helper.spec.ts                                    560       8  98.57%   97-98, 337-338, 628-629, 659-660
packages/oraidex-common/tests/pairs.spec.ts                                      24       0  100.00%
packages/oraiswap-v3/src/const.ts                                                11       0  100.00%
packages/oraiswap-v3/src/handler.ts                                             266       6  97.74%   60-61, 97-98, 213-214
packages/oraiswap-v3/src/helpers.ts                                             212      10  95.28%   96-97, 107-108, 133-134, 162-163, 173-174
packages/oraiswap-v3/src/index.ts                                                 5       0  100.00%
packages/oraiswap-v3/src/types.ts                                                 0       0  100.00%
packages/oraiswap-v3/src/wasm/oraiswap_v3_wasm.d.ts                              32      32  0.00%    469-500
packages/oraiswap-v3/src/wasm/oraiswap_v3_wasm.js                              1543     710  53.98%   32-34, 92-94, 100-101, 103-108, 113-120, 136-145, 160-223, 233-255, 264-284, 293-313, 322-342, 351-371, 380-400, 409-429, 463-464, 480-502, 508-511, 518-530, 536-548, 555-558, 565-579, 587-590, 595-598, 611-614, 620-623, 636-639, 660-663, 668-671, 688-729, 736-754, 762-776, 783-786, 793-807, 817-838, 848-869, 884-885, 910-911, 929-953, 958-961, 966-969, 976-979, 984-987, 992-995, 1002-1005, 1010-1013, 1028-1031, 1036-1039, 1044-1047, 1062-1065, 1080-1083, 1088-1091, 1096-1099, 1106-1109, 1114-1117, 1122-1125, 1132-1135, 1149-1150, 1161-1164, 1170-1173, 1179-1182, 1188-1191, 1196-1199, 1204-1207, 1214-1217, 1219-1225, 1300-1301, 1329-1330, 1333-1335, 1356-1361, 1364-1365, 1368-1372, 1386-1387, 1390-1391, 1394-1395, 1398-1399, 1402-1403, 1406-1407, 1410-1413, 1416-1417, 1420-1421, 1424-1425, 1428-1431, 1434-1437, 1444, 1447-1448, 1451-1458, 1465-1466, 1469-1470, 1473-1474, 1477, 1480-1481, 1484-1491, 1500-1504, 1507, 1510-1511
packages/oraiswap-v3/tests/handler.spec.ts                                      277       0  100.00%
packages/oraiswap-v3/tests/helpers.spec.ts                                      577       0  100.00%
packages/oraiswap-v3/tests/test-common.ts                                        32       0  100.00%
packages/universal-swap/src/handler.ts                                         1199     607  49.37%   81-82, 103-104, 119-121, 127-130, 141-143, 155-160, 181-203, 282-312, 369-374, 425-445, 496-501, 548-559, 583, 585-589, 602-613, 620-635, 638-684, 695-705, 708-718, 725-732, 746-823, 827-858, 862-881, 884-901, 905-956, 961-1043, 1049-1134, 1144-1149, 1179-1181, 1183-1184, 1190, 1204-1218, 1246-1249, 1282-1285, 1292-1302, 1307-1320, 1361-1362, 1403-1414, 1481-1482
packages/universal-swap/src/helper.ts                                           915     329  64.04%   86-88, 224-225, 271-276, 304-305, 339-351, 365-419, 460-462, 484-490, 514-516, 520-522, 529-556, 616-617, 650-657, 664-705, 717-785, 824-825, 840, 868, 875-896, 898-899, 932-933, 936-939, 949-991, 999-1015, 1074-1084, 1095-1100, 1119, 1145-1157
packages/universal-swap/src/index.ts                                              6       6  0.00%    1-6
packages/universal-swap/src/swap-filter.ts                                       40       0  100.00%
packages/universal-swap/src/types.ts                                             10       0  100.00%
packages/universal-swap/src/wrapper.ts                                           79      79  0.00%    1-117
packages/universal-swap/src/proto/index.ts                                        1       1  0.00%    1
packages/universal-swap/src/proto/universal-swap-memo-proto-handler.ts           66      60  9.09%    21-46, 50-91
packages/universal-swap/src/proto/universal_swap_memo.ts                        911     818  10.20%   110-112, 116-132, 135-183, 186-193, 196-213, 216-217, 219-230, 233-235, 239-243, 246-266, 269-274, 277-282, 285-286, 288-291, 294-296, 300-304, 307-327, 330-333, 336-341, 344-345, 347-350, 353-355, 359-366, 369-396, 399-405, 408-416, 419-420, 422-426, 429-431, 435-445, 448-482, 485-490, 493-504, 507-508, 510-515, 518-520, 524-534, 537-571, 574-583, 586-597, 600-601, 603-613, 616-618, 622-635, 638-679, 682-690, 693-707, 710-711, 713-727, 730-732, 736-752, 755-803, 806-813, 816-833, 836-837, 839-846, 849-851, 855-871, 874-922, 925-932, 935-952, 955-956, 958-965, 968-970, 974-981, 984-1011, 1014-1018, 1021-1029, 1032-1033, 1035-1039, 1042-1044, 1048-1052, 1055-1075, 1078-1079, 1082-1087, 1090-1091, 1093-1096, 1111-1119, 1122-1128
packages/universal-swap/src/universal-demos/alpha-smart-router.ts               114     114  0.00%    1-589
packages/universal-swap/src/universal-demos/evm-to-evm.ts                        52      52  0.00%    1-68
packages/universal-swap/src/universal-demos/from-cosmos-to-evm.ts                41      41  0.00%    1-53
packages/universal-swap/src/universal-demos/from-oraichain-to-oraichain.ts       49      49  0.00%    1-66
packages/universal-swap/src/universal-demos/handle-simulate-swap.ts              32      32  0.00%    1-36
packages/universal-swap/src/universal-demos/ibc-hooks-demo.ts                    40      40  0.00%    1-55
packages/universal-swap/src/universal-demos/neutaro-ibc-demo.ts                  40      40  0.00%    1-47
packages/universal-swap/src/universal-demos/noble-ibc-demo.ts                    41      41  0.00%    1-45
packages/universal-swap/src/universal-demos/offline-wallet.ts                    19      19  0.00%    1-21
packages/universal-swap/tests/helper.spec.ts                                    697      24  96.55%   378, 947-969
packages/universal-swap/tests/index.spec.ts                                    1735      32  98.15%   240-243, 271-272, 283-284, 289-290, 292-293, 295-296, 1130-1149
packages/universal-swap/tests/smart-router-common.ts                            864       0  100.00%
packages/universal-swap/tests/test-common.ts                                     56       0  100.00%
TOTAL                                                                         13852    4403  68.21%

Diff against main

Filename      Stmts    Miss  Cover
----------  -------  ------  --------
TOTAL             0       0  +100.00%

Results for commit: cd9270e

Minimum allowed coverage is 0%

♻️ This comment has been updated with latest results

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: 6

Outside diff range, codebase verification and nitpick comments (1)
specs/obridge/universal-swap/encode-memo.md (1)

5-13: Add context about directory structure and dependencies.

The command to generate TypeScript definitions is correct, but it would be helpful to provide context about the directory structure and dependencies.

For example, mention where the .proto files are located and any necessary npm packages that need to be installed.

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 87e5faa and fb99bf3.

Files ignored due to path filters (3)
  • specs/obridge/image/evm_to_orai.png is excluded by !**/*.png
  • specs/obridge/image/obridge_universal.png is excluded by !**/*.png
  • specs/obridge/image/orai_to_evm.png is excluded by !**/*.png
Files selected for processing (5)
  • specs/obridge/background.md (1 hunks)
  • specs/obridge/orai-evm.md (1 hunks)
  • specs/obridge/universal-swap-memo.md (1 hunks)
  • specs/obridge/universal-swap/encode-memo.md (1 hunks)
  • specs/obridge/universal-swap/swap-route.md (1 hunks)
Additional context used
Markdownlint
specs/obridge/background.md

47-47: null
No empty links

(MD042, no-empty-links)


48-48: null
No empty links

(MD042, no-empty-links)


49-49: null
No empty links

(MD042, no-empty-links)

specs/obridge/orai-evm.md

128-128: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

LanguageTool
specs/obridge/orai-evm.md

[uncategorized] ~44-~44: Loose punctuation mark.
Context: ...): Parameters: - _tokenContract : The address of the token want to bridge...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~45-~45: Loose punctuation mark.
Context: ...e token want to bridge. - _destination: A string combining `${sourceChannel}/${...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~46-~46: ‘Amount of’ should usually only be used with uncountable or mass nouns. Consider using “number” if this is not the case.
Context: ... used for UniversalSwap - _amount: The amount of tokens to bridge. Example: Brid...

(AMOUNTOF_TO_NUMBEROF)


[uncategorized] ~144-~144: A comma might be missing here.
Context: ... bridge CW20 tokens from Oraichain to a chain use the CW20 Send function along with t...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)

specs/obridge/universal-swap-memo.md

[misspelling] ~5-~5: This word is normally spelled as one.
Context: ...oken swaps, seamlessly integrating into multi-chain workflows. The memo is encoded using th...

(EN_COMPOUNDS_MULTI_CHAIN)

Gitleaks
specs/obridge/orai-evm.md

114-114: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)

specs/obridge/universal-swap/swap-route.md

65-65: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)


74-74: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)


79-79: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)


95-95: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)


104-104: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)


109-109: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)


113-113: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)

Additional comments not posted (18)
specs/obridge/universal-swap/encode-memo.md (2)

15-19: LGTM!

The instructions for creating the memo object are clear and concise.


21-29: LGTM!

The instructions for encoding the memo to a base64 string are clear and the provided TypeScript code snippet is correct.

specs/obridge/background.md (3)

1-3: LGTM!

The introduction provides a clear overview of Obridge and its supported chains. The information is well-presented and easy to understand.


7-17: LGTM!

The section explains the different components and protocols used by Obridge. Each component is linked to its respective GitHub repository, providing additional context.


19-41: LGTM!

The section lists the blockchain platforms supported by Obridge. The information is well-organized and easy to understand.

specs/obridge/orai-evm.md (2)

1-5: LGTM!

The overview provides a clear explanation of the Oraichain-EVM bridge and its components. The information is well-presented and easy to understand.


14-22: LGTM!

The workflows for sending assets between EVM and Oraichain are well-documented and include diagrams for better understanding.

specs/obridge/universal-swap/swap-route.md (5)

1-10: LGTM!

The overview section is well-written and provides a clear explanation of the swap route concept.

The content is approved.


11-24: LGTM!

The protobuf definitions are clear and well-structured.

The content is approved.


26-46: LGTM!

The section is informative and provides practical guidance on using the Smart Route API.

The content is approved.


48-123: LGTM!

The section is detailed and provides a clear explanation of the sample response.

The content is approved.

Tools
Gitleaks

65-65: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)


74-74: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)


79-79: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)


95-95: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)


104-104: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)


109-109: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)


113-113: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)


125-203: LGTM!

The section is clear and provides practical examples of building swap routes.

The content is approved.

specs/obridge/universal-swap-memo.md (6)

1-6: LGTM!

The overview section is well-written and provides a clear explanation of the Universal Swap Memo concept.

The content is approved.

Tools
LanguageTool

[misspelling] ~5-~5: This word is normally spelled as one.
Context: ...oken swaps, seamlessly integrating into multi-chain workflows. The memo is encoded using th...

(EN_COMPOUNDS_MULTI_CHAIN)


7-85: LGTM!

The protobuf definitions are clear and well-structured.

The content is approved.


88-99: LGTM!

The section is detailed and provides a clear explanation of the Memo message structure.

The content is approved.


100-178: LGTM!

The section is clear and provides practical examples of the detailed messages.

The content is approved.


179-225: LGTM!

The section is detailed and provides a clear example of the Universal Swap Memo in action.

The content is approved.


5-5: Fix Misspelling

The word "multi-chain" should be spelled as "multichain".

Apply this diff to fix the misspelling:

- multi-chain
+ multichain

Likely invalid or redundant comment.

Tools
LanguageTool

[misspelling] ~5-~5: This word is normally spelled as one.
Context: ...oken swaps, seamlessly integrating into multi-chain workflows. The memo is encoded using th...

(EN_COMPOUNDS_MULTI_CHAIN)

Comment on lines 43 to 49
### Integration

- [Orai - EVM](./orai-evm.md)
- [Orai - Cosmos](./orai-cosmos.md)
- [Orai - Bitcoin]()
- [Orai - TON]()
- [Orai - XRPL]()
Copy link

Choose a reason for hiding this comment

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

Fix empty links.

There are empty links for Bitcoin and TON integration. Please provide the correct links or remove the placeholders.

For example:

- [Orai - Bitcoin]()
- [Orai - TON]()
+ [Orai - Bitcoin](https://example.com/bitcoin-integration)
+ [Orai - TON](https://example.com/ton-integration)

Committable suggestion was skipped due to low confidence.

Tools
Markdownlint

47-47: null
No empty links

(MD042, no-empty-links)


48-48: null
No empty links

(MD042, no-empty-links)


49-49: null
No empty links

(MD042, no-empty-links)

- Ensure the corresponding funds match the `remote_denom` in the mapping pair.

**2. Transfer Cw20**
To bridge CW20 tokens from Oraichain to a chain use the CW20 Send function along with the TransferToRemote message
Copy link

Choose a reason for hiding this comment

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

Fix missing comma.

There is a missing comma in the sentence.

- To bridge CW20 tokens from Oraichain to a chain use the CW20 Send function along with the TransferToRemote message
+ To bridge CW20 tokens from Oraichain to a chain, use the CW20 Send function along with the TransferToRemote message
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
To bridge CW20 tokens from Oraichain to a chain use the CW20 Send function along with the TransferToRemote message
To bridge CW20 tokens from Oraichain to a chain, use the CW20 Send function along with the TransferToRemote message
Tools
LanguageTool

[uncategorized] ~144-~144: A comma might be missing here.
Context: ... bridge CW20 tokens from Oraichain to a chain use the CW20 Send function along with t...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)

Comment on lines +126 to +128
`Bridging Tokens Using IbcBridgeWasm Contract`

**1. Transfer Native Token**
Copy link

Choose a reason for hiding this comment

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

Fix emphasis used instead of a heading.

The emphasis should be replaced with a heading.

- **1. Transfer Native Token**
+ ### 1. Transfer Native Token
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
`Bridging Tokens Using IbcBridgeWasm Contract`
**1. Transfer Native Token**
`Bridging Tokens Using IbcBridgeWasm Contract`
### 1. Transfer Native Token
Tools
Markdownlint

128-128: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

Comment on lines +28 to +35
```solidity
interface IGravity {
event SendToCosmosEvent(address indexed _tokenContract, address indexe _sender, string _destination, uint256 _amount, uint256 _eventNonce);

function sendToCosmos(address _tokenContract, string calldata _destination, uint256 _amount) external;
}

```
Copy link

Choose a reason for hiding this comment

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

Fix typo in event declaration.

There is a typo in the event declaration. Replace indexe with indexed.

- event SendToCosmosEvent(address indexed _tokenContract, address indexe _sender, string _destination, uint256 _amount, uint256 _eventNonce);
+ event SendToCosmosEvent(address indexed _tokenContract, address indexed _sender, string _destination, uint256 _amount, uint256 _eventNonce);
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
```solidity
interface IGravity {
event SendToCosmosEvent(address indexed _tokenContract, address indexe _sender, string _destination, uint256 _amount, uint256 _eventNonce);
function sendToCosmos(address _tokenContract, string calldata _destination, uint256 _amount) external;
}
```
```solidity
interface IGravity {
event SendToCosmosEvent(address indexed _tokenContract, address indexed _sender, string _destination, uint256 _amount, uint256 _eventNonce);
function sendToCosmos(address _tokenContract, string calldata _destination, uint256 _amount) external;
}
```

Comment on lines +44 to +46
- `_tokenContract` : The address of the token want to bridge.
- `_destination`: A string combining `${sourceChannel}/${destReceiver}:${memo}`, where **sourceChannel** is the bridge channel between OraiBridge and Oraichain, **destReceiver** is the recipient's address on Oraichain, and [memo](./universal-swap-memo.md) used for UniversalSwap
- \_amount: The amount of tokens to bridge.
Copy link

Choose a reason for hiding this comment

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

Fix punctuation and grammar issues.

There are some punctuation and grammar issues in the parameters description.

- `_tokenContract` : The address of the token want to bridge.
- `_destination`: A string combining `${sourceChannel}/${destReceiver}:${memo}`, where **sourceChannel** is the bridge channel between OraiBridge and Oraichain, **destReceiver** is the recipient's address on Oraichain, and [memo](./universal-swap-memo.md) used for UniversalSwap
- \_amount: The amount of tokens to bridge.
+ `_tokenContract`: The address of the token to bridge.
+ `_destination`: A string combining `${sourceChannel}/${destReceiver}:${memo}`, where **sourceChannel** is the bridge channel between OraiBridge and Oraichain, **destReceiver** is the recipient's address on Oraichain, and [memo](./universal-swap-memo.md) is used for UniversalSwap.
+ `_amount`: The number of tokens to bridge.
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
- `_tokenContract` : The address of the token want to bridge.
- `_destination`: A string combining `${sourceChannel}/${destReceiver}:${memo}`, where **sourceChannel** is the bridge channel between OraiBridge and Oraichain, **destReceiver** is the recipient's address on Oraichain, and [memo](./universal-swap-memo.md) used for UniversalSwap
- \_amount: The amount of tokens to bridge.
`_tokenContract`: The address of the token to bridge.
`_destination`: A string combining `${sourceChannel}/${destReceiver}:${memo}`, where **sourceChannel** is the bridge channel between OraiBridge and Oraichain, **destReceiver** is the recipient's address on Oraichain, and [memo](./universal-swap-memo.md) is used for UniversalSwap.
`_amount`: The number of tokens to bridge.
Tools
LanguageTool

[uncategorized] ~44-~44: Loose punctuation mark.
Context: ...): Parameters: - _tokenContract : The address of the token want to bridge...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~45-~45: Loose punctuation mark.
Context: ...e token want to bridge. - _destination: A string combining `${sourceChannel}/${...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~46-~46: ‘Amount of’ should usually only be used with uncountable or mass nouns. Consider using “number” if this is not the case.
Context: ... used for UniversalSwap - _amount: The amount of tokens to bridge. Example: Brid...

(AMOUNTOF_TO_NUMBEROF)

"chainId": "Oraichain",
"tokenIn": "orai",
"tokenInAmount": "700000000",
"tokenOut": "orai12hzjxfh77wl572gdzct2fxv2arxcwh6gykc7qh",
Copy link

Choose a reason for hiding this comment

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

Security Concern: Potential Exposure of Generic API Keys

Detected potential exposure of generic API keys in the sample API request and response. Ensure that these keys are not real or sensitive.

Replace the keys with placeholders or mock values to avoid accidental exposure.

- "destAsset": "orai12hzjxfh77wl572gdzct2fxv2arxcwh6gykc7qh"
+ "destAsset": "orai<placeholder>"

Also applies to: 74-74, 79-79, 95-95, 104-104, 109-109, 113-113

Tools
Gitleaks

65-65: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)

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: 0

Outside diff range, codebase verification and nitpick comments (3)
specs/obridge/orai-ton.md (3)

21-21: Remove the trailing colon from the heading.

The heading "Workflows:" has a trailing colon which is unnecessary. Please remove the colon to adhere to the Markdown best practices.

Apply this diff to remove the trailing colon:

-# Workflows:
+# Workflows
Tools
Markdownlint

21-21: Punctuation: ':'
Trailing punctuation in heading

(MD026, no-trailing-punctuation)


47-62: Fix the punctuation and formatting issues in the parameter descriptions.

The parameter descriptions in the code block have some punctuation and formatting issues. Please consider the following suggestions:

  • Remove the loose punctuation marks (colons) before the parameter names.
  • Add a comma after "With ton native token" in the description of the denom parameter.
  • Rephrase the description of the opts parameter to avoid repetition of "you want to send".

Apply this diff to fix the punctuation and formatting issues:

-  - `cosmosRecipient` : recipient address on cosmos destination chain
+  - `cosmosRecipient`: recipient address on cosmos destination chain
-  - `amount`: amount of token that you want to send.
+  - `amount`: amount of token to send.
-  - `denom`: denom of the token, which will decide it is **bridge_ton** or **bridge_jetton_token**.
+  - `denom`: denom of the token, which will decide if it is **bridge_ton** or **bridge_jetton_token**.
-  - `opts`: configuration of **total ton amount** that you want to send along with the messages and the **query id** of that message.
+  - `opts`: configuration of the **total ton amount** to send along with the messages and the **query id** of that message.
-  - `timeoutTimestamp`: timeout timestamp of packet.
+  - `timeoutTimestamp`: timeout timestamp of the packet.
-  - `memo`: [memo](./universal-swap-memo.md) is used for UniversalSwap which will be executed when the token reached to Oraichain.
+  - `memo`: [memo](./universal-swap-memo.md) is used for UniversalSwap, which will be executed when the token reaches Oraichain.

138-141: Fix the punctuation and formatting issues in the parameter descriptions.

The parameter descriptions have some punctuation and formatting issues. Please consider the following suggestions:

  • Remove the loose punctuation marks (colons) before the parameter names.
  • Add a comma after "With ton native token" in the description of the tokenDenomOnTon parameter.

Apply this diff to fix the punctuation and formatting issues:

-  - `tonRecipient` : ton recipient address
+  - `tonRecipient`: ton recipient address
-  - `amount`: amount of token that you want to send.
+  - `amount`: amount of token to send.
-  - `tokenDenomOnTon`: token denom address on ton. With ton native token it will be **ton zero address** and with jetton token, it will be **jetton master address**.
+  - `tokenDenomOnTon`: token denom address on ton. With ton native token, it will be **ton zero address**, and with jetton token, it will be **jetton master address**.
-  - `timeoutTimestamp`: timeout timestamp of packet.
+  - `timeoutTimestamp`: timeout timestamp of the packet.
Tools
LanguageTool

[uncategorized] ~138-~138: Loose punctuation mark.
Context: ... ``` Parameters: - tonRecipient : ton recipient address - `amount`: amoun...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~140-~140: Loose punctuation mark.
Context: ...at you want to send. - tokenDenomOnTon: token denom address on ton. With ton na...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~140-~140: Possible missing comma found.
Context: ...n denom address on ton. With ton native token it will be ton zero address and wit...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~141-~141: Loose punctuation mark.
Context: ...n master address**. - timeoutTimestamp: timeout timestamp of packet. **Example...

(UNLIKELY_OPENING_PUNCTUATION)

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between fb99bf3 and eaf801b.

Files ignored due to path filters (2)
  • specs/obridge/image/orai_to_ton.png is excluded by !**/*.png
  • specs/obridge/image/ton_to_orai.png is excluded by !**/*.png
Files selected for processing (1)
  • specs/obridge/orai-ton.md (1 hunks)
Additional context used
LanguageTool
specs/obridge/orai-ton.md

[uncategorized] ~71-~71: Loose punctuation mark.
Context: .... Parameters: - cosmosRecipient : recipient address on cosmos destination...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~73-~73: Loose punctuation mark.
Context: ...f token that you want to send. - denom: denom of the token, which will decide i...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~74-~74: Loose punctuation mark.
Context: ...n** or bridge_jetton_token. - opts: configuration of total ton amount t...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~74-~74: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...ration of total ton amount that you want to send along with the messages and the **...

(REP_WANT_TO_VB)


[uncategorized] ~75-~75: Loose punctuation mark.
Context: ...** of that message. - timeoutTimestamp: timeout timestamp of packet. - memo: ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~76-~76: Loose punctuation mark.
Context: ...: timeout timestamp of packet. - memo`: memo is use...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~76-~76: Possible missing comma found.
Context: ...](./universal-swap-memo.md) is used for UniversalSwap which will be executed when the token r...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~138-~138: Loose punctuation mark.
Context: ... ``` Parameters: - tonRecipient : ton recipient address - `amount`: amoun...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~140-~140: Loose punctuation mark.
Context: ...at you want to send. - tokenDenomOnTon: token denom address on ton. With ton na...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~140-~140: Possible missing comma found.
Context: ...n denom address on ton. With ton native token it will be ton zero address and wit...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~141-~141: Loose punctuation mark.
Context: ...n master address**. - timeoutTimestamp: timeout timestamp of packet. **Example...

(UNLIKELY_OPENING_PUNCTUATION)

Markdownlint
specs/obridge/orai-ton.md

21-21: Punctuation: ':'
Trailing punctuation in heading

(MD026, no-trailing-punctuation)

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: 0

Outside diff range, codebase verification and nitpick comments (10)
specs/obridge/orai-ton.md (10)

21-21: Remove the colon from the heading.

Trailing punctuation in headings is unnecessary.

-# Workflows:
+# Workflows
Tools
Markdownlint

21-21: Punctuation: ':'
Trailing punctuation in heading

(MD026, no-trailing-punctuation)


43-43: Remove the colon from the heading.

Trailing punctuation in headings is unnecessary.

-#### For integration on Node.JS server:
+#### For integration on Node.js server

Also, the official spelling of the framework is "Node.js".

Tools
LanguageTool

[uncategorized] ~43-~43: The official spelling of this programming framework is “Node.js”.
Context: ...-based tokens. #### For integration on Node.JS server: ```ts const TON_NATIVE = "ton"...

(NODE_JS)

Markdownlint

43-43: Punctuation: ':'
Trailing punctuation in heading

(MD026, no-trailing-punctuation)


69-74: Remove the loose punctuation marks from the parameter descriptions.

The colons at the beginning of each list item are unnecessary.

-  - `cosmosRecipient` : recipient address on cosmos destination chain.
+  - `cosmosRecipient`: recipient address on cosmos destination chain.
-  - `amount`: amount of token that you want to send.
+  - `amount`: amount of token that you want to send.
-  - `denom`: denom of the token, which will decide it is **bridge_ton** or **bridge_jetton_token**.
+  - `denom`: denom of the token, which will decide it is **bridge_ton** or **bridge_jetton_token**.
-  - `opts`: configuration of **total ton amount** that you want to send along with the messages and the **query id** of that message.
+  - `opts`: configuration of **total ton amount** that you want to send along with the messages and the **query id** of that message.
-  - `timeoutTimestamp`: timeout timestamp of packet.
+  - `timeoutTimestamp`: timeout timestamp of packet.
-  - `memo`: [memo](./universal-swap-memo.md) is used for UniversalSwap which will be executed when the token reached to Oraichain.
+  - `memo`: [memo](./universal-swap-memo.md) is used for UniversalSwap which will be executed when the token reached to Oraichain.
Tools
LanguageTool

[uncategorized] ~69-~69: Loose punctuation mark.
Context: .... Parameters: - cosmosRecipient : recipient address on cosmos destination...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~70-~70: Loose punctuation mark.
Context: ... on cosmos destination chain. - amount: amount of token that you want to send. ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~71-~71: Loose punctuation mark.
Context: ...f token that you want to send. - denom: denom of the token, which will decide i...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~72-~72: Loose punctuation mark.
Context: ...n** or bridge_jetton_token. - opts: configuration of total ton amount t...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~72-~72: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...ration of total ton amount that you want to send along with the messages and the **...

(REP_WANT_TO_VB)


[uncategorized] ~73-~73: Loose punctuation mark.
Context: ...** of that message. - timeoutTimestamp: timeout timestamp of packet. - memo: ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~74-~74: Loose punctuation mark.
Context: ...: timeout timestamp of packet. - memo`: memo is use...

(UNLIKELY_OPENING_PUNCTUATION)


115-115: Remove the colon from the heading.

Trailing punctuation in headings is unnecessary.

-#### For integration on Web browser client:
+#### For integration on Web browser client
Tools
Markdownlint

115-115: Punctuation: ':'
Trailing punctuation in heading

(MD026, no-trailing-punctuation)


121-121: Remove the colon from the heading.

Trailing punctuation in headings is unnecessary.

-##### With bridging ton case:
+##### With bridging ton case
Tools
Markdownlint

121-121: Punctuation: ':'
Trailing punctuation in heading

(MD026, no-trailing-punctuation)


138-140: Remove the loose punctuation marks from the parameter descriptions.

The colons at the beginning of each list item are unnecessary.

-  - `data` : data for building bridge ton cell.
+  - `data`: data for building bridge ton cell.
-  - `remoteCosmosData`: cosmos address in bech32.
+  - `remoteCosmosData`: cosmos address in bech32.
-  - `ops`: configuration of **total ton amount** that you want to send along with the messages and the **query id** of that message.
+  - `ops`: configuration of **total ton amount** that you want to send along with the messages and the **query id** of that message.
Tools
LanguageTool

[uncategorized] ~138-~138: Loose punctuation mark.
Context: ...eOps); } ``` Parameters: - data : data for building bridge ton cell. - `r...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~139-~139: Loose punctuation mark.
Context: ...ng bridge ton cell. - remoteCosmosData: cosmos address in bech32. - ops: conf...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~140-~140: Loose punctuation mark.
Context: ...Data: cosmos address in bech32. - ops`: configuration of total ton amount t...

(UNLIKELY_OPENING_PUNCTUATION)


142-142: Remove the colon from the heading and add a comma before the heading.

Trailing punctuation in headings is unnecessary. Also, a comma is missing before the heading.

-**query id** of that message.  ##### With bridging jetton token case:
+**query id** of that message, ##### With bridging jetton token case
Tools
LanguageTool

[uncategorized] ~142-~142: Possible missing comma found.
Context: ...query id** of that message. ##### With bridging jetton token case: ```ts interface Sen...

(AI_HYDRA_LEO_MISSING_COMMA)

Markdownlint

142-142: Punctuation: ':'
Trailing punctuation in heading

(MD026, no-trailing-punctuation)


162-164: Remove the loose punctuation marks from the parameter descriptions.

The colons at the beginning of each list item are unnecessary.

-  - `data` : data for building bridge jetton cell.
+  - `data`: data for building bridge jetton cell.
-  - `responseAddress`: address for receiving redundant fee ton.
+  - `responseAddress`: address for receiving redundant fee ton.
-  - `queryId`: **query id** of that message.
+  - `queryId`: **query id** of that message.
Tools
LanguageTool

[uncategorized] ~162-~162: Loose punctuation mark.
Context: ... = 0); } ``` Parameters: - data : data for building bridge jetton cell. -...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~163-~163: Loose punctuation mark.
Context: ... bridge jetton cell. - responseAddress: address for receiving redundant fee ton...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~164-~164: Loose punctuation mark.
Context: ...receiving redundant fee ton. - queryId: query id of that message. **Exampl...

(UNLIKELY_OPENING_PUNCTUATION)


222-222: Remove the colon from the heading and change the heading level to h3.

Trailing punctuation in headings is unnecessary. Also, the heading level should only increment by one level at a time.

-#### For integration on Node.JS server:
+### For integration on Node.js server

Also, the official spelling of the framework is "Node.js".

Tools
LanguageTool

[uncategorized] ~222-~222: The official spelling of this programming framework is “Node.js”.
Context: ...aichain to Ton #### For integration on Node.JS server: ```ts const TON_NATIVE = "ton"...

(NODE_JS)

Markdownlint

222-222: Expected: h3; Actual: h4
Heading levels should only increment by one level at a time

(MD001, heading-increment)


222-222: Punctuation: ':'
Trailing punctuation in heading

(MD026, no-trailing-punctuation)


241-244: Remove the loose punctuation marks from the parameter descriptions.

The colons at the beginning of each list item are unnecessary.

-  - `tonRecipient` : ton recipient address.
+  - `tonRecipient`: ton recipient address.
-  - `amount`: amount of token that you want to send.
+  - `amount`: amount of token that you want to send.
-  - `tokenDenomOnTon`: token denom address on ton. With ton native token it will be **ton zero address** and with jetton token, it will be **jetton master address**.
+  - `tokenDenomOnTon`: token denom address on ton. With ton native token it will be **ton zero address** and with jetton token, it will be **jetton master address**.
-  - `timeoutTimestamp`: timeout timestamp of packet.
+  - `timeoutTimestamp`: timeout timestamp of packet.
Tools
LanguageTool

[uncategorized] ~241-~241: Loose punctuation mark.
Context: ... ``` Parameters: - tonRecipient : ton recipient address. - `amount`: amou...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~242-~242: Loose punctuation mark.
Context: ...ent: ton recipient address. -amount`: amount of token that you want to send. ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~243-~243: Loose punctuation mark.
Context: ...at you want to send. - tokenDenomOnTon: token denom address on ton. With ton na...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~244-~244: Loose punctuation mark.
Context: ...n master address**. - timeoutTimestamp: timeout timestamp of packet. **Example...

(UNLIKELY_OPENING_PUNCTUATION)

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between eaf801b and 3ecdf25.

Files selected for processing (2)
  • specs/obridge/background.md (1 hunks)
  • specs/obridge/orai-ton.md (1 hunks)
Additional context used
Markdownlint
specs/obridge/background.md

47-47: null
No empty links

(MD042, no-empty-links)


49-49: null
No empty links

(MD042, no-empty-links)

specs/obridge/orai-ton.md

222-222: Expected: h3; Actual: h4
Heading levels should only increment by one level at a time

(MD001, heading-increment)


21-21: Punctuation: ':'
Trailing punctuation in heading

(MD026, no-trailing-punctuation)


43-43: Punctuation: ':'
Trailing punctuation in heading

(MD026, no-trailing-punctuation)


115-115: Punctuation: ':'
Trailing punctuation in heading

(MD026, no-trailing-punctuation)


121-121: Punctuation: ':'
Trailing punctuation in heading

(MD026, no-trailing-punctuation)


142-142: Punctuation: ':'
Trailing punctuation in heading

(MD026, no-trailing-punctuation)


222-222: Punctuation: ':'
Trailing punctuation in heading

(MD026, no-trailing-punctuation)


286-286: Punctuation: ':'
Trailing punctuation in heading

(MD026, no-trailing-punctuation)


290-290: Punctuation: ':'
Trailing punctuation in heading

(MD026, no-trailing-punctuation)


317-317: Punctuation: ':'
Trailing punctuation in heading

(MD026, no-trailing-punctuation)

LanguageTool
specs/obridge/orai-ton.md

[uncategorized] ~43-~43: The official spelling of this programming framework is “Node.js”.
Context: ...-based tokens. #### For integration on Node.JS server: ```ts const TON_NATIVE = "ton"...

(NODE_JS)


[uncategorized] ~69-~69: Loose punctuation mark.
Context: .... Parameters: - cosmosRecipient : recipient address on cosmos destination...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~70-~70: Loose punctuation mark.
Context: ... on cosmos destination chain. - amount: amount of token that you want to send. ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~71-~71: Loose punctuation mark.
Context: ...f token that you want to send. - denom: denom of the token, which will decide i...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~72-~72: Loose punctuation mark.
Context: ...n** or bridge_jetton_token. - opts: configuration of total ton amount t...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~72-~72: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...ration of total ton amount that you want to send along with the messages and the **...

(REP_WANT_TO_VB)


[uncategorized] ~73-~73: Loose punctuation mark.
Context: ...** of that message. - timeoutTimestamp: timeout timestamp of packet. - memo: ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~74-~74: Loose punctuation mark.
Context: ...: timeout timestamp of packet. - memo`: memo is use...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~138-~138: Loose punctuation mark.
Context: ...eOps); } ``` Parameters: - data : data for building bridge ton cell. - `r...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~139-~139: Loose punctuation mark.
Context: ...ng bridge ton cell. - remoteCosmosData: cosmos address in bech32. - ops: conf...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~140-~140: Loose punctuation mark.
Context: ...Data: cosmos address in bech32. - ops`: configuration of total ton amount t...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~142-~142: Possible missing comma found.
Context: ...query id** of that message. ##### With bridging jetton token case: ```ts interface Sen...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~162-~162: Loose punctuation mark.
Context: ... = 0); } ``` Parameters: - data : data for building bridge jetton cell. -...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~163-~163: Loose punctuation mark.
Context: ... bridge jetton cell. - responseAddress: address for receiving redundant fee ton...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~164-~164: Loose punctuation mark.
Context: ...receiving redundant fee ton. - queryId: query id of that message. **Exampl...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~222-~222: The official spelling of this programming framework is “Node.js”.
Context: ...aichain to Ton #### For integration on Node.JS server: ```ts const TON_NATIVE = "ton"...

(NODE_JS)


[uncategorized] ~241-~241: Loose punctuation mark.
Context: ... ``` Parameters: - tonRecipient : ton recipient address. - `amount`: amou...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~242-~242: Loose punctuation mark.
Context: ...ent: ton recipient address. -amount`: amount of token that you want to send. ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~243-~243: Loose punctuation mark.
Context: ...at you want to send. - tokenDenomOnTon: token denom address on ton. With ton na...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~244-~244: Loose punctuation mark.
Context: ...n master address**. - timeoutTimestamp: timeout timestamp of packet. **Example...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~288-~288: Did you mean “I”?
Context: ...ion on Web browser client: At the time i write this docs, `@oraichain/tonbridge-...

(I_LOWERCASE_PREMIUM)


[grammar] ~288-~288: The singular determiner ‘this’ may not agree with the plural noun ‘docs’. Did you mean “these”?
Context: ...eb browser client: At the time i write this docs, @oraichain/tonbridge-sdk does n...

(THIS_NNS)


[style] ~288-~288: Unless you want to emphasize “not”, use “cannot” which is more common.
Context: ...ient since it is using ton wallet which can not be used for client. Temporarily, I will...

(CAN_NOT_PREMIUM)


[uncategorized] ~313-~313: Loose punctuation mark.
Context: ...ult>; } ``` Parameters: - denom : ton denom address on Ton Network (**ZER...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~314-~314: Loose punctuation mark.
Context: ...ss** if it is jetton token). - timeout: timeout timestamp of packet. - to: to...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~315-~315: Loose punctuation mark.
Context: ...ut: timeout timestamp of packet. - to`: ton recipient address. ##### With jett...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~331-~331: Loose punctuation mark.
Context: ...ring; } ``` Parameters: - denom : ton denom address on Ton Network (**ZER...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~332-~332: Loose punctuation mark.
Context: ...ss** if it is jetton token). - timeout: timeout timestamp of packet. - to: to...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~333-~333: Loose punctuation mark.
Context: ...ut: timeout timestamp of packet. - to`: ton recipient address. **Examples for ...

(UNLIKELY_OPENING_PUNCTUATION)

Additional comments not posted (7)
specs/obridge/background.md (1)

1-49: LGTM!

The documentation provides a clear and concise overview of the Obridge project, its working, and supported chains. The changes are approved.

Tools
Markdownlint

47-47: null
No empty links

(MD042, no-empty-links)


49-49: null
No empty links

(MD042, no-empty-links)

specs/obridge/orai-ton.md (6)

45-60: LGTM!

The code changes are approved.


78-113: LGTM!

The code changes are approved.


123-133: LGTM!

The code changes are approved.


144-157: LGTM!

The code changes are approved.


168-218: LGTM!

The code changes are approved.


224-237: LGTM!

The code changes are approved.

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: 1

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 3ecdf25 and 87e8159.

Files selected for processing (1)
  • specs/obridge/orai-ton.md (1 hunks)
Additional context used
LanguageTool
specs/obridge/orai-ton.md

[uncategorized] ~63-~63: Possible missing comma found.
Context: ...will send to Jetton Wallet contract first then it will be forwarded to **Bridge A...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~67-~67: Loose punctuation mark.
Context: .... Parameters: - cosmosRecipient : recipient address on cosmos destination...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~68-~68: Loose punctuation mark.
Context: ... on cosmos destination chain. - amount: amount of token that you want to send. ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~69-~69: Loose punctuation mark.
Context: ...f token that you want to send. - denom: denom of the token, which will decide i...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~70-~70: Loose punctuation mark.
Context: ...n** or bridge_jetton_token. - opts: configuration of total ton amount t...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~70-~70: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...ration of total ton amount that you want to send along with the messages and the **...

(REP_WANT_TO_VB)


[uncategorized] ~71-~71: Loose punctuation mark.
Context: ...** of that message. - timeoutTimestamp: timeout timestamp of packet. - memo: ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~72-~72: Loose punctuation mark.
Context: ...: timeout timestamp of packet. - memo`: memo is use...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~72-~72: Possible missing comma found.
Context: ...](./universal-swap-memo.md) is used for UniversalSwap which will be executed when the token r...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~75-~75: Possible missing comma found.
Context: ...en reached to Oraichain. Example: Here we use @oraichain/tonbridge-sdk for i...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~216-~216: Loose punctuation mark.
Context: ... main(); ``` Parameters: - data : data for building bridge jetton cell. -...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~217-~217: Loose punctuation mark.
Context: ... bridge jetton cell. - responseAddress: address for receiving redundant fee ton...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~218-~218: Loose punctuation mark.
Context: ...receiving redundant fee ton. - queryId: query id of that message. **Exampl...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~293-~293: Loose punctuation mark.
Context: ... ``` Parameters: - tonRecipient : ton recipient address. - `amount`: amou...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~294-~294: Loose punctuation mark.
Context: ...ent: ton recipient address. -amount`: amount of token that you want to send. ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~295-~295: Loose punctuation mark.
Context: ...at you want to send. - tokenDenomOnTon: token denom address on ton. With ton na...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~296-~296: Loose punctuation mark.
Context: ...n master address**. - timeoutTimestamp: timeout timestamp of packet. **Example...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~299-~299: Possible missing comma found.
Context: ...ut timestamp of packet. Examples: Here we use @oraichain/tonbridge-sdk for i...

(AI_HYDRA_LEO_MISSING_COMMA)

Markdownlint
specs/obridge/orai-ton.md

21-21: Punctuation: ':'
Trailing punctuation in heading

(MD026, no-trailing-punctuation)

Additional comments not posted (2)
specs/obridge/orai-ton.md (2)

34-212: LGTM!

The code changes are approved.

Tools
LanguageTool

[uncategorized] ~63-~63: Possible missing comma found.
Context: ...will send to Jetton Wallet contract first then it will be forwarded to **Bridge A...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~67-~67: Loose punctuation mark.
Context: .... Parameters: - cosmosRecipient : recipient address on cosmos destination...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~68-~68: Loose punctuation mark.
Context: ... on cosmos destination chain. - amount: amount of token that you want to send. ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~69-~69: Loose punctuation mark.
Context: ...f token that you want to send. - denom: denom of the token, which will decide i...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~70-~70: Loose punctuation mark.
Context: ...n** or bridge_jetton_token. - opts: configuration of total ton amount t...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~70-~70: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...ration of total ton amount that you want to send along with the messages and the **...

(REP_WANT_TO_VB)


[uncategorized] ~71-~71: Loose punctuation mark.
Context: ...** of that message. - timeoutTimestamp: timeout timestamp of packet. - memo: ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~72-~72: Loose punctuation mark.
Context: ...: timeout timestamp of packet. - memo`: memo is use...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~72-~72: Possible missing comma found.
Context: ...](./universal-swap-memo.md) is used for UniversalSwap which will be executed when the token r...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~75-~75: Possible missing comma found.
Context: ...en reached to Oraichain. Example: Here we use @oraichain/tonbridge-sdk for i...

(AI_HYDRA_LEO_MISSING_COMMA)


274-423: LGTM!

The code changes are approved.

Tools
LanguageTool

[uncategorized] ~293-~293: Loose punctuation mark.
Context: ... ``` Parameters: - tonRecipient : ton recipient address. - `amount`: amou...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~294-~294: Loose punctuation mark.
Context: ...ent: ton recipient address. -amount`: amount of token that you want to send. ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~295-~295: Loose punctuation mark.
Context: ...at you want to send. - tokenDenomOnTon: token denom address on ton. With ton na...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~296-~296: Loose punctuation mark.
Context: ...n master address**. - timeoutTimestamp: timeout timestamp of packet. **Example...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~299-~299: Possible missing comma found.
Context: ...ut timestamp of packet. Examples: Here we use @oraichain/tonbridge-sdk for i...

(AI_HYDRA_LEO_MISSING_COMMA)

Comment on lines +25 to +26
<img src="./image/ton_to_orai.png" alt="Ton to Oraichain" width="1200">
<!-- ![Ton to Oraichain](./image/ton_to_orai.png) -->
Copy link

Choose a reason for hiding this comment

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

Fix the image path.

The image is not rendering correctly because the image path is incorrect. Update the image path to be relative to the current file.

Apply this diff to fix the image path:

-<img src="./image/ton_to_orai.png" alt="Ton to Oraichain" width="1200">
-<!-- ![Ton to Oraichain](./image/ton_to_orai.png) -->
+![Ton to Oraichain](./image/ton_to_orai.png)
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
<img src="./image/ton_to_orai.png" alt="Ton to Oraichain" width="1200">
<!-- ![Ton to Oraichain](./image/ton_to_orai.png) -->
![Ton to Oraichain](./image/ton_to_orai.png)

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: 0

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 87e8159 and 0dc395c.

Files selected for processing (1)
  • specs/obridge/orai-ton.md (1 hunks)
Additional context used
LanguageTool
specs/obridge/orai-ton.md

[uncategorized] ~63-~63: Possible missing comma found.
Context: ...will send to Jetton Wallet contract first then it will be forwarded to **Bridge A...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~67-~67: Loose punctuation mark.
Context: .... Parameters: - cosmosRecipient : recipient address on cosmos destination...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~68-~68: Loose punctuation mark.
Context: ... on cosmos destination chain. - amount: amount of token that you want to send. ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~69-~69: Loose punctuation mark.
Context: ...f token that you want to send. - denom: denom of the token, which will decide i...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~70-~70: Loose punctuation mark.
Context: ...n** or bridge_jetton_token. - opts: configuration of total ton amount t...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~70-~70: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...ration of total ton amount that you want to send along with the messages and the **...

(REP_WANT_TO_VB)


[uncategorized] ~71-~71: Loose punctuation mark.
Context: ...** of that message. - timeoutTimestamp: timeout timestamp of packet. - memo: ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~72-~72: Loose punctuation mark.
Context: ...: timeout timestamp of packet. - memo`: memo is use...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~72-~72: Possible missing comma found.
Context: ...](./universal-swap-memo.md) is used for UniversalSwap which will be executed when the token r...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~75-~75: Possible missing comma found.
Context: ...en reached to Oraichain. Example: Here we use @oraichain/tonbridge-sdk for i...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~292-~292: Loose punctuation mark.
Context: ... main(); ``` Parameters: - data : data for building bridge jetton cell. -...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~293-~293: Loose punctuation mark.
Context: ... bridge jetton cell. - responseAddress: address for receiving redundant fee ton...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~294-~294: Loose punctuation mark.
Context: ...receiving redundant fee ton. - queryId: query id of that message. **Exampl...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~369-~369: Loose punctuation mark.
Context: ... ``` Parameters: - tonRecipient : ton recipient address. - `amount`: amou...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~370-~370: Loose punctuation mark.
Context: ...ent: ton recipient address. -amount`: amount of token that you want to send. ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~371-~371: Loose punctuation mark.
Context: ...at you want to send. - tokenDenomOnTon: token denom address on ton. With ton na...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~371-~371: Possible missing comma found.
Context: ...n denom address on ton. With ton native token it will be ton zero address and wit...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~372-~372: Loose punctuation mark.
Context: ...n master address**. - timeoutTimestamp: timeout timestamp of packet. **Example...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~375-~375: Possible missing comma found.
Context: ...ut timestamp of packet. Examples: Here we use @oraichain/tonbridge-sdk for i...

(AI_HYDRA_LEO_MISSING_COMMA)

Markdownlint
specs/obridge/orai-ton.md

21-21: Punctuation: ':'
Trailing punctuation in heading

(MD026, no-trailing-punctuation)

Additional comments not posted (5)
specs/obridge/orai-ton.md (5)

3-6: LGTM!

The "Overview" section provides a clear and concise introduction to the Ton Bridge.


7-20: LGTM!

The "Ton Contract" and "Oraichain Contract" sections provide the necessary contract addresses for the bridge.


21-31: LGTM!

The "Workflows" section provides a clear overview of the token transfer workflows between Ton and Oraichain.

Tools
Markdownlint

21-21: Punctuation: ':'
Trailing punctuation in heading

(MD026, no-trailing-punctuation)


34-349: LGTM!

The "Ton to Oraichain" section provides clear instructions and code examples for bridging tokens from Ton to Oraichain. The code examples are correct and follow best practices.

Tools
LanguageTool

[uncategorized] ~63-~63: Possible missing comma found.
Context: ...will send to Jetton Wallet contract first then it will be forwarded to **Bridge A...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~67-~67: Loose punctuation mark.
Context: .... Parameters: - cosmosRecipient : recipient address on cosmos destination...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~68-~68: Loose punctuation mark.
Context: ... on cosmos destination chain. - amount: amount of token that you want to send. ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~69-~69: Loose punctuation mark.
Context: ...f token that you want to send. - denom: denom of the token, which will decide i...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~70-~70: Loose punctuation mark.
Context: ...n** or bridge_jetton_token. - opts: configuration of total ton amount t...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~70-~70: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...ration of total ton amount that you want to send along with the messages and the **...

(REP_WANT_TO_VB)


[uncategorized] ~71-~71: Loose punctuation mark.
Context: ...** of that message. - timeoutTimestamp: timeout timestamp of packet. - memo: ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~72-~72: Loose punctuation mark.
Context: ...: timeout timestamp of packet. - memo`: memo is use...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~72-~72: Possible missing comma found.
Context: ...](./universal-swap-memo.md) is used for UniversalSwap which will be executed when the token r...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~75-~75: Possible missing comma found.
Context: ...en reached to Oraichain. Example: Here we use @oraichain/tonbridge-sdk for i...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~292-~292: Loose punctuation mark.
Context: ... main(); ``` Parameters: - data : data for building bridge jetton cell. -...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~293-~293: Loose punctuation mark.
Context: ... bridge jetton cell. - responseAddress: address for receiving redundant fee ton...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~294-~294: Loose punctuation mark.
Context: ...receiving redundant fee ton. - queryId: query id of that message. **Exampl...

(UNLIKELY_OPENING_PUNCTUATION)


350-423: LGTM!

The "Oraichain to Ton" section provides clear instructions and code examples for bridging tokens from Oraichain to Ton. The code examples are correct and follow best practices.

Tools
LanguageTool

[uncategorized] ~369-~369: Loose punctuation mark.
Context: ... ``` Parameters: - tonRecipient : ton recipient address. - `amount`: amou...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~370-~370: Loose punctuation mark.
Context: ...ent: ton recipient address. -amount`: amount of token that you want to send. ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~371-~371: Loose punctuation mark.
Context: ...at you want to send. - tokenDenomOnTon: token denom address on ton. With ton na...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~371-~371: Possible missing comma found.
Context: ...n denom address on ton. With ton native token it will be ton zero address and wit...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~372-~372: Loose punctuation mark.
Context: ...n master address**. - timeoutTimestamp: timeout timestamp of packet. **Example...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~375-~375: Possible missing comma found.
Context: ...ut timestamp of packet. Examples: Here we use @oraichain/tonbridge-sdk for i...

(AI_HYDRA_LEO_MISSING_COMMA)

Copy link
Collaborator

@ducphamle2 ducphamle2 left a comment

Choose a reason for hiding this comment

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

lgtm

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.

3 participants