Skip to content

Instantly share code, notes, and snippets.

@evias
Created April 12, 2018 16:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save evias/a40010aab845bc8e3ba29d150c65cb5e to your computer and use it in GitHub Desktop.
Save evias/a40010aab845bc8e3ba29d150c65cb5e to your computer and use it in GitHub Desktop.
NEM-SDK@1.6.2: Convert Account to Multisig
let endpoint = {
'host': 'http://bigalice2.nem.ninja',
'port': 7890
};
let networkId = -104;
let privateKeyOfAccountToConvert = "PRIV_KEY_HEX_ACCOUNT_TO_CONVERT";
let privateKeyOfCosig = "PRIV_KEY_HEX_ACCOUNT_SINGLE_COSIG";
let kpc = sdk.crypto.keyPair.create(privateKeyOfAccountToConvert);
let kps = sdk.crypto.keyPair.create(privateKeyOfCosig);
let addressToMakeMultisig = sdk.model.address.toAddress(kpc.publicKey.toString(), networkId);
let addressCoSigner = sdk.model.address.toAddress(kps.publicKey.toString(), networkId);
console.log("Address to Convert to Multisig: " + addressToMakeMultisig); // TBKFYXLDLVMDZ76AU5EKVE7IA55BDXIV74FQSOCK
console.log("Address as single Co-Signer : " + addressCoSigner); // TA3SH7QUTG6OS4EGHSES426552FAJYZR2PHOBLNA
// We make `addressToMakeMultisig` a 1-of-1 multisig with the only
// cosigner being the `kp` account
// type 1 = Add cosigner
let modification = sdk.model.objects.create("multisigCosignatoryModification")(1, kps.publicKey.toString());
// prepare transaction
let trx = sdk.model.objects.create('multisigAggregateModification')();
trx.modifications.push(modification);
trx.relativeChange = 1;
// wrap transaction
let creds = {password: '', privateKey: privateKeyOfAccountToConvert};
let prepared = sdk.model.transactions.prepare('multisigAggregateModificationTransaction')(creds, trx, networkId);
console.log(trx);
console.log(prepared);
// async broadcast of the transaction
(async function broadcast() {
let result = await
sdk.model.transactions.send(creds, prepared,
endpoint);
console.log(result);
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment