Skip to content

部署您的合约

模板项目提供了一种方便的方式来部署合约,但您也可以自行完成部署。

使用 TypeScript 部署合约和部署链接

一、一些前置准备

  1. 注册一个TON钱包,拿到钱包地址,钱包注册:https://ton.org/zh/wallets
  2. 钱包里有一些TON币,用来支付部署合约的gas

二、编写部署脚本

要在 TON 中部署智能合约,您需要发送附加了初始数据的消息。获取合约的初始数据最简单的方法是使用生成的 TypeScript 绑定,这将有助于调用初始化函数。

typescript
import base64url from 'base64url';
import qs from 'qs';
import { Address, beginCell, storeStateInit, contractAddress, toNano } from 'ton-core';
import { Counter } from './output/sample_Counter';
 
// 形成初始化包
let owner = Address.parse("some-address");
let init = await Counter.init(owner);
let testnet = true;
 
// 合约地址
let address = contractAddress(0, init);
 
// 发送部署消息时需要附加的 TON 数量
let deployAmount = toNano("0.5");
 
// 创建初始化包的字符串表示形式
let initStr = base64url(
  beginCell().store(storeStateInit(init)).endCell().toBoc({ idx: false })
);
 
// 创建一个部署链接
console.log(
  `ton://transfer/` +
    address.toString({ testOnly: testnet }) +
    "?" +
    qs.stringify({
      text: "Deploy",
      amount: deployAmount.toString(10),
      init: initStr,
    })
);

运行此代码后,您将获得一个链接,您可以在您喜爱的 TON 钱包中打开它。它将打开一个转账页面,其中已经填写了一个部署消息。您可以更改附加到部署消息的 TON 数量,然后点击“发送”按钮。几秒钟后,您的合约将被部署,并且您将在钱包中看到一笔交易。