UNPKG

test-triam-base-contract

Version:

Low level triam smart cotnract support library

152 lines (116 loc) 6.37 kB
describe('Keypair.contructor', function() { it("fails when passes secret key does not match public key", function() { let secret = "SD7X7LEHBNMUIKQGKPARG5TDJNBHKC346OUARHGZL5ITC6IJPXHILY36"; let kp = StellarBase.Keypair.fromSecret(secret); let secretKey = kp.rawSecretKey(); let publicKey = StellarBase.StrKey.decodeEd25519PublicKey(kp.publicKey()); publicKey[0] = 0; // Make public key invalid expect(() => new StellarBase.Keypair({type: 'ed25519', secretKey, publicKey})).to.throw(/secretKey does not match publicKey/) }); it("fails when secretKey length is invalid", function() { let secretKey = Buffer.alloc(33); expect(() => new StellarBase.Keypair({type: 'ed25519', secretKey})).to.throw(/secretKey length is invalid/) }); it("fails when publicKey length is invalid", function() { let publicKey = Buffer.alloc(33); expect(() => new StellarBase.Keypair({type: 'ed25519', publicKey})).to.throw(/publicKey length is invalid/) }); }); describe('Keypair.fromSecret', function() { it("creates a keypair correctly", function() { let secret = "SD7X7LEHBNMUIKQGKPARG5TDJNBHKC346OUARHGZL5ITC6IJPXHILY36"; let kp = StellarBase.Keypair.fromSecret(secret); expect(kp).to.be.instanceof(StellarBase.Keypair); expect(kp.publicKey()).to.eql("GDFQVQCYYB7GKCGSCUSIQYXTPLV5YJ3XWDMWGQMDNM4EAXAL7LITIBQ7"); expect(kp.secret()).to.eql(secret); }); it("throw an error if the arg isn't strkey encoded as a seed", function() { expect(() => StellarBase.Keypair.fromSecret("hel0")).to.throw() expect(() => StellarBase.Keypair.fromSecret("SBWUBZ3SIPLLF5CCXLWUB2Z6UBTYAW34KVXOLRQ5HDAZG4ZY7MHNBWJ1")).to.throw() expect(() => StellarBase.Keypair.fromSecret("masterpassphrasemasterpassphrase")).to.throw() expect(() => StellarBase.Keypair.fromSecret("gsYRSEQhTffqA9opPepAENCr2WG6z5iBHHubxxbRzWaHf8FBWcu")).to.throw() }); }); describe('Keypair.fromBase58Seed', function() { it("creates a keypair correctly", function() { let keys = [ { oldSeed: 's3wpFU2RY8EyYRDKxhWNj3wJFBd4qHLKnaccXw9uGyYwrWVLDkB', newSeed: 'SCCMVPLGK4NLKPGGMYD4ANCC4VXMXKD7RTA24EIJ2Y6NMCCP5WJQ2TXB', newAddress: 'GDF7RAKSHWC5GKY2NRLYTZTBGFES5WX5Q6PRLX4VGH7X6TGLHLRPFIGD' }, { oldSeed: 's3Gj77MCTCDGggmr3ExjjEMX814jCgWD4wZzjo6PiprPk7uKu6w', newSeed: 'SCJ7PY5AITP6NBXPEFSB52BH7JQYJ3GPAMXBMMT6ISY2VOSEXNNGVHHH', newAddress: 'GDBAERNWWNLSZCDHTKP34N7CJHE47IRK74WAY3ZHE33ERVLB2FNTM34J' }, { oldSeed: 'sfYffC9uMbEoV3FiFZpnUrKyVLL89AT5QVpPsTpCFsz8w9oMbLw', newSeed: 'SAZS3RDL5QTPJSWARQ4MWLIKKXM446VKBBYXBXBUCXGKJCCH72TVUC6U', newAddress: 'GCIQKXYV3OLMYUU72C32LNC766TS5LY6O3MXPP5WY2XICB4G3OPYXRGP' }, { oldSeed: 's37qzijJQNy7MqPQyZJY8zFmiEzszjpBVP9CZMXJJiPmmrxdPj8', newSeed: 'SCXXRH5QY6DAQOQNHMMF5PBKPB732US6QFNI7722VDRUCNJ5MNFDJJJL', newAddress: 'GAPVNVE4S2ZKPWYM6SWPVNNYPQUTBQXNKOSIPJ3LRQWJTREP5CDLXG2B' }, { oldSeed: 's3StuXjYd8Hrgyy8WyG5aSRmDDebJZ2oTgPcGADbi4qRXThPBL4', newSeed: 'SCVQWNPUXGDRW2IOOM6SS5NQB4KK3Z2MH7ZMM4O6CXKX5L3NRZ5E6V2J', newAddress: 'GBNBJUKKTC4TZFB5QY5CXNC7UPOAYIW3DKWSSHJXXWKBDV7CZIFPBAMN' } ]; for (let i in keys) { let key = keys[i]; let keyPair = StellarBase.Keypair.fromBase58Seed(key.oldSeed); expect(keyPair.secret()).to.equal(key.newSeed); expect(keyPair.publicKey()).to.equal(key.newAddress); } }); it("throw an error if the arg isn't base58 encoded as a seed", function() { expect(() => StellarBase.Keypair.fromBase58Seed("hel0")).to.throw() expect(() => StellarBase.Keypair.fromBase58Seed("masterpassphrasemasterpassphrase")).to.throw() expect(() => StellarBase.Keypair.fromBase58Seed("gsYRSEQhTffqA9opPepAENCr2WG6z5iBHHubxxbRzWaHf8FBWcu")).to.throw() }); }); describe('Keypair.fromRawEd25519Seed', function() { it("creates a keypair correctly", function() { let seed = "masterpassphrasemasterpassphrase"; let kp = StellarBase.Keypair.fromRawEd25519Seed(seed); expect(kp).to.be.instanceof(StellarBase.Keypair); expect(kp.publicKey()).to.eql("GAXDYNIBA5E4DXR5TJN522RRYESFQ5UNUXHIPTFGVLLD5O5K552DF5ZH"); expect(kp.secret()).to.eql("SBWWC43UMVZHAYLTONYGQ4TBONSW2YLTORSXE4DBONZXA2DSMFZWLP2R"); expect(kp.rawPublicKey().toString("hex")).to.eql("2e3c35010749c1de3d9a5bdd6a31c12458768da5ce87cca6aad63ebbaaef7432"); }); it("throws an error if the arg isn't 32 bytes", function() { expect(() => StellarBase.Keypair.fromRawEd25519Seed("masterpassphrasemasterpassphras")).to.throw() expect(() => StellarBase.Keypair.fromRawEd25519Seed("masterpassphrasemasterpassphrase1")).to.throw() expect(() => StellarBase.Keypair.fromRawEd25519Seed(null)).to.throw() expect(() => StellarBase.Keypair.fromRawEd25519Seed()).to.throw() }); }); describe('Keypair.fromPublicKey', function() { it("creates a keypair correctly", function() { let kp = StellarBase.Keypair.fromPublicKey("GAXDYNIBA5E4DXR5TJN522RRYESFQ5UNUXHIPTFGVLLD5O5K552DF5ZH"); expect(kp).to.be.instanceof(StellarBase.Keypair); expect(kp.publicKey()).to.eql("GAXDYNIBA5E4DXR5TJN522RRYESFQ5UNUXHIPTFGVLLD5O5K552DF5ZH"); expect(kp.rawPublicKey().toString("hex")).to.eql("2e3c35010749c1de3d9a5bdd6a31c12458768da5ce87cca6aad63ebbaaef7432"); }); it("throw an error if the arg isn't strkey encoded as a accountid", function() { expect(() => StellarBase.Keypair.fromPublicKey("hel0")).to.throw() expect(() => StellarBase.Keypair.fromPublicKey("masterpassphrasemasterpassphrase")).to.throw() expect(() => StellarBase.Keypair.fromPublicKey("sfyjodTxbwLtRToZvi6yQ1KnpZriwTJ7n6nrASFR6goRviCU3Ff")).to.throw() }); it("throws an error if the address isn't 32 bytes", function() { expect(() => StellarBase.Keypair.fromPublicKey("masterpassphrasemasterpassphrase")).to.throw() expect(() => StellarBase.Keypair.fromPublicKey("masterpassphrasemasterpassphrase")).to.throw() expect(() => StellarBase.Keypair.fromPublicKey(null)).to.throw() expect(() => StellarBase.Keypair.fromPublicKey()).to.throw() }); }); describe('Keypair.random', function() { it("creates a keypair correctly", function() { let kp = StellarBase.Keypair.random(); expect(kp).to.be.instanceof(StellarBase.Keypair); }); });