# 合约架构

<figure><img src="/files/BN0sYed3pYgu5IEUKn4N" alt=""><figcaption></figcaption></figure>

### Router合约功能

{% embed url="<https://github.com/solv-finance/SolvBTC/blob/main/contracts/SolvBTCRouter.sol>" %}
**SolvBTC和SolvBTC LST路由合约代码库**
{% endembed %}

#### 存款

```
/**
 * Subscribe with payment currency (i.e. WBTC) and receive SolvBTC.
 * @param poolId: The pool ID corresponding to SolvBTC or SolvBTC LST.
 * @param currencyAmount: Amount of currency to be deposited.
 * @return shareValue: Amount of SolvBTC to be received after subscription.
 */
function createSubscription(bytes32 poolId, uint256 currencyAmount) external returns (uint256 shareValue);
```

#### 提款请求

```
/**
 * Redeem with SolvBTC and receive currency (i.e. WBTC).
 * @param poolId: The pool ID corresponding to SolvBTC or SolvBTC LST.
 * @param redeemAmount: Amount of SolvBTC to be withdrawn.
 * @return redemptionId: TokenId of the redemption SFT to be received after redemption.
 */
function createRedemption(bytes32 poolId, uint256 redeemAmount) external returns (uint256 redemptionId);
```

#### 撤销提款请求

```
/**
 * Revoke redemption with target the tokenId of redemption SFT and receive SolvBTC 
 * with an equivalent amount of the value of the redemption SFT token.
 * @param poolId: The pool ID corresponding to SolvBTC or SolvBTC LST.
 * @param redemptionId: TokenId of the redemption SFT to be revoked.
 */
function cancelRedemption(bytes32 poolId, uint256 redemptionId) external;
```

### 提款功能

{% embed url="<https://github.com/solv-finance/solv-contracts-v3/blob/main/sft/abilities/contracts/multi-repayable/MultiRepayableDelegate.sol>" %}
**提款功能代码库**
{% endembed %}

#### WithDraw (索赔)

```
function claimTo(address to_, uint256 tokenId_, address currency_, uint256 claimValue_) external
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://www.docszh.com/solv-docs/technical-docs/smart-contracts/contract-architecture.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
