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: replace elliptic with @noble/curves #1601

Merged
merged 19 commits into from
Jan 5, 2024

Conversation

nedsalk
Copy link
Contributor

@nedsalk nedsalk commented Jan 1, 2024

This PR replaces the elliptic dependency with @noble/curves. Our test suite is covering the Signer class extensively directly and indirectly so it served as a great indicator of correct replacement.

This change reduces the final bundle size by 37.14 kB.

Closes #1600.

@nedsalk nedsalk changed the base branch from master to rc/salamander January 1, 2024 16:34
@nedsalk nedsalk self-assigned this Jan 2, 2024
@nedsalk nedsalk added the feat Issue is a feature label Jan 2, 2024
@nedsalk nedsalk added this to the 2 - Beetle milestone Jan 2, 2024
@nedsalk nedsalk changed the base branch from rc/salamander to rc/beetle January 4, 2024 07:21
@nedsalk nedsalk changed the base branch from rc/beetle to rc/salamander January 4, 2024 07:30
@nedsalk nedsalk modified the milestones: 2 - Beetle, 1 - Salamander Jan 4, 2024
@nedsalk nedsalk marked this pull request as ready for review January 4, 2024 15:12
.changeset/beauty-die-joy.md Outdated Show resolved Hide resolved
@nedsalk nedsalk requested a review from arboleya January 4, 2024 16:01
@nedsalk nedsalk enabled auto-merge (squash) January 5, 2024 06:33
danielbate
danielbate previously approved these changes Jan 5, 2024
arboleya
arboleya previously approved these changes Jan 5, 2024
Copy link
Member

@arboleya arboleya left a comment

Choose a reason for hiding this comment

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

Nice drop-in replacement!

.changeset/warm-poems-swim.md Outdated Show resolved Hide resolved
@nedsalk nedsalk dismissed stale reviews from danielbate and arboleya via 2cb61d8 January 5, 2024 12:15
@nedsalk nedsalk requested review from arboleya and danielbate January 5, 2024 12:16
Copy link
Contributor

github-actions bot commented Jan 5, 2024

Coverage Report:

Lines Branches Functions Statements
78.87%(-3.13%) 67.52%(-0.25%) 77.56%(+2%) 78.91%(-2.87%)
Changed Files:
Ok File (✨=New File) Lines Branches Functions Statements
🔴 ✨ internal/check-imports/src/imports.ts 0%
(+0%)
100%
(+100%)
100%
(+100%)
0%
(+0%)
🔴 ✨ internal/check-imports/src/references.ts 0%
(+0%)
100%
(+100%)
100%
(+100%)
0%
(+0%)
🔴 internal/check-tests/src/index.ts 85.71%
(+5.71%)
80%
(+13.34%)
100%
(+0%)
87.5%
(+5.69%)
🔴 ✨ internal/tsup/src/index.ts 0%
(+0%)
100%
(+100%)
100%
(+100%)
0%
(+0%)
🔴 packages/abi-coder/src/abi-coder.ts 89.47%
(+0%)
82.35%
(-2.49%)
87.5%
(+0%)
89.65%
(-0.18%)
🔴 packages/abi-coder/src/function-fragment.ts 74.28%
(-3.84%)
72.72%
(+0%)
81.81%
(+0%)
75.32%
(+0%)
🔴 packages/abi-coder/src/interface.ts 61.76%
(+1.16%)
50%
(+0%)
76.47%
(+0%)
61.11%
(+0%)
🔴 packages/abi-coder/src/resolved-abi-type.ts 98.57%
(+0.16%)
100%
(+0%)
94.73%
(+0%)
98.66%
(+0%)
🔴 packages/abi-coder/src/utilities.ts 96.72%
(-1.39%)
91.3%
(-3.93%)
93.33%
(+1.67%)
96.87%
(-1.31%)
🔴 ✨ packages/abi-typegen/typegen.js 0%
(+0%)
100%
(+100%)
100%
(+100%)
0%
(+0%)
🔴 ✨ packages/abi-typegen/src/bin.ts 0%
(+0%)
100%
(+100%)
100%
(+100%)
0%
(+0%)
✨ packages/abi-typegen/src/abi/types/StrSliceType.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
🔴 packages/address/src/address.ts 90%
(+2.13%)
79.16%
(+6.94%)
83.33%
(+0.98%)
90%
(+2.13%)
🔴 ✨ packages/address/src/configs.ts 0%
(+0%)
100%
(+100%)
100%
(+100%)
0%
(+0%)
🔴 packages/address/src/utils.ts 84.37%
(-0.47%)
78.94%
(-0.22%)
92.3%
(+0%)
84.84%
(-0.45%)
🔴 ✨ packages/contract/src/contract-factory.ts 0%
(+0%)
0%
(+0%)
0%
(+0%)
0%
(+0%)
🔴 ✨ packages/contract/src/util.ts 0%
(+0%)
0%
(+0%)
0%
(+0%)
0%
(+0%)
🔴 ✨ packages/create-fuels/create-fuels.js 0%
(+0%)
100%
(+100%)
100%
(+100%)
0%
(+0%)
🔴 ✨ packages/create-fuels/scripts/rewriteTemplatePackageJson.ts 0%
(+0%)
100%
(+100%)
100%
(+100%)
0%
(+0%)
🔴 ✨ packages/create-fuels/src/bin.ts 0%
(+0%)
100%
(+100%)
0%
(+0%)
0%
(+0%)
🔴 ✨ packages/create-fuels/src/cli.ts 75%
(+75%)
47.36%
(+47.36%)
100%
(+100%)
75%
(+75%)
🔴 ✨ packages/crypto/src/index.browser.ts 0%
(+0%)
100%
(+100%)
100%
(+100%)
0%
(+0%)
🔴 ✨ packages/crypto/src/browser/aes-ctr.ts 0%
(+0%)
100%
(+100%)
0%
(+0%)
0%
(+0%)
🔴 ✨ packages/crypto/src/browser/bufferFromString.ts 0%
(+0%)
0%
(+0%)
0%
(+0%)
0%
(+0%)
🔴 ✨ packages/crypto/src/browser/crypto.ts 0%
(+0%)
0%
(+0%)
100%
(+100%)
0%
(+0%)
🔴 ✨ packages/crypto/src/browser/encryptJsonWalletData.ts 0%
(+0%)
100%
(+100%)
0%
(+0%)
0%
(+0%)
🔴 ✨ packages/crypto/src/browser/index.ts 0%
(+0%)
100%
(+100%)
100%
(+100%)
0%
(+0%)
🔴 ✨ packages/crypto/src/browser/randomBytes.ts 0%
(+0%)
100%
(+100%)
0%
(+0%)
0%
(+0%)
🔴 ✨ packages/crypto/src/browser/stringFromBuffer.ts 0%
(+0%)
0%
(+0%)
0%
(+0%)
0%
(+0%)
🔴 ✨ packages/forc/lib/bin.js 0%
(+0%)
100%
(+100%)
100%
(+100%)
0%
(+0%)
🔴 ✨ packages/forc/lib/index.js 0%
(+0%)
100%
(+100%)
100%
(+100%)
0%
(+0%)
🔴 ✨ packages/forc/lib/install.js 0%
(+0%)
0%
(+0%)
0%
(+0%)
0%
(+0%)
🔴 ✨ packages/forc/lib/shared.js 0%
(+0%)
0%
(+0%)
0%
(+0%)
0%
(+0%)
🔴 ✨ packages/forc/lib/update.js 0%
(+0%)
0%
(+0%)
0%
(+0%)
0%
(+0%)
🔴 ✨ packages/fuel-core/lib/bin.js 0%
(+0%)
100%
(+100%)
100%
(+100%)
0%
(+0%)
🔴 ✨ packages/fuel-core/lib/index.js 0%
(+0%)
100%
(+100%)
100%
(+100%)
0%
(+0%)
🔴 ✨ packages/fuel-core/lib/install.js 0%
(+0%)
0%
(+0%)
0%
(+0%)
0%
(+0%)
🔴 ✨ packages/fuel-core/lib/shared.js 0%
(+0%)
0%
(+0%)
0%
(+0%)
0%
(+0%)
🔴 ✨ packages/fuel-core/lib/update.js 0%
(+0%)
0%
(+0%)
0%
(+0%)
0%
(+0%)
🔴 ✨ packages/fuels/fuels.js 0%
(+0%)
100%
(+100%)
100%
(+100%)
0%
(+0%)
🔴 ✨ packages/fuels/src/bin.ts 0%
(+0%)
0%
(+0%)
100%
(+100%)
0%
(+0%)
✨ packages/fuels/src/run.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
✨ packages/fuels/src/cli/types.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
✨ packages/fuels/src/cli/commands/withConfig.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
✨ packages/fuels/src/cli/commands/withProgram.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
✨ packages/fuels/src/cli/commands/build/buildSwayProgram.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
✨ packages/fuels/src/cli/commands/build/buildSwayPrograms.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
✨ packages/fuels/src/cli/commands/build/forcHandlers.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
✨ packages/fuels/src/cli/commands/build/generateTypes.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
✨ packages/fuels/src/cli/commands/build/index.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
✨ packages/fuels/src/cli/commands/deploy/createWallet.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
🔴 ✨ packages/fuels/src/cli/commands/deploy/deployContract.ts 100%
(+100%)
75%
(+75%)
100%
(+100%)
100%
(+100%)
✨ packages/fuels/src/cli/commands/deploy/getDeployConfig.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
✨ packages/fuels/src/cli/commands/deploy/index.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
✨ packages/fuels/src/cli/commands/deploy/saveContractIds.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
✨ packages/fuels/src/cli/commands/dev/autoStartFuelCore.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
✨ packages/fuels/src/cli/commands/dev/defaultChainConfig.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
✨ packages/fuels/src/cli/commands/dev/index.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
✨ packages/fuels/src/cli/commands/dev/startFuelCore.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
✨ packages/fuels/src/cli/commands/init/index.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
✨ packages/fuels/src/cli/commands/init/shouldUseBuiltinForc.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
✨ packages/fuels/src/cli/commands/init/shouldUseBuiltinFuelCore.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
✨ packages/fuels/src/cli/config/forcUtils.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
✨ packages/fuels/src/cli/config/loadConfig.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
✨ packages/fuels/src/cli/config/validateConfig.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
✨ packages/fuels/src/cli/templates/fuels.config.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
✨ packages/fuels/src/cli/templates/index.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
✨ packages/fuels/src/cli/utils/createConfig.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
🔴 ✨ packages/fuels/src/cli/utils/findBinPath.ts 80%
(+80%)
50%
(+50%)
100%
(+100%)
80%
(+80%)
✨ packages/fuels/src/cli/utils/getBinarySource.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
✨ packages/fuels/src/cli/utils/logger.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
🔴 packages/hasher/src/hasher.ts 28.57%
(-36.54%)
100%
(+60%)
66.66%
(-33.34%)
28.57%
(-36.54%)
🔴 packages/math/src/bn.ts 88.37%
(+1.79%)
85.71%
(-0.82%)
80%
(+1.22%)
88.37%
(+1.63%)
🔴 ✨ packages/math/src/math.ts 0%
(+0%)
0%
(+0%)
0%
(+0%)
0%
(+0%)
🔴 ✨ packages/merkle/src/binary/types/branch.ts 0%
(+0%)
100%
(+100%)
0%
(+0%)
0%
(+0%)
🔴 ✨ packages/merkle/src/sparse/types/sparseCompactMerkleBranch.ts 0%
(+0%)
100%
(+100%)
0%
(+0%)
0%
(+0%)
🔴 ✨ packages/merkle/src/sparse/types/sparseCompactMerkleSolidityProof.ts 0%
(+0%)
100%
(+100%)
0%
(+0%)
0%
(+0%)
🔴 ✨ packages/merkle/src/sparse/types/sparseMerkleSolidityNode.ts 0%
(+0%)
0%
(+0%)
0%
(+0%)
0%
(+0%)
🔴 packages/mnemonic/src/mnemonic.ts 98.48%
(+0.07%)
90.32%
(+0%)
100%
(+0%)
98.48%
(+0%)
🔴 packages/predicate/src/predicate.ts 64.7%
(-1.96%)
45.83%
(-4.17%)
72.72%
(-5.05%)
64.7%
(-1.96%)
🔴 ✨ packages/providers/src/call-retrier.ts 90%
(+90%)
86.66%
(+86.66%)
100%
(+100%)
90%
(+90%)
🔴 packages/providers/src/coin-quantity.ts 11.76%
(+0.65%)
0%
(+0%)
0%
(+0%)
11.11%
(+0%)
🔴 ✨ packages/providers/src/fuel-graphql-subscriber.ts 80%
(+80%)
37.5%
(+37.5%)
100%
(+100%)
80%
(+80%)
🔴 packages/providers/src/provider.ts 73.54%
(+16.06%)
57.75%
(+5.99%)
67.69%
(+14.25%)
72.07%
(+16%)
🔴 packages/providers/src/resource.ts 80%
(+0%)
100%
(+0%)
25%
(+25%)
62.5%
(+12.5%)
🔴 packages/providers/src/generated/operations.ts 89.89%
(+7.54%)
100%
(+0%)
67.74%
(+24.35%)
90.29%
(+16.84%)
🔴 packages/providers/src/transaction-request/create-transaction-request.ts 58.82%
(+58.82%)
53.33%
(+53.33%)
37.5%
(+37.5%)
58.82%
(+58.82%)
🔴 ✨ packages/providers/src/transaction-request/hash-transaction.ts 55.55%
(+55.55%)
40%
(+40%)
100%
(+100%)
55.55%
(+55.55%)
🔴 packages/providers/src/transaction-request/output.ts 66.66%
(+55.55%)
50%
(+50%)
100%
(+100%)
66.66%
(+55.55%)
🔴 packages/providers/src/transaction-request/script-transaction-request.ts 37.5%
(+9.38%)
57.14%
(+7.14%)
27.77%
(+6.35%)
36.58%
(+9.31%)
🔴 packages/providers/src/transaction-request/transaction-request.ts 71.53%
(+53.14%)
55.93%
(+30.4%)
73.91%
(+59.21%)
71.64%
(+53.67%)
🔴 packages/providers/src/transaction-response/transaction-response.ts 13.51%
(+8.25%)
0%
(+0%)
28.57%
(+28.57%)
13.51%
(+8.25%)
🔴 packages/providers/src/transaction-summary/assemble-transaction-summary.ts 100%
(+0%)
57.14%
(-5.36%)
100%
(+0%)
100%
(+0%)
🔴 ✨ packages/providers/src/transaction-summary/calculate-transaction-fee.ts 100%
(+100%)
87.5%
(+87.5%)
100%
(+100%)
100%
(+100%)
🔴 ✨ packages/providers/src/transaction-summary/get-transaction-summary.ts 0%
(+0%)
0%
(+0%)
0%
(+0%)
0%
(+0%)
🔴 packages/providers/src/transaction-summary/operations.ts 98.09%
(-0.83%)
77.19%
(+0.72%)
100%
(+0%)
98.14%
(+0.19%)
✨ packages/providers/src/utils/gas.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
✨ packages/providers/src/utils/merge-quantities.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
packages/providers/src/utils/sleep.ts 100%
(+100%)
100%
(+0%)
100%
(+100%)
100%
(+100%)
🔴 packages/signer/src/signer.ts 79.31%
(-1.94%)
60%
(+0%)
71.42%
(-3.58%)
79.31%
(-1.94%)
🔴 ✨ packages/transactions/src/configs.ts 0%
(+0%)
100%
(+100%)
100%
(+100%)
0%
(+0%)
🔴 packages/transactions/src/coders/input.ts 77.48%
(+0.93%)
78.57%
(+0%)
87.5%
(+0%)
77.63%
(+0.92%)
🔴 ✨ packages/transactions/src/coders/policy.ts 97.67%
(+97.67%)
94.11%
(+94.11%)
100%
(+100%)
97.77%
(+97.77%)
🔴 packages/transactions/src/coders/transaction.ts 98.56%
(+0.04%)
80%
(+0%)
100%
(+0%)
98.57%
(+0.03%)
packages/utils/src/test-utils/getForcProject.ts 100%
(+2.71%)
100%
(+50%)
100%
(+0%)
100%
(+2.64%)
✨ packages/utils/src/utils/arrayify.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
✨ packages/utils/src/utils/capitalizeString.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
✨ packages/utils/src/utils/hexlify.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
🔴 ✨ packages/versions/versions.js 0%
(+0%)
100%
(+100%)
100%
(+100%)
0%
(+0%)
🔴 ✨ packages/versions/src/bin.ts 0%
(+0%)
100%
(+100%)
100%
(+100%)
0%
(+0%)
✨ packages/versions/src/lib/compareSystemVersions.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
✨ packages/versions/src/lib/fuelUpLink.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
✨ packages/versions/src/lib/getBuiltinVersions.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
✨ packages/versions/src/lib/getSystemVersions.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
✨ packages/versions/src/lib/semver.ts 100%
(+100%)
100%
(+100%)
100%
(+100%)
100%
(+100%)
🔴 ✨ packages/wallet-manager/src/types.ts 0%
(+0%)
100%
(+100%)
0%
(+0%)
0%
(+0%)
🔴 packages/wallet-manager/src/vaults/mnemonic-vault.ts 93.75%
(+0.21%)
80%
(+0%)
100%
(+0%)
93.75%
(+0.21%)
🔴 packages/wallet/src/account.ts 78.21%
(-5.3%)
32.25%
(-30.25%)
88.23%
(-4.07%)
78.21%
(-5.3%)
🔴 packages/wallet/src/test-utils/launchNode.ts 98.33%
(-1.67%)
81.48%
(+3.22%)
100%
(+0%)
98.36%
(-1.64%)
🔴 ✨ packages/wordlists/src/index.ts 0%
(+0%)
0%
(+0%)
0%
(+0%)
0%
(+0%)

@nedsalk nedsalk mentioned this pull request Jan 5, 2024
44 tasks
@nedsalk nedsalk merged commit 6c82640 into rc/salamander Jan 5, 2024
10 checks passed
@nedsalk nedsalk deleted the ns/feat/replace-elliptic branch January 5, 2024 13:45
arboleya added a commit that referenced this pull request Jan 26, 2024
* chore: updating code owners (#1496)
* docs: purge hardcoded snippets on 'using typegen' page (#1403)
* chore: remove method that's same as base method (#1445)
* chore: implement RC workflow (#1497)
* Revert "feat: add `Predicate.getTransferTxId` helper (#1467)"
* chore: fix rc release string replace (#1529)
* docs: Update some hyperlinks to reference the new documentation hub (#1520)
* chore: improve rc release message (#1559)
* feat: GraphQL subscriptions (#1374)
* chore: pin `graphql-request` to `v5` (#1567)
* chore: upgrade `tsx` (#1574)
* feat: migrate from Jest to Vitest (#1310)
* chore: fix temp test workflow (#1579)
* chore: update required node engine in `create-fuels` (#1582)
* chore: add node version test matrix (#1575)
* chore: fix broken rc message (#1580)
* chore: update nodejs to v20 (#1544)
* feat: accepting addresses as `string` (#1583)
* chore: properly format the PR coverage report comment (#1586)
* fix: flaky test (#1590)
* docs: update `deposit-and-withdraw` page (#1591)
* feat: retry mechanism (#1474)
* feat: replaced `semver` dependency with custom implementation (#1594)
* feat: replace `elliptic` with `@noble/curves` (#1601)
* chore: fix CI failing due to missing tag in test (#1614)
* feat: improve ABI Coders `decode` validation (#1426)
* fix: do not generate a coverage diff without coverage artifact (#1629)
* chore: pinpoint vitest to 1.0.4 (#1637)
* chore: remove `ethers` dependency from `utils` (#1640)
* fix: `getOperation` for `Transfer Asset` (#1619)
* fix: remove external font dependencies (#1642)
* fix: generate RC PR comment on `pull_request` event only (#1648)
* fix: fix failing `rc` comment (#1657)
* chore: add missing test group (#1658)
* feat: implement browser compatibility testing (#1630)
* chore: fix string replace in `rc` ci (#1659)
* chore: adding extra reporters (#1661)
* chore: manually trigger `rc` CI (#1660)
* feat: use `submitAndAwait` graphql endpoint (#1615)
* fix: flaky retry test (#1654)
* feat: create a wallet without a provider (#1566)
* chore!: Share single chainConfig and review node-related utilities (#1602)
* chore: use new temporary coverage artifact (#1676)
* fix: internalizing `findBinPath` utility (#1679)
petertonysmith94 pushed a commit to petertonysmith94/fuels-ts that referenced this pull request Jan 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feat Issue is a feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Replace elliptic with a tree-shakeable dependency
3 participants