Advertisement
obernardovieira

stellar endp multi sig

Sep 6th, 2018
414
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var StellarSdk = require('stellar-sdk');
  2. var server = new StellarSdk.Server('http://localhost:8000', { allowHttp: true });
  3. StellarSdk.Network.use(new StellarSdk.Network("Standalone Network ; February 2017"));
  4. var pairMaster = StellarSdk.Keypair.master();
  5.  
  6. const express = require('express')
  7. const app = express()
  8.  
  9. app.get('/newaccount', (request, response) => {
  10.     var pairNewAccount = StellarSdk.Keypair.random();
  11.     server.loadAccount(pairMaster.publicKey())
  12.         .then((account) => {
  13.             var transaction = new StellarSdk.TransactionBuilder(account)
  14.                 .addOperation(StellarSdk.Operation.createAccount({
  15.                     destination: pairNewAccount.publicKey(),
  16.                     startingBalance: '500',
  17.                 }))
  18.                 .build();
  19.  
  20.             transaction.sign(StellarSdk.Keypair.fromSecret(pairMaster.secret()));
  21.             server.submitTransaction(transaction)
  22.                 .then(() => {
  23.                     response.send('Account created with the publicKey '
  24.                         + pairNewAccount.publicKey() + ' and secret key '
  25.                         + pairNewAccount.secret())
  26.                 })
  27.                 .catch((err) => {
  28.                     console.log(err);
  29.                     response.send('An error ocurred!')
  30.                 });
  31.         })
  32.         .catch((err) => {
  33.             console.error(err);
  34.             response.send('An error ocurred!')
  35.         });
  36. })
  37.  
  38. app.get('/payment/:secret/:to/:amount', (request, response) => {
  39.     var pairUser = StellarSdk.Keypair.fromSecret(request.params.secret);
  40.     var pairTo = StellarSdk.Keypair.fromPublicKey(request.params.to);
  41.     server.loadAccount(pairUser.publicKey())
  42.         .then((account) => {
  43.             var transaction = new StellarSdk.TransactionBuilder(account)
  44.                 .addOperation(StellarSdk.Operation.payment({
  45.                     destination: pairTo.publicKey(),
  46.                     asset: StellarSdk.Asset.native(),
  47.                     amount: request.params.amount,
  48.                 }))
  49.                 .build();
  50.  
  51.             transaction.sign(StellarSdk.Keypair.fromSecret(pairUser.secret()));
  52.             server.submitTransaction(transaction)
  53.                 .then(() => {
  54.                     response.send(request.params.amount + ' lumens sent to ' + pairTo.publicKey())
  55.                 })
  56.                 .catch((err) => {
  57.                     console.log(err);
  58.                     response.send('An error ocurred!')
  59.                 });
  60.         })
  61.         .catch((err) => {
  62.             console.error(err);
  63.             response.send('An error ocurred!')
  64.         });
  65. });
  66.  
  67. app.get('/buyasset/:name/:amount/:to', (request, response) => {
  68.     // Keys for accounts to issue and receive the new asset
  69.     var issuingKeys = StellarSdk.Keypair.fromSecret(pairMaster.secret());
  70.     var receivingKeys = StellarSdk.Keypair.fromSecret(request.params.to);
  71.  
  72.     var assetName = request.params.name;
  73.     var amuntToBuy = parseInt(request.params.amount, 10);
  74.     // Create an object to represent the new asset
  75.     var astroDollar = new StellarSdk.Asset(assetName, issuingKeys.publicKey());
  76.  
  77.     // First, the receiving account must trust the asset
  78.     server.loadAccount(receivingKeys.publicKey())
  79.         .then(function (receiver) {
  80.             var transaction = new StellarSdk.TransactionBuilder(receiver)
  81.                 // The `changeTrust` operation creates (or alters) a trustline
  82.                 // The `limit` parameter below is optional
  83.                 .addOperation(StellarSdk.Operation.changeTrust({
  84.                     asset: astroDollar,
  85.                     limit: (amuntToBuy * 10).toString()
  86.                 }))
  87.                 .build();
  88.             transaction.sign(receivingKeys);
  89.             return server.submitTransaction(transaction);
  90.         })
  91.  
  92.         // Second, the issuing account actually sends a payment using the asset
  93.         .then(function () {
  94.             return server.loadAccount(issuingKeys.publicKey())
  95.         })
  96.         .then(function (issuer) {
  97.             var transaction = new StellarSdk.TransactionBuilder(issuer)
  98.                 .addOperation(StellarSdk.Operation.payment({
  99.                     destination: receivingKeys.publicKey(),
  100.                     asset: astroDollar,
  101.                     amount: amuntToBuy.toString()
  102.                 }))
  103.                 .build();
  104.             transaction.sign(issuingKeys);
  105.             return server.submitTransaction(transaction);
  106.         }).then(result => {
  107.             response.send('cenas!' + JSON.stringify(result));
  108.         })
  109.         .catch(function (error) {
  110.             console.error('Error!', error);
  111.             console.error('Error!', JSON.stringify(error.response.data));
  112.         });
  113. });
  114.  
  115.  
  116. app.get('/mstest', (request, response) => {
  117.  
  118.     var bobPair = StellarSdk.Keypair.fromSecret("SDGEY7OJTCPSGGSZ77UBLDTZOILZHG5RRBMPJXWXB32EB6PBSLWENFQT");
  119.     var alicePair = StellarSdk.Keypair.fromSecret("SCEN3AKZBOB5SYYYPAIQJSHYFZUIZ3T6AKPWRTXSQRGDGQ5DUA6BFMRW");
  120.  
  121.     var fromPair = StellarSdk.Keypair.fromSecret("SAA7GJMFULFLRN3JKQGFLFUA4LWUY6WXXS4ATRRPAP54B5L2DFBPMRDW");
  122.     var toPair = StellarSdk.Keypair.fromSecret("SB4TWTDKEW2KTHSWHG4YWU5SZUNKOIL3FLMK5W7OWOA6Q2IA2VJM5W7P");
  123.  
  124.     server.loadAccount(fromPair.publicKey())
  125.         .then(function (account) {
  126.  
  127.             var transaction = new StellarSdk.TransactionBuilder(account)
  128.                 .addOperation(StellarSdk.Operation.payment({
  129.                     destination: toPair.publicKey(),
  130.                     asset: StellarSdk.Asset.native(),
  131.                     amount: '5',
  132.                 }))
  133.                 .build();
  134.  
  135.             transaction.sign(bobPair);
  136.             transaction.sign(alicePair);
  137.  
  138.             server.submitTransaction(transaction)
  139.                 .then(() => {
  140.                     response.send('5 lumens sent to ' + toPair.publicKey())
  141.                 })
  142.                 .catch((err) => {
  143.                     console.log(err.response.data.extras.result_codes);
  144.                     response.send('An error ocurred!')
  145.                 });
  146.  
  147.  
  148.         }).then(result => {
  149.             response.send('cenas!' + result.response.data.extras.result_codes);
  150.         })
  151.         .catch(function (error) {
  152.             console.error('Error!', error);
  153.         });
  154. });
  155.  
  156. app.get('/mssetup', (request, response) => {
  157.  
  158.     var bobPair = StellarSdk.Keypair.fromSecret("SDGEY7OJTCPSGGSZ77UBLDTZOILZHG5RRBMPJXWXB32EB6PBSLWENFQT");
  159.     var alicePair = StellarSdk.Keypair.fromSecret("SCEN3AKZBOB5SYYYPAIQJSHYFZUIZ3T6AKPWRTXSQRGDGQ5DUA6BFMRW");
  160.     //
  161.     var fromPair = StellarSdk.Keypair.fromSecret("SAA7GJMFULFLRN3JKQGFLFUA4LWUY6WXXS4ATRRPAP54B5L2DFBPMRDW");
  162.     var toPair = StellarSdk.Keypair.fromSecret("SB4TWTDKEW2KTHSWHG4YWU5SZUNKOIL3FLMK5W7OWOA6Q2IA2VJM5W7P");
  163.  
  164.     server.loadAccount(fromPair.publicKey()).then((account) => {
  165.  
  166.         var transaction = new StellarSdk.TransactionBuilder(account)
  167.             .addOperation(StellarSdk.Operation.setOptions({
  168.                 signer: {
  169.                     ed25519PublicKey: bobPair.publicKey(),
  170.                     weight: 1
  171.                 },
  172.                 signer: {
  173.                     ed25519PublicKey: alicePair.publicKey(),
  174.                     weight: 1
  175.                 },
  176.                 masterWeight: 0,
  177.                 lowThreshold: 1,
  178.                 medThreshold: 1,
  179.                 highThreshold: 1
  180.             }))
  181.             .build();
  182.  
  183.         transaction.sign(fromPair);
  184.         //transaction.sign(bobPair);
  185.         //transaction.sign(alicePair);
  186.  
  187.         server.submitTransaction(transaction)
  188.             .then(() => {
  189.                 response.send('worked!')
  190.             })
  191.             .catch((err) => {
  192.                 console.log(err.response.data.extras.result_codes);
  193.                 response.send('An error ocurred!')
  194.             });
  195.  
  196.     }).catch((err) => {
  197.         console.log(err.response.data.extras.result_codes);
  198.         response.send('An error ocurred2!')
  199.     });
  200.  
  201.  
  202.  
  203. });
  204.  
  205. app.get('/:account', (request, response) => {
  206.     var pair = StellarSdk.Keypair.fromSecret(request.params.account);
  207.     server.loadAccount(pair.publicKey()).then((account) => {
  208.         var result = { account: pair.publicKey(), balance: [] };
  209.         account.balances.forEach((balance) => {
  210.             result.balance.push({ type: balance.asset_type, code: balance.asset_code, balance: balance.balance });
  211.         });
  212.         response.send(result);
  213.     });
  214. });
  215.  
  216. app.listen(3000, () => console.log('Example app listening on port 3000!'))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement