1 个不稳定版本
0.1.0 | 2024年6月6日 |
---|
#47 in #anchor
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 程序账户密钥对
可用脚本
- 要初始化合同状态,请运行
npm run initialize-state <DONATION_FEE> <GRANT_FEE> <INVESTMENT_FEE> <EVENT_FEE>
- 要更新合同状态,请运行
npm run update-state <DONATION_FEE> <GRANT_FEE> <INVESTMENT_FEE> <EVENT_FEE>
- 要创建管理员,请运行
npm run create-admin <ID> <ACCOUNT> <NAME>
- 要更新管理员,请运行
npm run update-admin <ID> <ACCOUNT> <NAME>
- 要删除管理员,请运行
npm run remove-admin <ID>
- 要添加白名单令牌,请运行
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