1 个不稳定版本

0.1.0 2024年6月6日

#47 in #anchor

MIT 许可证

120KB
3K SLoC

PitchTalk Solana 合同

这是一个针对 Solana 区块链的 PitchTalk 合同。

程序

依赖项

要安装此项目所需的所有内容,您需要按照 Anchor 文档中描述的依赖项进行安装。

构建合同

pitchtalk 程序的源代码位于 ./programs/pitchtalk-solana。要构建 pitchtalk-solana 程序,您需要执行以下命令


anchor build

您将得到以下输出

  • 程序二进制文件位于 ./target/deploy/pitchtalk_solana.so
  • IDL 文件位于 ./target/idl/pitchtalk_solana.json
  • Typescript 类型定义位于 ./target/types/pitchtalk_solana.ts

部署

要部署程序,请运行此命令


anchor deploy \
    --provider.cluster $ANCHOR_PROVIDER_URL \
    --program-keypair $KEYPAIR \
    --program-name pitchtalk_solana \
    --provider.wallet $ANCHOR_WALLET

运行脚本

在开始之前设置环境变量文件

  • ANCHOR_PROVIDER_URL - Solana rpc 的 URL
  • ANCHOR_WALLET - 签署事务的钱包路径
  • PITCHTALK_PROGRAM_ID - PitchTalk 程序的公钥
  • KEYPAIR - PitchTalk 程序账户密钥对

可用脚本

  1. 要初始化合同状态,请运行
npm run initialize-state <DONATION_FEE> <GRANT_FEE> <INVESTMENT_FEE> <EVENT_FEE>
  1. 要更新合同状态,请运行
npm run update-state <DONATION_FEE> <GRANT_FEE> <INVESTMENT_FEE> <EVENT_FEE>
  1. 要创建管理员,请运行
npm run create-admin <ID> <ACCOUNT> <NAME>
  1. 要更新管理员,请运行
npm run update-admin <ID> <ACCOUNT> <NAME>
  1. 要删除管理员,请运行
npm run remove-admin <ID>
  1. 要添加白名单令牌,请运行
npm run add-whitelist-token <ADMIN_ID> <MINT> <DECIMALS> <AUTHORITY_ADDRESS>

运行测试

要测试 pitchtalk-solana 程序,请执行此命令


./tests/test_script.sh

此命令启动本地验证器,在链上设置程序并运行 Jest 测试套件。


Typescript 客户端

此程序的 Javascript/Typescript 客户端。

通过以下命令发布

npm publish

请查看测试套件(./tests/**.spec.ts)以了解如何在 NodeJS 环境中使用此客户端。

基本用法示例

import { Connection, PublicKey } from "@solana/web3.js";
import { Provider } from "@coral-xyz/anchor";
import { PitchTalkProgram } from "@pitchtalk/pitchtalk-solana-cli";

// Setup web3 Connection
const connection = new Connection("https://api.mainnet-beta.solana.com");

// Use Phantom wallet provider
const wallet = window.solana;

// Setup Anchor provider
const provider = new Provider(connection, wallet as any);

// pitchtalk program ID is a well-known public key
const program = new PitchTalkProgram(
  new web3.PublicKey(PITCH_TALK_ID),
  provider
);

依赖项

~18–27MB
~462K SLoC