예제 #1
0
        static void Main(string[] args)
        {
            Ed25519Keypair ed25519Keypair = new Ed25519Keypair();

            var trans  = new Bigchain_Transaction();
            var result = ed25519Keypair.GenerateKeyPair(new byte[32]);
        }
        public async Task Provided_Input_Should_Make_Transfer_Transaction_And_PostCommit()
        {
            string id = "282137f67ce65e34a9eb13145606d7bf87bdaf9174111d6053002bfc543575c8";

            var generatekp = new Ed25519Keypair();
            var keys       = generatekp.GenerateKeyPair();

            var connection   = new BigchainConnection(bigchainhost);
            var currentBlock = await connection.ListBlocks(id);

            Bigchain_Transaction transaction = new Bigchain_Transaction();
            var metadata = new Metadata
            {
                Error       = null,
                Status      = "A",
                Transaction = null
            };

            currentBlock.Metadata = JObject.FromObject(metadata);


            var unspentOutput = new UnspentOutput {
                Tx          = currentBlock,
                OutputIndex = 0
            };

            var Outputs = transaction.MakeOutput(Asn1ConditionsHelper.MakeEd25519Condition(currentBlock.Outputs[0].PublicKeys[0]));

            var tx = transaction.MakeTransferTransaction(new List <UnspentOutput> {
                unspentOutput
            },
                                                         Outputs,
                                                         metadata
                                                         );
            var signTransaction = new Bigchain_SignTransaction();
            var signedTx        = signTransaction.SignTransaction(tx, new List <string>()
            {
                keys.ExpandedPrivateKey
            });
            var serializedTransaction = JsonUtility.SerializeTransactionIntoCanonicalString(JsonConvert.SerializeObject(signedTx));

            Assert.Pass();
        }
예제 #3
0
        public void ProvidedInput_Payload_Metadata_Keys_AndMakeCreateTransction(string pubKey, string fulfill)
        {
            Bigchain_Transaction transaction = new Bigchain_Transaction();
            var assets = new Asset
            {
                Assets = new AssetDefinition
                {
                    Data = new DataDefinition
                    {
                        Kyc = new KycDefinition
                        {
                            Dob      = "",
                            Nab      = "",
                            Pob      = "",
                            UserHash = ""
                        }
                    }
                }
            };

            var metadata = new Metadata
            {
                Error       = "",
                Status      = "",
                Transaction = ""
            };

            TxTemplate txTemplate = transaction.MakeCreateTransaction(assets,
                                                                      metadata,
                                                                      transaction.MakeOutput(Asn1ConditionsHelper.MakeEd25519Condition(pubKey)),
                                                                      new List <string> {
                pubKey
            }
                                                                      );

            Assert.AreEqual(pubKey, txTemplate.Outputs[0].PublicKeys[0]);
            Assert.AreEqual(pubKey, txTemplate.Inputs[0].Owners_before[0]);
            Assert.AreEqual(txTemplate.Outputs[0].Condition.Uri, fulfill);
        }