Skip to content

Commit

Permalink
Merge branch 'master' into nm-pin-toolchain
Browse files Browse the repository at this point in the history
  • Loading branch information
reigj1 authored Dec 4, 2024
2 parents 1fc3d55 + 6ffff34 commit a3380d4
Show file tree
Hide file tree
Showing 17 changed files with 59 additions and 19 deletions.
2 changes: 1 addition & 1 deletion docs/developer-docs/defi/dex/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Some examples of DEXs running on ICP include:

## Interacting with a DEX

To use a decentralized exchange (DEX) on ICP, you can interact with the web application for the exchange, use [tooling such as an SDK or API](#tooling) for more technical interactions, or create your own decentralized exchange application. DEXs are used to interact with the token mechanics of [ICP](docs/current/developer-docs/defi/tokens/token-standards#icp-tokens), the native token of the Internet Computer, and [ICRC-1](/docs/current/developer-docs/defi/tokens/token-standards#icrc-1) compliant tokens.
To use a decentralized exchange (DEX) on ICP, you can interact with the web application for the exchange, use [tooling such as an SDK or API](#tooling) for more technical interactions, or create your own decentralized exchange application. DEXs are used to interact with the token mechanics of [ICP](/docs/current/developer-docs/defi/tokens/token-standards#icp-tokens), the native token of the Internet Computer, and [ICRC-1](/docs/current/developer-docs/defi/tokens/token-standards#icrc-1) compliant tokens.

### Tooling

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ Open the `dfx.json` file in your project's directory. Replace the existing conte
"ic": "ryjl3-tyaaa-aaaaa-aaaba-cai"
}
},
"init_arg" : "(variant { Init = record { minting_account = "MINTER_ACCOUNT_ID"; initial_values = vec { record { "DEFAULT_ACCOUNT_ID"; record { e8s = 10_000_000_000 : nat64; }; }; }; send_whitelist = vec {}; transfer_fee = opt record { e8s = 10_000 : nat64; }; token_symbol = opt \"LICP\"; token_name = opt \"Local ICP\"; } })"
"init_arg" : "(variant { Init = record { minting_account = \"MINTER_ACCOUNT_ID\"; initial_values = vec { record { \"DEFAULT_ACCOUNT_ID\"; record { e8s = 10_000_000_000 : nat64; }; }; }; send_whitelist = vec {}; transfer_fee = opt record { e8s = 10_000 : nat64; }; token_symbol = opt \"LICP\"; token_name = opt \"Local ICP\"; } })"
}
},
"defaults": {
Expand Down
2 changes: 1 addition & 1 deletion docs/developer-docs/defi/wallets/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ On ICP, both developers and end users will use different types of wallets for di
| Type of wallet | Activities | Examples |
|----------------|------------|----------|
|[Asset wallet](overview.mdx) | Hold, transfer, and receive assets such as fungible tokens including ICP and other ICRC1/ICRC2 tokens (ex. ckBTC, ckETH) and non-fungible tokens. View token holdings. Stake ICP and create a neuron to participate in the NNS. User based authentication. | Plug, Stoic, Oisy. [View the full list](#third-party-custody). |
| [Canister-controlled wallet](/docs/current/developer-docs/smart-contracts/overview/introduction) | Using [Chain Fusion](/docs/current/developer-docs/multi-chain/overview), canisters on ICP can hold, sign, and transact with assets on various chains including ICP, Bitcoin, Ethereum, EVMs, and more. | [Cycles wallet](/docs/current/developer-docs/defi/cycles/cycles-wallet) (will be depreciated from dfx). Holds cycles needed to deploy, upgrade, and perform other operations on canisters. The cycles wallet is still supported, but has been replaced by the [cycles ledger](docs/current/developer-docs/defi/cycles/cycles-ledger). It is recommended to use the cycles ledger instead. |
| [Canister-controlled wallet](/docs/current/developer-docs/smart-contracts/overview/introduction) | Using [Chain Fusion](/docs/current/developer-docs/multi-chain/overview), canisters on ICP can hold, sign, and transact with assets on various chains including ICP, Bitcoin, Ethereum, EVMs, and more. | [Cycles wallet](/docs/current/developer-docs/defi/cycles/cycles-wallet) (will be depreciated from dfx). Holds cycles needed to deploy, upgrade, and perform other operations on canisters. The cycles wallet is still supported, but has been replaced by the [cycles ledger](/docs/current/developer-docs/defi/cycles/cycles-ledger). It is recommended to use the cycles ledger instead. |

### Other authentication methods

Expand Down
2 changes: 1 addition & 1 deletion docs/developer-docs/gas-cost.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,7 @@ Getting cycles back from a canister
- To withdraw cycles from a canister, the [canister must be deleted](/docs/current/tutorials/developer-journey/level-1/1.6-managing-canisters#getting-cycles-back-from-a-canister).

Topping up canisters
- [Top up your canisters](docs/current/developer-docs/smart-contracts/topping-up/topping-up-canister).
- [Top up your canisters](/docs/current/developer-docs/smart-contracts/topping-up/topping-up-canister).
- [Cycles management services](/docs/current/developer-docs/smart-contracts/topping-up/cycles_management_services).
- [Cycle.express](https://cycle.express/).

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ Canister smart contracts on ICP have special properties that allow developers to

To learn more about full canister smart contract functionality, refer to the [smart contracts documentation](/docs/current/developer-docs/smart-contracts/overview/introduction).

Specifically, through protocol-level integration of ICP with the [Bitcoin network](docs/current/developer-docs/multi-chain/bitcoin/overview), ICP smart contracts can interact with the Bitcoin network directly. Canister smart contracts can run [queries against the full Bitcoin UTXO](/docs/current/developer-docs/multi-chain/bitcoin/using-btc/read-state) set, including finding the balance of any Bitcoin address. They can [hold](/docs/current/developer-docs/multi-chain/bitcoin/using-btc/generate-addresses), [sign](/docs/current/developer-docs/multi-chain/bitcoin/using-btc/sign-transactions), and [submit transactions](/docs/current/developer-docs/multi-chain/bitcoin/using-btc/submit-transactions) to the Bitcoin network.
Specifically, through protocol-level integration of ICP with the [Bitcoin network](/docs/current/developer-docs/multi-chain/bitcoin/overview), ICP smart contracts can interact with the Bitcoin network directly. Canister smart contracts can run [queries against the full Bitcoin UTXO](/docs/current/developer-docs/multi-chain/bitcoin/using-btc/read-state) set, including finding the balance of any Bitcoin address. They can [hold](/docs/current/developer-docs/multi-chain/bitcoin/using-btc/generate-addresses), [sign](/docs/current/developer-docs/multi-chain/bitcoin/using-btc/sign-transactions), and [submit transactions](/docs/current/developer-docs/multi-chain/bitcoin/using-btc/submit-transactions) to the Bitcoin network.

The [Threshold Schnorr integration](/docs/current/developer-docs/smart-contracts/signatures/t-schnorr) allows developers to interact with Runes and Ordinals directly in canisters. A [Schnorr canister example](https://github.com/dfinity/examples/tree/master/motoko/t-schnorr) is available in Motoko and Rust.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,10 @@ keywords: [advanced, concept, async code, inter-canister calls, async inter-cani

import { MarkdownChipRow } from "/src/components/Chip/MarkdownChipRow";

# Composite queries
# Async code and inter-canister calls

<MarkdownChipRow labels={["Advanced", "Concept"]} />

# Async code and inter-canister calls

## Overview

In programming, the [async/await pattern](https://en.wikipedia.org/wiki/Async/await) is a syntactic feature of many programming languages that allows an asynchronous, non-blocking function to be structured in a similar way to an ordinary synchronous function.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,15 @@ This guide outlines essential development best practices for building on the Int

Ensure all canisters have sufficient cycles to sustain operations for several years initially. Given the cost-effectiveness of storage and computation on ICP compared to other platforms, this upfront investment is usually modest.

Refer to [topping up cycles page](docs/current/developer-docs/smart-contracts/topping-up/topping-up-canister) to learn how to top-up cycles effectively.
Refer to [topping up cycles page](/docs/current/developer-docs/smart-contracts/topping-up/topping-up-canister) to learn how to top-up cycles effectively.

Refer to the [cycles estimate](/docs/current/developer-docs/gas-cost) page to estimate cycle usage.

### Recommendation: Manage cycle depletion.

ICP features a mechanism to prevent canisters from running out of cycles. Canisters have a configurable `freezing_threshold`, dynamically evaluated in cycles. Set `freezing_threshold` conservatively, ensuring at least 90 to 180 days' worth of cycles for proactive management.

Refer to [this resource](docs/current/developer-docs/smart-contracts/topping-up/topping-up-canister#managing-cycle-depletion-with-freezing-threshold) to learn how to configure the `freezing_threshold` of a canister.
Refer to [this resource](/docs/current/developer-docs/smart-contracts/topping-up/topping-up-canister#managing-cycle-depletion-with-freezing-threshold) to learn how to configure the `freezing_threshold` of a canister.

To make sure you won’t get surprised by a high cycle burn rate or hitting an instruction limit, you can use the recently added [performance counter API](https://internetcomputer.org/blog/features/async-performance-counter) to profile your canisters even before going live.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ However, build tools aren’t perfect, and may fail to ensure reproducible build

ICP does not allow you to access the Wasm module of an arbitrary canister. This is a design decision, as developers might want to keep some code private. However, ICP does allow anyone to access the SHA-256 of the Wasm module.

To obtain this hash, you must first note the principal of the canister whose code you want to check. For example, to check the code of the Internet Identity canister, the principal is `rdmx6-jaaaa-aaaaa-aaadq-cai`. Then, the easiest way to access this data is using [`dfx`](docs/current/developer-docs/getting-started/install) from a command line using the following command:
To obtain this hash, you must first note the principal of the canister whose code you want to check. For example, to check the code of the Internet Identity canister, the principal is `rdmx6-jaaaa-aaaaa-aaadq-cai`. Then, the easiest way to access this data is using [`dfx`](/docs/current/developer-docs/getting-started/install) from a command line using the following command:

```bash
dfx canister --network ic info rdmx6-jaaaa-aaaaa-aaadq-cai
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ On subnets with higher loads, your application may experience elevated latencies

### Recommendation: Consider moving the canister to another subnet.

If your canister is running on a subnet that has a consistently high load and thus elevated latency, consider adding a [compute allocation](docs/current/developer-docs/gas-cost#execution-and-compute-allocation) setting. A compute allocation of 1% will guarantee your canister is scheduled for execution once every 100 rounds.
If your canister is running on a subnet that has a consistently high load and thus elevated latency, consider adding a [compute allocation](/docs/current/developer-docs/gas-cost#execution-and-compute-allocation) setting. A compute allocation of 1% will guarantee your canister is scheduled for execution once every 100 rounds.

## Troubleshooting best practices

Expand Down
42 changes: 42 additions & 0 deletions roadmap/roadmap.json
Original file line number Diff line number Diff line change
Expand Up @@ -2373,6 +2373,48 @@
"name": "Digital Assets",
"description": "DeFi protocols, real-word asset tokenization, and other digital asset solutions are strong drivers of web3 adoption. ICP’s Chain Fusion capabilities, unparalleled scalability, and the ability to serve web assets from chain opens up novel digital asset classes. Moreover, it makes ICP an attractive platform to build multi chain custody solutions and wallets.",
"milestones": [
{
"name": "OISY Wallet v1.0 - The official Launch",
"milestone_id": "Helios",
"description": "With the Helios release, officially named v1.0, OISY will step out of the beta status into its first production version. This includes functional coverage of all key features like buy, receive, send, swap, and convert from and to chain-key tokens, and with several major blockchains integrated, also a true multi-chain nature. Behind the scenes, it also includes setting up proper processes for product improvement, marketing, automated testing, and setting up a user friendly support process.",
"eta": "January 2025",
"status": "in_progress",
"elements": [
{
"title": "Solana Integration",
"overview": "OISY widens its multi-chain reach beyond Bitcoin and Ethereum, and will integrate with the most important networks. Solana is the first one to be implemented, a crucial step forward in our mission to deliver a true multi-chain wallet for decentralized finance (DeFi) users.",
"status": "in_progress",
"forum": "",
"proposal": "",
"docs": "",
"is_community": false,
"in_beta": false,
"milestone_id": "Helios"
},
{
"title": "In-Wallet Swaps",
"overview": "Introducing in-wallet swaps, this release will enhance flexibility for managing assets, allowing users to seamlessly change their asset allocation directly in OISY using DEX liquidity, mitigating risk or aiming for a higher yield.",
"status": "in_progress",
"forum": "",
"proposal": "",
"docs": "",
"is_community": false,
"in_beta": false,
"milestone_id": "Helios"
},
{
"title": "Promote Chain-Key Tokens",
"overview": "With improved screens, flows, and helper texts for chain fusion conversions, OISY will provide users with the right information at the right places to make informed decisions to easily convert native tokens into their chain fusion twins or vice versa.",
"status": "in_progress",
"forum": "",
"proposal": "",
"docs": "",
"is_community": false,
"in_beta": false,
"milestone_id": "Helios"
}
]
},
{
"name": "The Orbit Multi-Custody Asset Framework",
"milestone_id": "Poloidal",
Expand Down
2 changes: 1 addition & 1 deletion src/components/Common/sampleItems.ts
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,7 @@ export const sampleItems: SampleItem[] = [
},
motoko:
"https://github.com/dfinity/examples/tree/master/motoko/send_http_get",
docs: "docs/current/developer-docs/smart-contracts/advanced-features/https-outcalls/https-outcalls-how-to-use",
docs: "/docs/current/developer-docs/smart-contracts/advanced-features/https-outcalls/https-outcalls-how-to-use",
rust: "https://github.com/dfinity/examples/tree/master/rust/send_http_get",
},
},
Expand Down
2 changes: 1 addition & 1 deletion submodules/internetidentity
Submodule internetidentity updated 301 files
2 changes: 1 addition & 1 deletion submodules/motoko
Submodule motoko updated 275 files
2 changes: 1 addition & 1 deletion submodules/quill
2 changes: 1 addition & 1 deletion submodules/response-verfication
2 changes: 1 addition & 1 deletion submodules/samples
Submodule samples updated 569 files
2 changes: 1 addition & 1 deletion submodules/sdk
Submodule sdk updated 160 files

0 comments on commit a3380d4

Please sign in to comment.