当前位置: 首页 > 知识库问答 >
问题:

如何在Corda中将令牌从节点移动到帐户

陆星文
2023-03-14

我使用Corda token sdk和Corda帐户。(Corda_version = 4.1,tokens_version = 1.0,accounts_version = 1.0-rc04)

我刚刚构建了一个简单的场景:
Flow_1.PartyA节点创建帐户“lisa”

start CreateAccount name: "lisa"

Flow_2。PartA-节点向自身颁发令牌

Party notary = getServiceHub().getNetworkMapCache().getNotaryIdentities().get(0);
MyEvolvableToken myEvolvableToken = new MyEvolvableToken(...);
TransactionState<MyEvolvableToken> transactionState = new TransactionState<>(myEvolvableToken, notary);
subFlow(new CreateEvolvableTokens(myEvolvableToken));
・
・
・
//issue token to self
FungibleToken fungibleToken = new FungibleToken(amount, partya,TransactionUtilitiesKt.getAttachmentIdForGenericParam(tokenPointer))
return subFlow(new IssueTokens(ImmutableList.of(fungibleToken)));

Flow_3。部分节点将令牌移动到“lisa”

//Get Token from db
MyEvolvableToken token = stateAndRef.getState().getData();
TokenPointer tokenPointer = token.toPointer(token.getClass());
//Get Account from db
stateAndRefAccount = subFlow(new AccountInfoByName("lisa")).get(0);
AccountInfo lisaAccount = stateAndRefAccount.getState().getData();
//fresh account publicKey
PublicKey key = getServiceHub().getKeyManagementService().freshKey(lisaAccount.getIdentifier().getId()); 
AnonymousParty lisaParty = new AnonyMousParty(key);
//specify amount token to transfer
Amount<TokenPointer> amount = new Amount(10,tokenPointer);
PartyAndAmount partyAndAmount = new PartyAndAmount(lisaParty,amount);
return subFlow(new MoveFungibleTokens(partyAndAmount));

但是,当我启动Flow_3时出现了一个错误。< br >匿名聚会不起作用??< br >如何将令牌从节点转移到帐户?

java.lang.IllegalArgumentException: Called flow with anonymous party that node doesn't know about.Make sure that RequestConfidentialIdentity flow is called before.
.
.
at com.r3.corda.lib.tokens.workflows.flows.rpc.MoveFungibleTokens.call(MoveTokens.kt:22)
・
・

共有1个答案

姬康平
2023-03-14

请参考我们关于帐户令牌集成的最新示例:https://github . com/corda/samples-Java/tree/master/Accounts/worldcupticketbooking

要回答如何从节点向帐户颁发令牌的问题,您可以直接向帐户的匿名方颁发令牌

例如:

//mention the current holder which is now going to be the dealer account 
NonFungibleToken nonFungibleToken = new NonFungibleToken(issuedTokenType, dealerAccount, new UniqueIdentifier(),TransactionUtilitiesKt.getAttachmentIdForGenericParam(tokenPointer)); 

//call built in flow to issue non fungible tokens 
SignedTransaction stx =  subFlow(new IssueTokens(Arrays.asList(nonFungibleToken)));

其中经销商帐户是匿名方。

 类似资料:
  • 在 Corda 帐户库中,为了将帐户的主机“所有权”从一个节点更改为另一个节点,需要将处于 AccountInfo 状态的更改为新主机(节点),并共享与此帐户相关的所有保管库状态。 AccountInfo没有更新命令(AccountInfos命令),这意味着您无法在创建主机后更改主机。 < li >此功能是否因任何原因被排除?是否有计划引入更新命令(以及支持流)? < li >移动/转移(主机所有

  • 问题内容: 我正在一个项目中,用户对我们的代客服务的请求在另一端代客接受请求。 我正在使用Firebase作为后端,并应要求将客户uid保存在“ request”子项上。 当代客接受请求时,客户uid应从“请求”节点移至“进行中”节点。 我怎样才能做到这一点? 问题答案: 我建议使用这个: 这来自以下来源:https : //gist.github.com/katowulf/6099042。我在J

  • 除公证人外,我们的Corda网络还有3个节点。图中显示了每个节点应执行的操作。 只有在这种情况下,我们才会遇到“需要将令牌从帐户持有人转移到乙方”的麻烦 流程代码: 我们需要在C方执行流程,实际持有人是账户持有人,新持有人是乙方。 使用此代码,将返回一个错误:net.corda.core.CordaRuntime 异常:java.lang.非法描述异常:未为以下事务参与者提供流会话:[O = B

  • 我想用XSLT转换XML文档。按名称和属性匹配的节点及其子节点应嵌套/移动到新节点中。 从转变 到 但是我的XSLT工作不好。您有什么提示吗,XSLT文件有什么问题? 非常感谢你 安德烈亚斯 我的XSLT 输出: 我的源XML文件 我希望在转换后的输出中将v:data节点及其子节点嵌套到一个新节点中。但只有属性名为“Custon”的v:data节点。转换后的XML文档应该如下所示 如果我从XSLT

  • 有没有办法在Corda中抵押代币并在选择转让代币时消除抵押代币? 我想将代币转让给另一方(乙方),并在某些条件下对其进行抵押。而在乙方的分类帐中,我不希望在乙方寻求转让其代币时选择那些代币被占用的代币

  • 启动<代码>时。/build/nodes/deployNodes在macOS Mojave 10.14.1中,终端会打开,但不会启动Gradle中< code>deployNodes任务中定义的每个节点对应的选项卡。 具体看这里的教程部分。 有人有解决方案吗?