#sdk #原型 #网络 #io #文件 #dao #newcoin

app nc_rsdk

这是一个提供与 Newcoin 网络交互功能的 Rust SDK 原型。

1 个不稳定版本

0.1.0 2023年2月28日

#16 in #dao

MIT 许可证

70KB
1.5K SLoC

REST API 示例应用程序

这是一个提供与 Newcoin 网络交互功能的 Rust SDK 原型。

期望的 API 功能通过 main.rs 文件进行示例。

//** 此命令尚不可用,因为 rs_ncdao 尚未上传到 crates.io。 **//

安装

cargo install nc_rsdk

运行应用程序

cargo run

运行测试

cargo test

获取表行/带有有效载荷

   let gtr_response = get_table_rows().await;
    let data_1 = gtr_response.text().await?;

    let gtr_wp_response = get_proposal_by_id(&payload).await;

    let data_2 = gtr_wp_response.unwrap_err();
    let gtr_wp: Response = get_table_rows_with_payload(&payload).await.unwrap();

@newfound8ion/newcoin-sdk / 导出

@newfound8ion/newcoin-rs-api

目录

命名空间

类型别名

变量

类型别名

NCApproveDaoProposal

Ƭ NCApproveDaoProposal: Struct

类型声明

名称 类型
approver String
approver_prv_key String
dao_id u32
dao_owner String
proposal_author String
proposal_id u32

定义在

types.ts:185


NCBuyRam

Ƭ NCBuyRam: Struct

类型声明

名称 类型
payer String
payer_prv_key String
ram_amt u32
user String

定义在

types.ts:16


NCChangeFile

Ƭ NCChangeFile: Struct

类型声明

名称 类型
asset_id String
editor String
new_content String
new_image String
new_name String
new_path String
owner String
payer String
payer_prv_key String

定义在

types.ts:380


NCCreateCollection

Ƭ NCCreateCollection: Struct

类型声明

名称 类型
allow_notify bool
burnable bool
collection_name String
max_supply u32
市场费用 u32
模式字段 Vec<NCNameType>
模式名称 String
模板字段 Vec<NCNameType>
模板名称 String
user String
用户活跃密钥 String
可转移 bool

定义在

types.ts:35


NCCreateDao

结构体 NCCreateDao: Struct

类型声明

名称 类型
作者 String
作者私钥 String
描述 String
代币 String

定义在

types.ts:138


NCCreateDaoProposal

结构体 NCCreateDaoProposal: Struct

类型声明

名称 类型
dao_id String
dao_owner String
通过率 u32
提议者 String
提议者私钥 String
摘要 String
标题 String
网址 String
投票结束 String
投票开始 String

定义在

types.ts:145


NCCreateDaoStakeProposal

结构体 NCCreateDaoStakeProposal: Struct

类型声明

名称 类型
dao_id String
dao_owner String
通过率 u32
提议者 String
提议者私钥 String
数量 (Struct) { contract: String, quantity: String }
数量.合约 String
数量.数量 String
String
投票结束 String
投票开始 String

定义在

types.ts:170


NCCreateDaoUserWhitelistProposal

结构体 NCCreateDaoUserWhitelistProposal: Struct

类型声明

名称 类型
dao_id String
dao_owner String
通过率 u32
提议者 String
提议者私钥 String
类型 String
user String
投票结束 String
投票开始 String

定义在

types.ts:158


NCCreatePermission

结构体 NCCreatePermission: Struct

类型声明

名称 类型
作者 String
作者活跃私钥 String
权限名称 String
权限公钥 String

定义在

types.ts:50


NCCreatePool

结构体 NCCreatePool: Struct

类型声明

名称 类型
是否可缩放 bool
是否可膨胀 bool
是否为金库 bool
owner String
所有者活跃私钥 String
代币符号 String

定义在

types.ts:65


NCCreateUser

结构体 NCCreateUser: Struct

类型声明

名称 类型
CPU数量 String
网络数量 String
新用户 String
新账户公钥活跃密钥 String
新账户所有者公钥 String
payer String
payer_prv_key String
ram_amt u32
转移 bool

定义在

types.ts:23


NCDaoProposalVote

结构体 NCDaoProposalVote: Struct

类型声明

名称 类型
dao_id String
dao_owner String
选项 String
proposal_id String
提议类型 String
数量 String
投票者 String
投票者私钥 String

定义在

types.ts:217


NCDaoWithdrawVoteDeposit

结构体 NCDaoWithdrawVoteDeposit: Struct

类型声明

名称 类型
投票ID String
投票者 String
投票者私钥 String

定义在

types.ts:228


NCExecuteDaoProposal

结构体 NCExecuteDaoProposal: Struct

类型声明

名称 类型
dao_id u32
dao_owner String
执行 String
执行私钥 String
proposal_author String
proposal_id u32

定义在

types.ts:194


NCGetAccInfo

结构体 NCGetAccInfo: Struct

类型声明

名称 类型
合约 String
owner String
代币名称 String

定义在

types.ts:392


NCGetDaoProposals

结构体 NCGetDaoProposals: Struct

类型声明

名称 类型
dao_id String
dao_owner String
限制 u32
下界 String
proposal_author String
proposal_id String
反向 bool
上界 String

定义在

types.ts:204


NCGetDaoWhiteList

结构体 NCGetDaoWhiteList: Struct

类型声明

名称 类型
dao_id String
dao_owner String
限制 String
下界 String
反向 bool
上界 String

定义在

types.ts:242


NCGetPoolInfo

结构体 NCGetPoolInfo: Struct

类型声明

名称 类型
代码 String
owner String

定义在

types.ts:398


NCGetVotes

结构体 NCGetVotes: Struct

类型声明

名称 类型
限制 String
下界 String
反向 bool
上界 String
投票者 String

定义在

types.ts:234


NCKeyPair

结构体 NCKeyPair: Struct

类型声明

名称 类型
私钥 String
公钥 String

定义在

types.ts:6


NCKeyValPair

结构体 NCKeyValPair: Struct

类型声明

名称 类型
String
Vec<String>

定义在

types.ts:251


NCLinkPerm

结构体 NCLinkPerm: Struct

类型声明

名称 类型
操作所有者 String
链接到的操作 String
作者 String
作者活跃私钥 String
链接到的权限 String

定义在

types.ts:57


NCMintAsset

结构体 NCMintAsset: Struct

类型声明

名称 类型
列名称 String
创建者 String
不可变数据 Vec<NCKeyValPair>
可变数据 Vec<NCKeyValPair>
payer String
payer_prv_key String
模式名称 String
模板ID u32
用户活跃密钥 String

定义在

types.ts:256


NCMintFile

结构体 NCMintFile: Struct

类型声明

名称 类型
内容 String
创建者 String
图像 String
名称 String
路径 String
payer String
payer_prv_key String
用户活跃密钥 String

定义在

types.ts:369


结构体 NCMintLink: Struct

类型声明

名称 类型
列名称 String
创建者 String
描述 String
图像 String
payer String
payer_prv_key String
主题名称 String
主题类型 String

定义在

types.ts:285


NCMintProfile

结构体 NCMintProfile: Struct

类型声明

名称 类型
苹果 String
宽高比 String
权限 String
生物 String
模糊哈希 String
内容 String
内容类型 String
内容URL String
封面内容URL String
创建者 String
discord String
显示名称 String
电子邮件 String
facebook String
facebookId String
String
全名 String
instagram String
String
medium String
出价 String
payer String
payer_prv_key String
电话 String
pinterest String
reddit String
signal String
签名 String
snapchat String
soundcloud String
来源 String
spotify String
状态 String
telegram String
tiktok String
tumblr String
twitter String
用户活跃密钥 String
用户名 String
youtube String
youtubeId String

定义在

types.ts:318


NCModifyAsset

结构体 NCModifyAsset: Struct

类型声明

名称 类型
asset_id String
editor String
新数据 Vec<NCKeyValPair>
owner String
payer String
payer_prv_key String

定义在

types.ts:268


NCNameType

结构体 NCNameType: Struct

类型声明

名称 类型
名称 String
类型 String

定义在

types.ts:11


NCPoolsInfo

结构体 NCPoolsInfo: Struct

类型声明

名称 类型
更多 bool
下一个键 String
Vec<NCPoolInfo>

定义在

types.ts:124


NCReturnInfo

结构体 NCReturnInfo: Struct

类型声明

名称 类型
账户余额 Vec<String>

定义在

types.ts:442


NCReturnTxs

结构体 NCReturnTxs: Struct

类型声明

名称 类型
交易ID String
提现投票存款交易ID String
添加到白名单交易ID String
批准DAO提案交易ID String
更改文件交易ID String
创建账户交易ID String
创建列交易ID String
创建DAO交易ID String
创建DAO提案交易ID String
创建永久权限交易ID String
创建池交易ID String
创建计划交易ID String
创建模板交易ID String
执行DAO提案交易ID String
链接永久权限交易ID String
铸造资产交易ID String
铸造文件交易ID String
铸造NFT交易ID String
铸造个人资料交易ID String
修改资产交易ID String
从白名单中删除交易ID String
抵押主DAO交易ID String
抵押池交易ID String
交易Nco余额交易ID String
取消抵押主DAO交易ID String
取消抵押池交易ID String
投票给DAO提案交易ID String
从池中提现交易ID String
asset_id String
dao_id String
池代码 String
池ID String
proposal_id u32
模板ID String
交易 交易结果

定义在

types.ts:403


NCStakeMainDao

结构体 NCStakeMainDao: Struct

类型声明

名称 类型
金额 String
payer String
payer_prv_key String

定义在

types.ts:74


NCStakePool

结构体 NCStakePool: Struct

类型声明

名称 类型
金额 String
owner String
payer String
payer_prv_key String

定义在

types.ts:80


NCTxBal

结构体 NCTxBal: Struct

类型声明

名称 类型
金额 String
备注 String
payer String
payer_prv_key String
String

定义在

types.ts:102


NCTxNcoBal

结构体 NCTxNcoBal: Struct

类型声明

名称 类型
金额 String
备注 String
payer String
payer_prv_key String
String

定义在

types.ts:94


NCUnstakePool

结构体 NCUnstakePool: Struct

类型声明

名称 类型
金额 String
payer String
payer_prv_key String

定义在

types.ts:87

变量

default_nft_schema

常量 default_nft_schema: { name: String, nft_schema_type: String}

定义在

schemas.ts:9


devnet_services

常量 devnet_services: NCInitServices

定义在

system.ts:43


devnet_urls

常量 devnet_urls: NCInitUrls

定义在

system.ts:26


file_schema

常量 file_schema: { name: String, file_schema_type: String}[]

定义在

schemas.ts:19


常量 link_schema: { name: String, link_schema_type: String}[]

定义在

schemas.ts:91


profile_schema

常量 profile_schema: { name: String, profile_schema_type: String}[]

定义在

schemas.ts:38

//** 目前以下文本尚未为应用重新编写。** //

REST API

以下是示例应用的REST API描述。

获取事物列表

请求

GET /thing/

curl -i -H 'Accept: application/json' https://127.0.0.1:7000/thing/

响应

HTTP/1.1 200 OK
Date: Thu, 24 Feb 2011 12:36:30 GMT
Status: 200 OK
Connection: close
Content-Type: application/json
Content-Length: 2

[]

通过ID获取DAO提案

    let url_val = NCInitUrlsDev::default().nodeos_url.clone();
    let gtr_response: Response = get_table_rows().await;
    let data = gtr_response.json().await;

请求

POST /thing/

curl -i -H 'Accept: application/json' -d 'name=Foo&status=new' https://127.0.0.1:7000/thing

响应

HTTP/1.1 201 Created
Date: Thu, 24 Feb 2011 12:36:30 GMT
Status: 201 Created
Connection: close
Content-Type: application/json
Location: /thing/1
Content-Length: 36

{"id":1,"name":"Foo","status":"new"}

获取特定事物

请求

GET /thing/id

curl -i -H 'Accept: application/json' https://127.0.0.1:7000/thing/1

响应

HTTP/1.1 200 OK
Date: Thu, 24 Feb 2011 12:36:30 GMT
Status: 200 OK
Connection: close
Content-Type: application/json
Content-Length: 36

{"id":1,"name":"Foo","status":"new"}

获取不存在的物体

请求

GET /thing/id

curl -i -H 'Accept: application/json' https://127.0.0.1:7000/thing/9999

响应

HTTP/1.1 404 Not Found
Date: Thu, 24 Feb 2011 12:36:30 GMT
Status: 404 Not Found
Connection: close
Content-Type: application/json
Content-Length: 35

{"status":404,"reason":"Not found"}

创建另一个新事物

请求

POST /thing/

curl -i -H 'Accept: application/json' -d 'name=Bar&junk=rubbish' https://127.0.0.1:7000/thing

响应

HTTP/1.1 201 Created
Date: Thu, 24 Feb 2011 12:36:31 GMT
Status: 201 Created
Connection: close
Content-Type: application/json
Location: /thing/2
Content-Length: 35

{"id":2,"name":"Bar","status":null}

再次获取事物列表

请求

GET /thing/

curl -i -H 'Accept: application/json' https://127.0.0.1:7000/thing/

响应

HTTP/1.1 200 OK
Date: Thu, 24 Feb 2011 12:36:31 GMT
Status: 200 OK
Connection: close
Content-Type: application/json
Content-Length: 74

[{"id":1,"name":"Foo","status":"new"},{"id":2,"name":"Bar","status":null}]

更改事物状态

请求

PUT /thing/:id/状态/changed

curl -i -H 'Accept: application/json' -X PUT https://127.0.0.1:7000/thing/1/status/changed

响应

HTTP/1.1 200 OK
Date: Thu, 24 Feb 2011 12:36:31 GMT
Status: 200 OK
Connection: close
Content-Type: application/json
Content-Length: 40

{"id":1,"name":"Foo","status":"changed"}

获取更改后的物体

请求

GET /thing/id

curl -i -H 'Accept: application/json' https://127.0.0.1:7000/thing/1

响应

HTTP/1.1 200 OK
Date: Thu, 24 Feb 2011 12:36:31 GMT
Status: 200 OK
Connection: close
Content-Type: application/json
Content-Length: 40

{"id":1,"name":"Foo","status":"changed"}

更改事物

请求

PUT /thing/:id

curl -i -H 'Accept: application/json' -X PUT -d 'name=Foo&status=changed2' https://127.0.0.1:7000/thing/1

响应

HTTP/1.1 200 OK
Date: Thu, 24 Feb 2011 12:36:31 GMT
Status: 200 OK
Connection: close
Content-Type: application/json
Content-Length: 41

{"id":1,"name":"Foo","status":"changed2"}

尝试使用部分参数更改事物

请求

PUT /thing/:id

curl -i -H 'Accept: application/json' -X PUT -d 'status=changed3' https://127.0.0.1:7000/thing/1

响应

HTTP/1.1 200 OK
Date: Thu, 24 Feb 2011 12:36:32 GMT
Status: 200 OK
Connection: close
Content-Type: application/json
Content-Length: 41

{"id":1,"name":"Foo","status":"changed3"}

尝试使用无效参数更改事物

请求

PUT /thing/:id

curl -i -H 'Accept: application/json' -X PUT -d 'id=99&status=changed4' https://127.0.0.1:7000/thing/1

响应

HTTP/1.1 200 OK
Date: Thu, 24 Feb 2011 12:36:32 GMT
Status: 200 OK
Connection: close
Content-Type: application/json
Content-Length: 41

{"id":1,"name":"Foo","status":"changed4"}

使用_method黑客更改事物

请求

POST /thing/:id_method=POST

curl -i -H 'Accept: application/json' -X POST -d 'name=Baz&_method=PUT' https://127.0.0.1:7000/thing/1

响应

HTTP/1.1 200 OK
Date: Thu, 24 Feb 2011 12:36:32 GMT
Status: 200 OK
Connection: close
Content-Type: application/json
Content-Length: 41

{"id":1,"name":"Baz","status":"changed4"}

在URL中使用_method黑客更改事物

请求

POST /thing/:id_method=POST

curl -i -H 'Accept: application/json' -X POST -d 'name=Qux' https://127.0.0.1:7000/thing/1_method=PUT

响应

HTTP/1.1 404 Not Found
Date: Thu, 24 Feb 2011 12:36:32 GMT
Status: 404 Not Found
Connection: close
Content-Type: text/html;charset=utf-8
Content-Length: 35

{"status":404,"reason":"Not found"}

删除一个事物

请求

DELETE /thing/id

curl -i -H 'Accept: application/json' -X DELETE https://127.0.0.1:7000/thing/1/

响应

HTTP/1.1 204 No Content
Date: Thu, 24 Feb 2011 12:36:32 GMT
Status: 204 No Content
Connection: close

再次尝试删除相同的事物

请求

DELETE /thing/id

curl -i -H 'Accept: application/json' -X DELETE https://127.0.0.1:7000/thing/1/

响应

HTTP/1.1 404 Not Found
Date: Thu, 24 Feb 2011 12:36:32 GMT
Status: 404 Not Found
Connection: close
Content-Type: application/json
Content-Length: 35

{"status":404,"reason":"Not found"}

获取已删除的事物

请求

GET /thing/1

curl -i -H 'Accept: application/json' https://127.0.0.1:7000/thing/1

响应

HTTP/1.1 404 Not Found
Date: Thu, 24 Feb 2011 12:36:33 GMT
Status: 404 Not Found
Connection: close
Content-Type: application/json
Content-Length: 35

{"status":404,"reason":"Not found"}

使用_method黑客删除事物

请求

DELETE /thing/id

curl -i -H 'Accept: application/json' -X POST -d'_method=DELETE' https://127.0.0.1:7000/thing/2/

响应

HTTP/1.1 204 No Content
Date: Thu, 24 Feb 2011 12:36:33 GMT
Status: 204 No Content
Connection: close

依赖项

~7-23MB
~318K SLoC