boostryjp / ibet-wallet-api Goto Github PK
View Code? Open in Web Editor NEWA powerful API suite for seamlessly building ibet blockchain wallet systems 🛠
Home Page: https://ibet.jp/ibet-for-fin
License: Apache License 2.0
A powerful API suite for seamlessly building ibet blockchain wallet systems 🛠
Home Page: https://ibet.jp/ibet-for-fin
License: Apache License 2.0
テストケースを作成する。
node, list, bank の3つに分割する。
■入力
※検討中
■出力
※検討中
/v1/User/PaymentAccount
config.pyに今回のプロジェクトでは不要な設定値が存在しそうなので、不要なものは削除する。
作成済みのAPI仕様書を作成する
発行者から依頼があった場合に限り、トークンの格付け登録を行う業務が存在する。
格付けのオペレーションで利用する更新系のAPI
■入力
※検討中
■出力
※検討中
pip freeze で作成したが、最新の状態ではうまく動かにようです。修正します。
現状、MyTokeで固定になっているので、動的に変えられるようにする。
Testnetでテストするためのデフォルト値であるので、全て削除する。
キャンセル状態の注文が板に残ってしまっている。
約定結果を登録するためのAPI(約定確定・約定取消)
■入力
※検討中
■出力
※検討中
発行者から依頼があった場合に限り、トークンの格付け登録を行う業務が存在する。
格付けのオペレーションをミスした時などに登録内容を削除する際に利用する更新系のAPI
■入力
※検討中
■出力
※検討中
eth.GetTransactionCount()
eth.SendRawTransaction()
全体で発行されているトークンの一覧参照用API
■入力
なし
■出力
以下のリスト
・トークンアドレス
・トークン名
・発行体名
・商品区分(トークンテンプレート名)
収納代行ノードの公開鍵を参照するためのAPI
※投資家の個人情報を秘匿化する用途で利用
■入力
収納代行アドレス
※収納代行ノードの向き先にリクエストを投げるので本来的には入力パラメータは必要ないと思うが、
念のためリクエスト先が誤りではないことを確認する意味でも入力するようにする。
■出力
公開鍵(RSA)
RawTransaction作成時のGasEstimate用のAPIを作成する
■入力
{
"account_address_list": ["0x12345"]
}
■出力
{
"meta": {
"code": 200,
"message": "OK"
},
"data": {
"order_list": [
{
"token": {
tokenJSON
},
"order": {
orderJSON
}
}
],
"settlement_list": [
{
"token": {
tokenJSON
},
"agreement": {
"orderId": 0,
"agreementId": 0,
"amount": 500,
"price": 12000,
"isBuy": false
}
}
],
"complete_list": [
{
"token": {
tokenJSON
},
"agreement": {
"orderId": 0,
"agreementId": 0,
"amount": 500,
"price": 12000,
"isBuy": false
}
}
]
}
}
マーケットに表示するトークン画像の保存場所を検討する必要がありそうです。
案)
■入力
{
"token_address":"0x12345",
"token_template":"IbetStraightBond",
"order_type":"buy",
"price":1000,
"amount":20
}
■出力
{
"meta":{
"code":200,
"message":"OK"
},
"data":[
{
"order_id":1,
"price":20,
"amount":100
},
{
"order_id":2,
"price":20,
"amount":4
},
{
"order_id":5,
"price":100,
"amount":50
}
]
}
収納代行アカウントに対して、取引参加の認可を申請するAPI(いわゆるホワイトリストコントラクト)
■入力
・署名済トランザクション
※コントラクトの入力
・収納代行アカウントアドレス
・銀行口座情報:JSON文字列(収納代行が公開している公開鍵で暗号化済)
■出力
・トランザクションID
■入力
※検討中
■出力
※検討中
注文完了時や、通知画面で見せる文面に使うデータのソースがないため、
作る必要があるかと思われます。
etc...
transferだけ成功した場合、取引所に預かりが残ったままになってしまう
※途中まで実装済み
保有トークン一覧のAPIを追加する。
■入力
・アカウントアドレスのリスト ※一つのウォレットで複数アカウントを保持している想定
■出力
以下のリスト
・トークンアドレス(コントラクトアドレス)
・トークン名
・保有数量
※トークンの画像も必要だが、画像についてはデザイン確定後に実装する。
■入力
・アカウントアドレスのリスト ※一つのウォレットが複数のアドレスを保有している想定。
■出力
以下のリスト
・コントラクトアドレス
・商品分類(テンプレート名)
・トークン名
平均取得単価の算出、APIでの返却を行う
/v1/OrderListと/v1/OrderBookでResponseのオーダIDの命名が揃っていない
コントラクトのデプロイ時、
Quorumの場合は、ブロック生成スピードがかなり速いがこの設計で大丈夫か?
■入力
トークンコントラクトのアドレス一覧
{
"address_list":["0x1e770b6e52ddbee99209db0ef73fe7c18a119ed0","aaaaaa"]
}
■出力
{
"meta": {
"code": 200,
"message": "OK"
},
"data": [
{
"token_address": "0x0",
"last_price": 240000
},
{
"token_address": "0x1",
"last_price": 240000
},
{
"token_address": "0x2",
"last_price": 240000
}
]
}
}
紆余曲折を経て、最終的に使わなくなったモジュールが存在するため削除する。
エラーハンドリングを追加する。
※どこまで厳密にエラーハンドリングするかは悩みどころ。
現状、http://localhost:8545 でベタ書きになってしまっているので環境変数化する。
Upgrade the exchange contract in relation to the following two modifications.
BoostryJP/ibet-SmartContract#9
BoostryJP/ibet-SmartContract#10
発行体情報を登録・参照するAPIの仕様修正
アドレス指定の参照時に投資家の秘匿情報を暗号化するための公開鍵(RSA)も返すようにする。
■やりたいこと
■懸念点(→仕様として説明する?)
表示されるトークンが重複する可能性がある。例
■入力
11件目から20件目を取得する時
/v1/Contracts?offset=1&limit=10
■出力
以下のリスト
・トークンのアドレス:コントラクトアドレス
・トークン名
・商品分類:テンプレート名
現状、PublicのEthereumを利用して開発しているが、Quorum利用に切り替える。
普通社債トークンの標準テンプレートを確定し、各APIの出力仕様に追加するものは追加する対応を行う。
現状、認定フラグを返していない?
■入力
※検討中
■出力
※検討中
約定済みのトレード情報を参照するAPI
■入力
※検討中
■出力
※検討中
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.