Skip to content

Commit

Permalink
Merge branch 'master' into rei/fix-search-index
Browse files Browse the repository at this point in the history
  • Loading branch information
reigj1 authored Dec 3, 2024
2 parents be97726 + 57ce264 commit a74c568
Show file tree
Hide file tree
Showing 22 changed files with 100 additions and 370 deletions.
56 changes: 51 additions & 5 deletions docs/developer-docs/defi/wallets/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -51,17 +51,19 @@ Third-party custody allows a third-party entity to act on your behalf, managing
Before choosing a third-party option, you should do your own research and be sure that you understand the ramifications of your choices thoroughly before proceeding.
:::

### Web wallets
### Onchain wallets

Web wallets on ICP use Internet Identity for authentication, and are great for new users, less technical users, daily use, or small token transfers. Some examples include:
Onchain wallets on ICP use Internet Identity for authentication, and are great for new users, less technical users, daily use, or small token transfers. Some examples include:

- [NFID](https://nfid.one/): Each new account creates a hardware wallet that is untraceable. NFID supports sign-in with Google in addition to Internet Identity.

- [Oisy](https://oisy.com/): A multi-chain wallet powered by Chain Fusion.

- [Stoic](https://www.stoicwallet.com/): The native wallet for ICP's largest NFT marketplace, Entrepot.

- [AstroX ME](https://astrox.me/): A multi-chain wallet that supports ICP, Ethereum, Polygon, and more.
- [AstroX ME](https://astrox.me/): A multi-chain wallet that supports ICP, Ethereum, Polygon, and more.

- [Orbit](https://orbitwallet.io/): Private alpha.

### Browser extension wallets

Expand All @@ -71,7 +73,13 @@ Browser extension wallets can be used easily on any webpage, making them a good

- [Bitfinity](https://wallet.bitfinity.network/): Supports ICP, BTC, and SNS tokens. Available for Google Chrome.

- [Klever](https://klever.io/en-us): A multi-chain mobile wallet available for Google Chrome
- [Klever](https://klever.io/en-us): A multi-chain mobile wallet available for Google Chrome.

- [Trust Wallet](https://trustwallet.com/blog/beginners-guide-to-icp).

- [Metamask](https://snaps.metamask.io/snap/npm/fort-major/msq/).

- [Primevault](https://www.primevault.com/).

### Mobile app wallets

Expand All @@ -83,6 +91,32 @@ Mobile app wallets can be used for making transfers or payments while on the go,

- [Klever](https://klever.io/en-us): A multi-chain mobile wallet available for Apple and Android devices.

- [AirGap](https://airgap.it/): Available for Apple and Android devices.

- [Trust Wallet](https://trustwallet.com/): Available for Apple and Android devices, or as an APK file.

## Institutional custody

Institutional custody wallets are recommended for holding large amounts of crypto, as they provide additional benefits like customer support.

- [Coinbase](https://www.coinbase.com/custody).

- [Sygnum](https://www.sygnum.com/digital-asset-banking/internet-computer-icp/).

- [Copper](https://copper.co/en/insights/company-news/copper-adds-support-for-new-token-standards-on-the-internet-computer-blockchain-as-institutional-interest-grows).

- [Crypto Finance](https://www.crypto-finance.com/).

- [Dfns (wallet as a service)](https://www.dfns.co/article/icp-support).

- [Primevault](https://www.primevault.com/).

- [Taurus](https://www.taurushq.com/blog/taurus-integrates-the-full-icp-value-chain-including-staking-in-its-custody-solution-taurus-protect/).

- [NFID](https://nfid.one/).

- [Orbit](https://orbitwallet.io/): Private alpha.

## Self-custody wallets

Self-custody is a token distribution option that enables you to have sole responsibility over your digital assets and the management of your private keys, without the need of a third party to act on your behalf. Because there is no third-party, self-custody solutions often look different than third-party custody solutions, such that they use wallet formats such as air-gapped machines or cold wallets.
Expand All @@ -105,7 +139,19 @@ A **hardware wallet** is a physical device that holds your digital assets. Priva

In most cases, you can recover from the loss of a hardware wallet because the assets stored on hardware wallets are secured using a secret seed phrase. If you copy and secure the seed phrase—for example, by storing it in the form of a [paper wallet](#paper-wallets)—you can initialize a new device with the seed phrase and regain access to your digital assets.

One common hardware wallet device is the Ledger Nano. [Read more about how to set up a Ledger Nano device](./self-custody/hardware-wallet-cli.mdx).
Common hardware wallets include:

- [Ledger Nano](./self-custody/hardware-wallet-cli.mdx).

- [AirGap](https://airgap.it/).

- [Tangem](https://tangem.com/en/).

- [Taurus](https://www.taurushq.com/blog/taurus-integrates-the-full-icp-value-chain-including-staking-in-its-custody-solution-taurus-protect/).

- [Quill](/docs/current/developer-docs/developer-tools/cli-tools/quill-cli-reference/).

- ICP custody with seed phrase and air-gapped machine.

### Air-gapped computers

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,14 @@ To interact with the Bitcoin testnet or mainnet networks, a developer needs to u

1. [Generate a Bitcoin address](generate-addresses.mdx): To receive BTC, your canister must generate a Bitcoin address using the `ecdsa_public_key` API endpoint of the [management canister](/docs/current/developer-docs/smart-contracts/advanced-features/management-canister#signing-and-submitting-bitcoin-transactions).

:::danger

The Bitcoin Testnet API is currently disabled and the ckTestBTC minter canister has been stopped. This is temporary and they will be re-enabled in the future.

[Learn more](https://forum.dfinity.org/t/direct-integration-with-bitcoin/6147/745).

:::

2. [Create a Bitcoin transaction](create-transactions.mdx): If the canister controls BTC, it can create a transaction to spend them.

3. [Sign a transaction](sign-transactions.mdx): Next, the transaction must be signed with tECDSA using the `sign_with_ecdsa` API endpoint of the [management canister](/docs/current/developer-docs/smart-contracts/advanced-features/management-canister#signing-and-submitting-bitcoin-transactions). Transactions cannot be sent to the Bitcoin network until they are signed.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,26 @@ locally. Testing locally allows you to iterate and improve your dapp more quickl
the [Bitcoin API](/docs/current/references/ic-interface-spec#ic-bitcoin-api)
so that you can locally test out your dapp before deploying it to the Internet Computer.

:::danger

The Bitcoin Testnet API is currently disabled and the ckTestBTC minter canister has been stopped. This is temporary and they will be re-enabled in the future.

[Learn more](https://forum.dfinity.org/t/direct-integration-with-bitcoin/6147/745).

:::

## Setting up a local Bitcoin network

To develop Bitcoin dapps locally, you'll need to set up a local Bitcoin network on your machine.
Having your own local Bitcoin network allows you to mine blocks quickly and at-will, which
facilitates testing various cases without having to rely on the (slow) Bitcoin testnet
or the (even slower) Bitcoin mainnet.

- #### Step 1: Download [Bitcoin core](https://bitcoin.org/en/download). Mac users are recommended to download the `.tar.gz` version.
- #### Step 2: Unpack the `.tar.gz` file.
- #### Step 3: Create a directory named `data` inside the unpacked folder.
- #### Step 1: Download [Bitcoin core v25](https://bitcoin.org/bin/bitcoin-core-25.0/). It is recommended to use the `.tar.gz` version for Mac users.
- #### Step 2: Unpack the `.tar.gz` file: `tar -xfz bitcoin-25.0-x86_64-apple-darwin.tar.gz`
- #### Step 3: Create a directory named `data` inside the unpacked folder: `cd bitcoin-25.0 && mkdir data`
- #### Step 4: Create a file called `bitcoin.conf` at the root of the unpacked folder and add the following contents:

```
# Enable regtest mode. This is required to setup a private bitcoin network.
regtest=1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,14 @@ To submit transactions to the Bitcoin network, the Bitcoin integration API expos

The following snippet shows how to send a signed transaction to the Bitcoin network.

:::danger

The Bitcoin Testnet API is currently disabled and the ckTestBTC minter canister has been stopped. This is temporary and they will be re-enabled in the future.

[Learn more](https://forum.dfinity.org/t/direct-integration-with-bitcoin/6147/745).

:::

<AdornedTabs groupId="languages">
<TabItem value="motoko" label="Motoko" default>

Expand Down
4 changes: 2 additions & 2 deletions docs/developer-docs/smart-contracts/maintain/storage.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import { GlossaryTooltip } from "/src/components/Tooltip/GlossaryTooltip";

When developing projects on ICP, there are two primary forms of data storage that your <GlossaryTooltip>canisters</GlossaryTooltip> can utilize. The first type of storage is the canister's **heap memory**, sometimes referred to as the canister's *main memory*. Heap memory is **temporary**, and any data stored in a canister's heap memory is cleared whenever the canister is reinstalled or upgraded.

The second type of storage available to a canister is **stable memory**. Stable memory is a unique feature of ICP that  defines a separate data store aside from a canister's regular Wasm heap memory data storage. It is a secondary storage type that can be used to store data long-term, since all data stored in stable memory will persist across all canister processes.
The second type of storage available to a canister is **stable memory**. Stable memory is a unique feature of ICP that defines a separate data store aside from a canister's regular Wasm heap memory data storage. It is a secondary storage type that can be used to store data long-term, since all data stored in stable memory will persist across all canister processes.

## Heap memory

Expand All @@ -23,7 +23,7 @@ Heap memory is limited to a maximum of 4GiB of data.

## Stable memory

Stable memory is a feature unique to the Internet Computer Protocol that provides a long-term, persistent data storage option separate from a canister's heap memory. When a canister is reinstalled or upgraded, the data stored in stable memory is not cleared or removed. The stable memory is preserved throughout the process, while any other WebAssembly state is discarded.
Stable memory is a feature unique to the Internet Computer Protocol that provides a long-term, persistent data storage option separate from a canister's heap memory. Unless a canister is reinstalled or its data is cleared due to cycle depletion, the data stored in stable memory is not cleared or removed. The stable memory is preserved throughout the process, while any other WebAssembly state is discarded.

To use stable memory, you must anticipate which portions of the canister's data you want to persist across upgrades by indicating this within the canister code. More information about this can be found in the section below, [Storage handling in different languages](#storage-handling-in-different-languages).

Expand Down
2 changes: 1 addition & 1 deletion docs/motoko/version.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Motoko Version

The release of Motoko documented here, currently 0.13.3, may be a few versions
The release of Motoko documented here, currently 0.13.4, may be a few versions
ahead of the Motoko compiler that is shipped with dfx.

You can, however, instruct `dfx` to use a newer version of Motoko than the one
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ To get started, open a terminal window, navigate into your working directory (`d
```bash
dfx start --clean --background
git clone https://github.com/dfinity/examples.git
cd examples/motoko/auth-client-demo
cd examples/archive/motoko/auth-client-demo
npm install
```

Expand Down
3 changes: 2 additions & 1 deletion plugins/utils/redirects.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ const redirects = `
/icp-newsletter /news
/ois /sns
/docs/current/developer-docs/getting-started/overview-of-icp /docs/current/developer-docs/getting-started/network-overview
/docs/videos-tutorials /developers
/docs/videos-tutorials /docs/current/home
/docs /docs/current/home
/docs/current/ /docs/current/home
/docs/current/concepts/bitcoin-integration /bitcoin-integration
Expand Down Expand Up @@ -640,6 +640,7 @@ const redirects = `
/docs/current/developer-docs/getting-started/deploy/testnet /docs/current/developer-docs/getting-started/deploy-and-manage
/docs/current/developer-docs/getting-started/deploy-and-manage /docs/current/developer-docs/getting-started/deploy-and-manage
/docs/current/developer-docs/smart-contracts/write/default-template /docs/current/developer-docs/smart-contracts/write/overview
/developers /docs/current/home
`
.split(/[\r\n]+/)
.map((line) => line.trim().replace(/^#.*$/, "").trim())
Expand Down
9 changes: 4 additions & 5 deletions search/src/search/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,8 @@ name = "search"
version = "0.1.0"
edition = "2021"


[dependencies]
rust-stemmers = "*"
regex = "*"
serde = { version = "1.0.152", features = ["derive"] }
candid = "0.8.4"
rust-stemmers = "1.2.0"
regex = "1.10.2"
serde = { version = "1.0.193", features = ["derive"] }
candid = "0.8.4"
Loading

0 comments on commit a74c568

Please sign in to comment.