Contributing to the Fireblocks Recovery Utility is highly encouraged and appreciated!
NEVER provide any sort of information from your recovery kit, recovery kit keys, ip addresses or any other confidential data when opening an issue. No member of Fireblocks will ask for such information of you, and in the event we would like to reach out outside of Github we will request that you speak with your Account manager or Customer Success Manager
We have setup issue templates for your convenience, please use them so that we can better understand what the issue is and how to best assist you. Feature requests are welcome however we can't commit to any features.
We work in a versioned branch approach, so each new version has it's own dedicated branch, which will be deleted some time after the version has been released.
We have setup pull request templates for your convenience, please use them for bug fixes. Note that version pull requests are only done by Fireblocks members and any pull request from a non-fireblocks member will be closed without review.
To open a bugfix pull request, use the following URL template: https://github.com/fireblocks/recovery/compare/...:recovery:?template=bug_fix_pull_request.md
Where:
base-branch
is some open version branch (vX.Y.Z)username
is your usernamebranch
is the branch name in your fork. We recommend creating a branch in the following format: vX.Y.Z- whereFIX
is some short word aobut the bug fix (for example btc-sign-tx, evm-derivation, etc...)
When creating a fix to be pulled, before actually committing the changes to your branch, make sure to always run yarn changeset
.
Once ran you will be presented with several prompts, just follow the on screen instructions.
For more information about this please see the changesets repo.
Lastly, we try to enforce conventional commits - please try to use it. For VSCode we suggest the extension Conventional Commits.
Note that we are still improving and changing the styling and thus there might be changes or requests as part of pull requests concerning styles. We provide a quick summary of styling we want code to use as part of the repo, please make sure to use this when creating pull requests;
- File names:
- For assets - name the containing folder as the asset's ID / symbol (Ethereum = ETH, Bitcoin = BTC, etc...), the main file will be
index.ts
- For files that contain TSX - file name must be
<NAME>.tsx
- For library functions - file name must be
<EXPALANTION>.ts
, so if the file handles CSV operations -csv.ts
, if it gets logs,getLogs.ts
, etc...
- For assets - name the containing folder as the asset's ID / symbol (Ethereum = ETH, Bitcoin = BTC, etc...), the main file will be
- Function and variable names should use camelCase
- Arrow functions of one line should not use brackets:
const exampleBad = () => {
return false;
};
const exampleGood = () => true;
- Try to make the code as readable and clean as possible
- For state variables, please use
useWrappedState<T>(variableName, defaultValue, sanatize)
instead of react'suseState
for traceability.variableName
is the name of the variable,defaultValue
is the default value andsanatize
is a boolean value to indicate whether this should be sanatized before printing.
If you have any questions about contributing please create an issue with the question
tag and we'll do our best to answer it!