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");
        }
Exemplo n.º 2
0
        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");
        }
Exemplo n.º 3
0
        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);
        }