bitgo
Version:
BitGo JavaScript SDK
84 lines • 13.1 kB
JavaScript
describe('BitGoJS in the browser', () => {
it('Should work', () => {
const BitGoJS = window['BitGoJS'];
expect(BitGoJS).toBeTruthy();
});
});
describe('Coins', () => {
it('Should work for all coins', () => {
const BitGoJS = window['BitGoJS'];
const bitgo = new BitGoJS.BitGo({ env: 'test' });
// these objects are defined in BitGoJS.Coin, but are not coins in the traditional sense
// or if statics coins name ("thorchain:rune") doesn't match with class name (Rune)
const excludedKeys = {
AbstractUtxoCoin: 1,
AbstractLightningCoin: 1,
AdaToken: 1,
Erc20Token: 1,
Erc721Token: 1,
EthLikeCoin: 1,
TethLikeCoin: 1,
OfcToken: 1,
StellarToken: 1,
CeloToken: 1,
EosToken: 1,
AlgoToken: 1,
AvaxCToken: 1,
PolygonToken: 1,
BscToken: 1,
ArbethToken: 1,
OpethToken: 1,
ZkethToken: 1,
SuiToken: 1,
TaoToken: 1,
PolyxToken: 1,
BeraToken: 1,
XrpToken: 1,
Rune: 1,
Trune: 1,
Tao: 1,
Ttao: 1,
AptToken: 1,
Icp: 1,
Ticp: 1,
Iota: 1,
Tiota: 1,
Sip10Token: 1,
SoneiumToken: 1,
Polyx: 1,
Tpolyx: 1,
CoredaoToken: 1,
EvmCoin: 1,
Nep141Token: 1,
WorldToken: 1,
CosmosSharedCoin: 1,
VetToken: 1,
EthLikeErc20Token: 1,
EthLikeErc721Token: 1,
HashToken: 1,
FlrToken: 1,
JettonToken: 1,
};
Object.keys(BitGoJS.Coin)
.filter((coinName) => !excludedKeys[coinName])
.forEach((coinName) => {
const coinIdentifier = coinName.toLowerCase();
const coin = bitgo.coin(coinIdentifier);
expect(coin).toBeTruthy();
expect(coin.type).toEqual(coinIdentifier);
});
});
it('UTXO bufferutils should work', () => {
const BitGoJS = window['BitGoJS'];
const bitgo = new BitGoJS.BitGo({ env: 'test' });
const txHex = '0100000002008287fa5a4e9d393134b525ae038cbcb4c757eadaa378c33caeed294c63137f000000006b48304502204dc8131adb9420729ff1580bbbcf01f5ef879defee5225a8261b5681075b8a120221009dc3386f5301ab4a88dfd89d8927a7807242a30ee252fa864d61d0b079aaa2c20121038c4b3c81572d84ce32a2a41c5bb54d4c408b5ce3df9be451f4f57ba8bd8ebf59ffffffff17ed0cc32384bf9c410d023d4ab25f4499992824308e89c448fd570e1060fc0e000000006b48304502202c0ff069c0783c11259936307ef906b211542a01ca33cf6993ddb7b8d55b42ac02210095c4bceb1886f5bcc6ca2dbb909259c0509e768693a93fe2d01d511a57356f25012102e99ed9483d91f1fa67abd838f21afd80bf6a3732128ab5aad0ee5b975679c13dffffffff02bca2b100000000001976a914cc3aa0deca267914cbcf96f79ccd1b679d85e20188ac08c2eb0b000000001976a914380c5a7247e945a5aa242056f9b046a9366fe21788ac00000000';
const btc = bitgo.coin('btc');
const tx = btc.createTransactionFromHex(txHex);
expect(tx.getId()).toEqual('4f666850ac8a54c834a90e62fc9dc50b3c99275dd1f91960e1ea89813970e444');
const txHexBig = '0100000002008287fa5a4e9d393134b525ae038cbcb4c757eadaa378c33caeed294c63137f000000006b48304502204dc8131adb9420729ff1580bbbcf01f5ef879defee5225a8261b5681075b8a120221009dc3386f5301ab4a88dfd89d8927a7807242a30ee252fa864d61d0b079aaa2c20121038c4b3c81572d84ce32a2a41c5bb54d4c408b5ce3df9be451f4f57ba8bd8ebf59ffffffff17ed0cc32384bf9c410d023d4ab25f4499992824308e89c448fd570e1060fc0e000000006b48304502202c0ff069c0783c11259936307ef906b211542a01ca33cf6993ddb7b8d55b42ac02210095c4bceb1886f5bcc6ca2dbb909259c0509e768693a93fe2d01d511a57356f25012102e99ed9483d91f1fa67abd838f21afd80bf6a3732128ab5aad0ee5b975679c13dffffffff02f8ffc42ebca2b1001976a914cc3aa0deca267914cbcf96f79ccd1b679d85e20188ac08c2eb0b000000001976a914380c5a7247e945a5aa242056f9b046a9366fe21788ac00000000';
const doge = bitgo.coin('doge');
const txBig = doge.createTransactionFromHex(txHexBig);
expect(txBig.outs[0].value.toString()).toEqual('49999999999999992');
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC9icm93c2VyL2Jyb3dzZXIuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxRQUFRLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxFQUFFO0lBQ3RDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFO1FBQ3JCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDL0IsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQztBQUVILFFBQVEsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO0lBQ3JCLEVBQUUsQ0FBQywyQkFBMkIsRUFBRSxHQUFHLEVBQUU7UUFDbkMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sS0FBSyxHQUFHLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELHdGQUF3RjtRQUN4RixtRkFBbUY7UUFDbkYsTUFBTSxZQUFZLEdBQUc7WUFDbkIsZ0JBQWdCLEVBQUUsQ0FBQztZQUNuQixxQkFBcUIsRUFBRSxDQUFDO1lBQ3hCLFFBQVEsRUFBRSxDQUFDO1lBQ1gsVUFBVSxFQUFFLENBQUM7WUFDYixXQUFXLEVBQUUsQ0FBQztZQUNkLFdBQVcsRUFBRSxDQUFDO1lBQ2QsWUFBWSxFQUFFLENBQUM7WUFDZixRQUFRLEVBQUUsQ0FBQztZQUNYLFlBQVksRUFBRSxDQUFDO1lBQ2YsU0FBUyxFQUFFLENBQUM7WUFDWixRQUFRLEVBQUUsQ0FBQztZQUNYLFNBQVMsRUFBRSxDQUFDO1lBQ1osVUFBVSxFQUFFLENBQUM7WUFDYixZQUFZLEVBQUUsQ0FBQztZQUNmLFFBQVEsRUFBRSxDQUFDO1lBQ1gsV0FBVyxF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PiB7XG4gIGl0KCdTaG91bGQgd29yaycsICgpID0+IHtcbiAgICBjb25zdCBCaXRHb0pTID0gd2luZG93WydCaXRHb0pTJ107XG4gICAgZXhwZWN0KEJpdEdvSlMpLnRvQmVUcnV0aHkoKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ0NvaW5zJywgKCkgPT4ge1xuICBpdCgnU2hvdWxkIHdvcmsgZm9yIGFsbCBjb2lucycsICgpID0+IHtcbiAgICBjb25zdCBCaXRHb0pTID0gd2luZG93WydCaXRHb0pTJ107XG4gICAgY29uc3QgYml0Z28gPSBuZXcgQml0R29KUy5CaXRHbyh7IGVudjogJ3Rlc3QnIH0pO1xuICAgIC8vIHRoZXNlIG9iamVjdHMgYXJlIGRlZmluZWQgaW4gQml0R29KUy5Db2luLCBidXQgYXJlIG5vdCBjb2lucyBpbiB0aGUgdHJhZGl0aW9uYWwgc2Vuc2VcbiAgICAvLyBvciBpZiBzdGF0aWNzIGNvaW5zIG5hbWUgKFwidGhvcmNoYWluOnJ1bmVcIikgZG9lc24ndCBtYXRjaCB3aXRoIGNsYXNzIG5hbWUgKFJ1bmUpXG4gICAgY29uc3QgZXhjbHVkZWRLZXlzID0ge1xuICAgICAgQWJzdHJhY3RVdHhvQ29pbjogMSxcbiAgICAgIEFic3RyYWN0TGlnaHRuaW5nQ29pbjogMSxcbiAgICAgIEFkYVRva2VuOiAxLFxuICAgICAgRXJjMjBUb2tlbjogMSxcbiAgICAgIEVyYzcyMVRva2VuOiAxLFxuICAgICAgRXRoTGlrZUNvaW46IDEsXG4gICAgICBUZXRoTGlrZUNvaW46IDEsXG4gICAgICBPZmNUb2tlbjogMSxcbiAgICAgIFN0ZWxsYXJUb2tlbjogMSxcbiAgICAgIENlbG9Ub2tlbjogMSxcbiAgICAgIEVvc1Rva2VuOiAxLFxuICAgICAgQWxnb1Rva2VuOiAxLFxuICAgICAgQXZheENUb2tlbjogMSxcbiAgICAgIFBvbHlnb25Ub2tlbjogMSxcbiAgICAgIEJzY1Rva2VuOiAxLFxuICAgICAgQXJiZXRoVG9rZW46IDEsXG4gICAgICBPcGV0aFRva2VuOiAxLFxuICAgICAgWmtldGhUb2tlbjogMSxcbiAgICAgIFN1aVRva2VuOiAxLFxuICAgICAgVGFvVG9rZW46IDEsXG4gICAgICBQb2x5eFRva2VuOiAxLFxuICAgICAgQmVyYVRva2VuOiAxLFxuICAgICAgWHJwVG9rZW46IDEsXG4gICAgICBSdW5lOiAxLFxuICAgICAgVHJ1bmU6IDEsXG4gICAgICBUYW86IDEsXG4gICAgICBUdGFvOiAxLFxuICAgICAgQXB0VG9rZW46IDEsXG4gICAgICBJY3A6IDEsXG4gICAgICBUaWNwOiAxLFxuICAgICAgSW90YTogMSxcbiAgICAgIFRpb3RhOiAxLFxuICAgICAgU2lwMTBUb2tlbjogMSxcbiAgICAgIFNvbmVpdW1Ub2tlbjogMSxcbiAgICAgIFBvbHl4OiAxLFxuICAgICAgVHBvbHl4OiAxLFxuICAgICAgQ29yZWRhb1Rva2VuOiAxLFxuICAgICAgRXZtQ29pbjogMSxcbiAgICAgIE5lcDE0MVRva2VuOiAxLFxuICAgICAgV29ybGRUb2tlbjogMSxcbiAgICAgIENvc21vc1NoYXJlZENvaW46IDEsXG4gICAgICBWZXRUb2tlbjogMSxcbiAgICAgIEV0aExpa2VFcmMyMFRva2VuOiAxLFxuICAgICAgRXRoTGlrZUVyYzcyMVRva2VuOiAxLFxuICAgICAgSGFzaFRva2VuOiAxLFxuICAgICAgRmxyVG9rZW46IDEsXG4gICAgICBKZXR0b25Ub2tlbjogMSxcbiAgICB9O1xuICAgIE9iamVjdC5rZXlzKEJpdEdvSlMuQ29pbilcbiAgICAgIC5maWx0ZXIoKGNvaW5OYW1lKSA9PiAhZXhjbHVkZWRLZXlzW2NvaW5OYW1lXSlcbiAgICAgIC5mb3JFYWNoKChjb2luTmFtZSkgPT4ge1xuICAgICAgICBjb25zdCBjb2luSWRlbnRpZmllciA9IGNvaW5OYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGNvbnN0IGNvaW4gPSBiaXRnby5jb2luKGNvaW5JZGVudGlmaWVyKTtcbiAgICAgICAgZXhwZWN0KGNvaW4pLnRvQmVUcnV0aHkoKTtcbiAgICAgICAgZXhwZWN0KGNvaW4udHlwZSkudG9FcXVhbChjb2luSWRlbnRpZmllcik7XG4gICAgICB9KTtcbiAgfSk7XG5cbiAgaXQoJ1VUWE8gYnVmZmVydXRpbHMgc2hvdWxkIHdvcmsnLCAoKSA9PiB7XG4gICAgY29uc3QgQml0R29KUyA9IHdpbmRvd1snQml0R29KUyddO1xuICAgIGNvbnN0IGJpdGdvID0gbmV3IEJpdEdvSlMuQml0R28oeyBlbnY6ICd0ZXN0JyB9KTtcblxuICAgIGNvbnN0IHR4SGV4ID1cbiAgICAgICcwMTAwMDAwMDAyMDA4Mjg3ZmE1YTRlOWQzOTMxMzRiNTI1YWUwMzhjYmNiNGM3NTdlYWRhYTM3OGMzM2NhZWVkMjk0YzYzMTM3ZjAwMDAwMDAwNmI0ODMwNDUwMjIwNGRjODEzMWFkYjk0MjA3MjlmZjE1ODBiYmJjZjAxZjVlZjg3OWRlZmVlNTIyNWE4MjYxYjU2ODEwNzViOGExMjAyMjEwMDlkYzMzODZmNTMwMWFiNGE4OGRmZDg5ZDg5MjdhNzgwNzI0MmEzMGVlMjUyZmE4NjRkNjFkMGIwNzlhYWEyYzIwMTIxMDM4YzRiM2M4MTU3MmQ4NGNlMzJhMmE0MWM1YmI1NGQ0YzQwOGI1Y2UzZGY5YmU0NTFmNGY1N2JhOGJkOGViZjU5ZmZmZmZmZmYxN2VkMGNjMzIzODRiZjljNDEwZDAyM2Q0YWIyNWY0NDk5OTkyODI0MzA4ZTg5YzQ0OGZkNTcwZTEwNjBmYzBlMDAwMDAwMDA2YjQ4MzA0NTAyMjAyYzBmZjA2OWMwNzgzYzExMjU5OTM2MzA3ZWY5MDZiMjExNTQyYTAxY2EzM2NmNjk5M2RkYjdiOGQ1NWI0MmFjMDIyMTAwOTVjNGJjZWIxODg2ZjViY2M2Y2EyZGJiOTA5MjU5YzA1MDllNzY4NjkzYTkzZmUyZDAxZDUxMWE1NzM1NmYyNTAxMjEwMmU5OWVkOTQ4M2Q5MWYxZmE2N2FiZDgzOGYyMWFmZDgwYmY2YTM3MzIxMjhhYjVhYWQwZWU1Yjk3NTY3OWMxM2RmZmZmZmZmZjAyYmNhMmIxMDAwMDAwMDAwMDE5NzZhOTE0Y2MzYWEwZGVjYTI2NzkxNGNiY2Y5NmY3OWNjZDFiNjc5ZDg1ZTIwMTg4YWMwOGMyZWIwYjAwMDAwMDAwMTk3NmE5MTQzODBjNWE3MjQ3ZTk0NWE1YWEyNDIwNTZmOWIwNDZhOTM2NmZlMjE3ODhhYzAwMDAwMDAwJztcbiAgICBjb25zdCBidGMgPSBiaXRnby5jb2luKCdidGMnKTtcbiAgICBjb25zdCB0eCA9IGJ0Yy5jcmVhdGVUcmFuc2FjdGlvbkZyb21IZXgodHhIZXgpO1xuICAgIGV4cGVjdCh0eC5nZXRJZCgpKS50b0VxdWFsKCc0ZjY2Njg1MGFjOGE1NGM4MzRhOTBlNjJmYzlkYzUwYjNjOTkyNzVkZDFmOTE5NjBlMWVhODk4MTM5NzBlNDQ0Jyk7XG5cbiAgICBjb25zdCB0eEhleEJpZyA9XG4gICAgICAnMDEwMDAwMDAwMjAwODI4N2ZhNWE0ZTlkMzkzMTM0YjUyNWFlMDM4Y2JjYjRjNzU3ZWFkYWEzNzhjMzNjYWVlZDI5NGM2MzEzN2YwMDAwMDAwMDZiNDgzMDQ1MDIyMDRkYzgxMzFhZGI5NDIwNzI5ZmYxNTgwYmJiY2YwMWY1ZWY4NzlkZWZlZTUyMjVhODI2MWI1NjgxMDc1YjhhMTIwMjIxMDA5ZGMzMzg2ZjUzMDFhYjRhODhkZmQ4OWQ4OTI3YTc4MDcyNDJhMzBlZTI1MmZhODY0ZDYxZDBiMDc5YWFhMmMyMDEyMTAzOGM0YjNjODE1NzJkODRjZTMyYTJhNDFjNWJiNTRkNGM0MDhiNWNlM2RmOWJlNDUxZjRmNTdiYThiZDhlYmY1OWZmZmZmZmZmMTdlZDBjYzMyMzg0YmY5YzQxMGQwMjNkNGFiMjVmNDQ5OTk5MjgyNDMwOGU4OWM0NDhmZDU3MGUxMDYwZmMwZTAwMDAwMDAwNmI0ODMwNDUwMjIwMmMwZmYwNjljMDc4M2MxMTI1OTkzNjMwN2VmOTA2YjIxMTU0MmEwMWNhMzNjZjY5OTNkZGI3YjhkNTViNDJhYzAyMjEwMDk1YzRiY2ViMTg4NmY1YmNjNmNhMmRiYjkwOTI1OWMwNTA5ZTc2ODY5M2E5M2ZlMmQwMWQ1MTFhNTczNTZmMjUwMTIxMDJlOTllZDk0ODNkOTFmMWZhNjdhYmQ4MzhmMjFhZmQ4MGJmNmEzNzMyMTI4YWI1YWFkMGVlNWI5NzU2NzljMTNkZmZmZmZmZmYwMmY4ZmZjNDJlYmNhMmIxMDAxOTc2YTkxNGNjM2FhMGRlY2EyNjc5MTRjYmNmOTZmNzljY2QxYjY3OWQ4NWUyMDE4OGFjMDhjMmViMGIwMDAwMDAwMDE5NzZhOTE0MzgwYzVhNzI0N2U5NDVhNWFhMjQyMDU2ZjliMDQ2YTkzNjZmZTIxNzg4YWMwMDAwMDAwMCc7XG4gICAgY29uc3QgZG9nZSA9IGJpdGdvLmNvaW4oJ2RvZ2UnKTtcbiAgICBjb25zdCB0eEJpZyA9IGRvZ2UuY3JlYXRlVHJhbnNhY3Rpb25Gcm9tSGV4KHR4SGV4QmlnKTtcbiAgICBleHBlY3QodHhCaWcub3V0c1swXS52YWx1ZS50b1N0cmluZygpKS50b0VxdWFsKCc0OTk5OTk5OTk5OTk5OTk5MicpO1xuICB9KTtcbn0pO1xuIl19