3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[Corda]Token SDK 入門(してみた

Posted at

お盆休みにこんにちは。
どーも、のぶこふです。

今回は、CordaでもToken SDKがあるというのを
風の噂で耳にしたので、
「ちょいと触ってみるか〜〜〜」な記事です。

内容はCorda githubのReadmeを参考に実施します。
Token SDKについてはホワイトペーパーを参照してください。

ネタとしては、他にもCordaでのJDBC使用方法であったり、
Notaryさんのちょっとヤバメな話とかあるのですが、
今回は、おいておきます。

環境

今回は、Mac環境で実施していきます。

インストール

既存のソースコードにSDKを導入するのも良いのですが、
手抜きで テンプレを使用します。

適当なディレクトリにcloneして、ブランチを切り替えます。
git clone http://github.com/corda/cordapp-template-kotlin
cd cordapp-template-kotlin
git checkout token-template

ビルド&ノード起動

おなじみのコマンドを実行します。
「IntelliJで開きましょう」的なコメントがありますが、
気にせずにコマンド叩いて問題なしです。

おなじみのコマンド
./gradlew clean deployNodes
./build/nodes/runnodes

実行

PartyAのノードで下記コマンドを実行します。

PartyAで実行
start ExampleFlowWithFixedToken currency: GBP, amount: 100, recipient: PartyB
実行結果
>>> start ExampleFlowWithFixedToken currency: GBP, amount: 100, recipient: PartyB

 ✅   Starting
➡️   Done
Flow completed with result: SignedTransaction(id=669A6458BFA5A684C03ECA139DED8CC631AF277EC2890808FC6F94BC902E1CB9)

>>> 

PartyBで確認してみます

PartyBで実行
run vaultQuery contractStateType: com.r3.corda.lib.tokens.contracts.states.AbstractToken
実行結果
>>> run vaultQuery contractStateType: com.r3.corda.lib.tokens.contracts.states.FungibleToken
states:
- state:
    data: !<com.r3.corda.lib.tokens.contracts.states.FungibleToken>
      amount: "100.00 TokenType(tokenIdentifier='GBP', fractionDigits=2) issued by\
        \ PartyA"
      holder: "O=PartyB, L=New York, C=US"
      tokenTypeJarHash: null
    contract: "com.r3.corda.lib.tokens.contracts.FungibleTokenContract"
    notary: "O=Notary, L=London, C=GB"
    encumbrance: null
    constraint: !<net.corda.core.contracts.SignatureAttachmentConstraint>
      key: "aSq9DsNNvGhYxYyqA9wd2eduEAZ5AXWgJTbTEw3G5d2maAq8vtLE4kZHgCs5jcB1N31cx1hpsLeqG2ngSysVHqcXhbNts6SkRWDaV7xNcr6MtcbufGUchxredBb6"
  ref:
    txhash: "669A6458BFA5A684C03ECA139DED8CC631AF277EC2890808FC6F94BC902E1CB9"
    index: 0
statesMetadata:
- ref:
    txhash: "669A6458BFA5A684C03ECA139DED8CC631AF277EC2890808FC6F94BC902E1CB9"
    index: 0
  contractStateClassName: "com.r3.corda.lib.tokens.contracts.states.FungibleToken"
  recordedTime: "2019-08-13T04:13:49.336Z"
  consumedTime: null
  status: "UNCONSUMED"
  notary: "O=Notary, L=London, C=GB"
  lockId: null
  lockUpdateTime: "2019-08-13T04:13:49.390Z"
  relevancyStatus: "RELEVANT"
  constraintInfo:
    constraint:
      key: "aSq9DsNNvGhYxYyqA9wd2eduEAZ5AXWgJTbTEw3G5d2maAq8vtLE4kZHgCs5jcB1N31cx1hpsLeqG2ngSysVHqcXhbNts6SkRWDaV7xNcr6MtcbufGUchxredBb6"
totalStatesAvailable: -1
stateTypes: "UNCONSUMED"
otherResults: []

>>> 

発行されていることが確認できました。

おわりに

ということで、本当にちょっとだけ触ってみました。
次回あたりでは、独自のトークンを作成したりしてみましょう。

今回はここまでです。
ありがとうございました。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?