public async Task testBuildTransferTransaction() { HelloAsset assetData = new HelloAsset("Hello BigchainDB!"); MetaData<HelloMetadata> metaData = new MetaData<HelloMetadata>(); Transaction<HelloAsset, HelloMetadata> transaction = BigchainDbTransactionBuilder<HelloAsset, HelloMetadata> .init() .addAssets(assetData) .operation(Operations.TRANSFER) .addMetaData(metaData) .buildAndSignOnly(BlockchainAccount.publicKeyFromHex(publicKey), BlockchainAccount.privateKeyFromHex(privateKey)); transaction.Version.ShouldBe("2.0"); transaction.Operation.ShouldBe("TRANSFER"); }
public async Task testBuildCreateTransaction() { HelloAsset assetData = new HelloAsset("Hello!"); MetaData <HelloMetadata> metaData = new MetaData <HelloMetadata>(); metaData.Id = "51ce82a14ca274d43e4992bbce41f6fdeb755f846e48e710a3bbb3b0cf8e4204"; HelloMetadata data = new HelloMetadata(); data.msg = "My first transaction"; metaData.Metadata = data; Transaction <HelloAsset, HelloMetadata> transaction = BigchainDbTransactionBuilder <HelloAsset, HelloMetadata> .init() .addAssets(assetData) .addMetaData(metaData) .operation(Operations.CREATE) .buildAndSignOnly(BlockchainAccount.publicKeyFromHex(publicKey), BlockchainAccount.privateKeyFromHex(privateKey)); //string info = transaction.toHashInput(); transaction.Version.ShouldBe("2.0"); transaction.Asset.Data.ShouldNotBe(null); transaction.Signed.ShouldBe(true); transaction.Operation.ShouldBe("CREATE"); Input input = transaction.Inputs[0]; input.OwnersBefore.ShouldNotBe(null); input.FulFillment.ShouldNotBe(null); // was null //input.FulFills.ShouldNotBe(null); Output output = transaction.Outputs[0]; output.Amount.ShouldNotBe(null); output.Condition.Uri.ShouldNotBe(null); output.Condition.Details.PublicKey.ShouldNotBe(null); output.Condition.Details.Type.ShouldNotBe(null); output.PublicKeys.ShouldNotBe(null); transaction.MetaData.Metadata.msg.ShouldBe("My first transaction"); }
public async Task testBuildOnlyCreateTransaction() { HelloAsset assetData = new HelloAsset("Hello BigchainDB!"); PublicKey edDSAPublicKey = BlockchainAccount.publicKeyFromHex(publicKey); FulFill fulFill = new FulFill(); fulFill.OutputIndex = 0; fulFill.TransactionId = "2d431073e1477f3073a4693ac7ff9be5634751de1b8abaa1f4e19548ef0b4b0e"; Transaction <HelloAsset, object> transaction = BigchainDbTransactionBuilder <HelloAsset, object> .init() .addAssets(assetData) .addInput("pGSAIDE5i63cn4X8T8N1sZ2mGkJD5lNRnBM4PZgI_zvzbr-cgUCy4BR6gKaYT-tdyAGPPpknIqI4JYQQ-p2nCg3_9BfOI-15vzldhyz-j_LZVpqAlRmbTzKS-Q5gs7ZIFaZCA_UD", fulFill, edDSAPublicKey) .addOutput("1", edDSAPublicKey) .operation(Operations.CREATE).buildOnly(edDSAPublicKey); transaction.Version.ShouldBe("2.0"); transaction.Signed.ShouldBe(null); transaction.Operation.ShouldBe("CREATE"); Input input = transaction.Inputs[0]; input.OwnersBefore.ShouldNotBe(null); input.FulFillment.ShouldNotBe(null); input.FulFills.ShouldNotBe(null); input.FulFills.OutputIndex.ShouldBe(0); input.FulFills.TransactionId.ShouldBe("2d431073e1477f3073a4693ac7ff9be5634751de1b8abaa1f4e19548ef0b4b0e"); Output output = transaction.Outputs[0]; output.Amount.ShouldNotBe(null); output.Condition.Uri.ShouldNotBe(null); output.Condition.Details.PublicKey.ShouldNotBe(null); output.Condition.Details.Type.ShouldNotBe(null); output.PublicKeys.ShouldNotBe(null); }