@xchainjs/xchain-thorchain 0.28.8 → 0.28.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js CHANGED
@@ -4436,580 +4436,596 @@ function asPromise(fn, ctx/*, varargs */) {
4436
4436
 
4437
4437
  var base64$1 = {};
4438
4438
 
4439
- (function (exports) {
4439
+ var hasRequiredBase64;
4440
+
4441
+ function requireBase64 () {
4442
+ if (hasRequiredBase64) return base64$1;
4443
+ hasRequiredBase64 = 1;
4444
+ (function (exports) {
4440
4445
 
4441
- /**
4442
- * A minimal base64 implementation for number arrays.
4443
- * @memberof util
4444
- * @namespace
4445
- */
4446
- var base64 = exports;
4446
+ /**
4447
+ * A minimal base64 implementation for number arrays.
4448
+ * @memberof util
4449
+ * @namespace
4450
+ */
4451
+ var base64 = exports;
4447
4452
 
4448
- /**
4449
- * Calculates the byte length of a base64 encoded string.
4450
- * @param {string} string Base64 encoded string
4451
- * @returns {number} Byte length
4452
- */
4453
- base64.length = function length(string) {
4454
- var p = string.length;
4455
- if (!p)
4456
- return 0;
4457
- var n = 0;
4458
- while (--p % 4 > 1 && string.charAt(p) === "=")
4459
- ++n;
4460
- return Math.ceil(string.length * 3) / 4 - n;
4461
- };
4453
+ /**
4454
+ * Calculates the byte length of a base64 encoded string.
4455
+ * @param {string} string Base64 encoded string
4456
+ * @returns {number} Byte length
4457
+ */
4458
+ base64.length = function length(string) {
4459
+ var p = string.length;
4460
+ if (!p)
4461
+ return 0;
4462
+ var n = 0;
4463
+ while (--p % 4 > 1 && string.charAt(p) === "=")
4464
+ ++n;
4465
+ return Math.ceil(string.length * 3) / 4 - n;
4466
+ };
4462
4467
 
4463
- // Base64 encoding table
4464
- var b64 = new Array(64);
4468
+ // Base64 encoding table
4469
+ var b64 = new Array(64);
4465
4470
 
4466
- // Base64 decoding table
4467
- var s64 = new Array(123);
4471
+ // Base64 decoding table
4472
+ var s64 = new Array(123);
4468
4473
 
4469
- // 65..90, 97..122, 48..57, 43, 47
4470
- for (var i = 0; i < 64;)
4471
- s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;
4474
+ // 65..90, 97..122, 48..57, 43, 47
4475
+ for (var i = 0; i < 64;)
4476
+ s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;
4477
+
4478
+ /**
4479
+ * Encodes a buffer to a base64 encoded string.
4480
+ * @param {Uint8Array} buffer Source buffer
4481
+ * @param {number} start Source start
4482
+ * @param {number} end Source end
4483
+ * @returns {string} Base64 encoded string
4484
+ */
4485
+ base64.encode = function encode(buffer, start, end) {
4486
+ var parts = null,
4487
+ chunk = [];
4488
+ var i = 0, // output index
4489
+ j = 0, // goto index
4490
+ t; // temporary
4491
+ while (start < end) {
4492
+ var b = buffer[start++];
4493
+ switch (j) {
4494
+ case 0:
4495
+ chunk[i++] = b64[b >> 2];
4496
+ t = (b & 3) << 4;
4497
+ j = 1;
4498
+ break;
4499
+ case 1:
4500
+ chunk[i++] = b64[t | b >> 4];
4501
+ t = (b & 15) << 2;
4502
+ j = 2;
4503
+ break;
4504
+ case 2:
4505
+ chunk[i++] = b64[t | b >> 6];
4506
+ chunk[i++] = b64[b & 63];
4507
+ j = 0;
4508
+ break;
4509
+ }
4510
+ if (i > 8191) {
4511
+ (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));
4512
+ i = 0;
4513
+ }
4514
+ }
4515
+ if (j) {
4516
+ chunk[i++] = b64[t];
4517
+ chunk[i++] = 61;
4518
+ if (j === 1)
4519
+ chunk[i++] = 61;
4520
+ }
4521
+ if (parts) {
4522
+ if (i)
4523
+ parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));
4524
+ return parts.join("");
4525
+ }
4526
+ return String.fromCharCode.apply(String, chunk.slice(0, i));
4527
+ };
4528
+
4529
+ var invalidEncoding = "invalid encoding";
4530
+
4531
+ /**
4532
+ * Decodes a base64 encoded string to a buffer.
4533
+ * @param {string} string Source string
4534
+ * @param {Uint8Array} buffer Destination buffer
4535
+ * @param {number} offset Destination offset
4536
+ * @returns {number} Number of bytes written
4537
+ * @throws {Error} If encoding is invalid
4538
+ */
4539
+ base64.decode = function decode(string, buffer, offset) {
4540
+ var start = offset;
4541
+ var j = 0, // goto index
4542
+ t; // temporary
4543
+ for (var i = 0; i < string.length;) {
4544
+ var c = string.charCodeAt(i++);
4545
+ if (c === 61 && j > 1)
4546
+ break;
4547
+ if ((c = s64[c]) === undefined)
4548
+ throw Error(invalidEncoding);
4549
+ switch (j) {
4550
+ case 0:
4551
+ t = c;
4552
+ j = 1;
4553
+ break;
4554
+ case 1:
4555
+ buffer[offset++] = t << 2 | (c & 48) >> 4;
4556
+ t = c;
4557
+ j = 2;
4558
+ break;
4559
+ case 2:
4560
+ buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;
4561
+ t = c;
4562
+ j = 3;
4563
+ break;
4564
+ case 3:
4565
+ buffer[offset++] = (t & 3) << 6 | c;
4566
+ j = 0;
4567
+ break;
4568
+ }
4569
+ }
4570
+ if (j === 1)
4571
+ throw Error(invalidEncoding);
4572
+ return offset - start;
4573
+ };
4574
+
4575
+ /**
4576
+ * Tests if the specified string appears to be base64 encoded.
4577
+ * @param {string} string String to test
4578
+ * @returns {boolean} `true` if probably base64 encoded, otherwise false
4579
+ */
4580
+ base64.test = function test(string) {
4581
+ return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);
4582
+ };
4583
+ } (base64$1));
4584
+ return base64$1;
4585
+ }
4586
+
4587
+ var eventemitter;
4588
+ var hasRequiredEventemitter;
4589
+
4590
+ function requireEventemitter () {
4591
+ if (hasRequiredEventemitter) return eventemitter;
4592
+ hasRequiredEventemitter = 1;
4593
+ eventemitter = EventEmitter;
4472
4594
 
4473
4595
  /**
4474
- * Encodes a buffer to a base64 encoded string.
4475
- * @param {Uint8Array} buffer Source buffer
4476
- * @param {number} start Source start
4477
- * @param {number} end Source end
4478
- * @returns {string} Base64 encoded string
4596
+ * Constructs a new event emitter instance.
4597
+ * @classdesc A minimal event emitter.
4598
+ * @memberof util
4599
+ * @constructor
4479
4600
  */
4480
- base64.encode = function encode(buffer, start, end) {
4481
- var parts = null,
4482
- chunk = [];
4483
- var i = 0, // output index
4484
- j = 0, // goto index
4485
- t; // temporary
4486
- while (start < end) {
4487
- var b = buffer[start++];
4488
- switch (j) {
4489
- case 0:
4490
- chunk[i++] = b64[b >> 2];
4491
- t = (b & 3) << 4;
4492
- j = 1;
4493
- break;
4494
- case 1:
4495
- chunk[i++] = b64[t | b >> 4];
4496
- t = (b & 15) << 2;
4497
- j = 2;
4498
- break;
4499
- case 2:
4500
- chunk[i++] = b64[t | b >> 6];
4501
- chunk[i++] = b64[b & 63];
4502
- j = 0;
4503
- break;
4504
- }
4505
- if (i > 8191) {
4506
- (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));
4507
- i = 0;
4508
- }
4509
- }
4510
- if (j) {
4511
- chunk[i++] = b64[t];
4512
- chunk[i++] = 61;
4513
- if (j === 1)
4514
- chunk[i++] = 61;
4515
- }
4516
- if (parts) {
4517
- if (i)
4518
- parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));
4519
- return parts.join("");
4520
- }
4521
- return String.fromCharCode.apply(String, chunk.slice(0, i));
4522
- };
4601
+ function EventEmitter() {
4523
4602
 
4524
- var invalidEncoding = "invalid encoding";
4603
+ /**
4604
+ * Registered listeners.
4605
+ * @type {Object.<string,*>}
4606
+ * @private
4607
+ */
4608
+ this._listeners = {};
4609
+ }
4610
+
4611
+ /**
4612
+ * Registers an event listener.
4613
+ * @param {string} evt Event name
4614
+ * @param {function} fn Listener
4615
+ * @param {*} [ctx] Listener context
4616
+ * @returns {util.EventEmitter} `this`
4617
+ */
4618
+ EventEmitter.prototype.on = function on(evt, fn, ctx) {
4619
+ (this._listeners[evt] || (this._listeners[evt] = [])).push({
4620
+ fn : fn,
4621
+ ctx : ctx || this
4622
+ });
4623
+ return this;
4624
+ };
4525
4625
 
4526
4626
  /**
4527
- * Decodes a base64 encoded string to a buffer.
4528
- * @param {string} string Source string
4529
- * @param {Uint8Array} buffer Destination buffer
4530
- * @param {number} offset Destination offset
4531
- * @returns {number} Number of bytes written
4532
- * @throws {Error} If encoding is invalid
4627
+ * Removes an event listener or any matching listeners if arguments are omitted.
4628
+ * @param {string} [evt] Event name. Removes all listeners if omitted.
4629
+ * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.
4630
+ * @returns {util.EventEmitter} `this`
4533
4631
  */
4534
- base64.decode = function decode(string, buffer, offset) {
4535
- var start = offset;
4536
- var j = 0, // goto index
4537
- t; // temporary
4538
- for (var i = 0; i < string.length;) {
4539
- var c = string.charCodeAt(i++);
4540
- if (c === 61 && j > 1)
4541
- break;
4542
- if ((c = s64[c]) === undefined)
4543
- throw Error(invalidEncoding);
4544
- switch (j) {
4545
- case 0:
4546
- t = c;
4547
- j = 1;
4548
- break;
4549
- case 1:
4550
- buffer[offset++] = t << 2 | (c & 48) >> 4;
4551
- t = c;
4552
- j = 2;
4553
- break;
4554
- case 2:
4555
- buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;
4556
- t = c;
4557
- j = 3;
4558
- break;
4559
- case 3:
4560
- buffer[offset++] = (t & 3) << 6 | c;
4561
- j = 0;
4562
- break;
4632
+ EventEmitter.prototype.off = function off(evt, fn) {
4633
+ if (evt === undefined)
4634
+ this._listeners = {};
4635
+ else {
4636
+ if (fn === undefined)
4637
+ this._listeners[evt] = [];
4638
+ else {
4639
+ var listeners = this._listeners[evt];
4640
+ for (var i = 0; i < listeners.length;)
4641
+ if (listeners[i].fn === fn)
4642
+ listeners.splice(i, 1);
4643
+ else
4644
+ ++i;
4563
4645
  }
4564
4646
  }
4565
- if (j === 1)
4566
- throw Error(invalidEncoding);
4567
- return offset - start;
4647
+ return this;
4568
4648
  };
4569
4649
 
4570
4650
  /**
4571
- * Tests if the specified string appears to be base64 encoded.
4572
- * @param {string} string String to test
4573
- * @returns {boolean} `true` if probably base64 encoded, otherwise false
4651
+ * Emits an event by calling its listeners with the specified arguments.
4652
+ * @param {string} evt Event name
4653
+ * @param {...*} args Arguments
4654
+ * @returns {util.EventEmitter} `this`
4574
4655
  */
4575
- base64.test = function test(string) {
4576
- return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);
4577
- };
4578
- } (base64$1));
4656
+ EventEmitter.prototype.emit = function emit(evt) {
4657
+ var listeners = this._listeners[evt];
4658
+ if (listeners) {
4659
+ var args = [],
4660
+ i = 1;
4661
+ for (; i < arguments.length;)
4662
+ args.push(arguments[i++]);
4663
+ for (i = 0; i < listeners.length;)
4664
+ listeners[i].fn.apply(listeners[i++].ctx, args);
4665
+ }
4666
+ return this;
4667
+ };
4668
+ return eventemitter;
4669
+ }
4579
4670
 
4580
- var eventemitter = EventEmitter;
4581
-
4582
- /**
4583
- * Constructs a new event emitter instance.
4584
- * @classdesc A minimal event emitter.
4585
- * @memberof util
4586
- * @constructor
4587
- */
4588
- function EventEmitter() {
4589
-
4590
- /**
4591
- * Registered listeners.
4592
- * @type {Object.<string,*>}
4593
- * @private
4594
- */
4595
- this._listeners = {};
4596
- }
4597
-
4598
- /**
4599
- * Registers an event listener.
4600
- * @param {string} evt Event name
4601
- * @param {function} fn Listener
4602
- * @param {*} [ctx] Listener context
4603
- * @returns {util.EventEmitter} `this`
4604
- */
4605
- EventEmitter.prototype.on = function on(evt, fn, ctx) {
4606
- (this._listeners[evt] || (this._listeners[evt] = [])).push({
4607
- fn : fn,
4608
- ctx : ctx || this
4609
- });
4610
- return this;
4611
- };
4612
-
4613
- /**
4614
- * Removes an event listener or any matching listeners if arguments are omitted.
4615
- * @param {string} [evt] Event name. Removes all listeners if omitted.
4616
- * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.
4617
- * @returns {util.EventEmitter} `this`
4618
- */
4619
- EventEmitter.prototype.off = function off(evt, fn) {
4620
- if (evt === undefined)
4621
- this._listeners = {};
4622
- else {
4623
- if (fn === undefined)
4624
- this._listeners[evt] = [];
4625
- else {
4626
- var listeners = this._listeners[evt];
4627
- for (var i = 0; i < listeners.length;)
4628
- if (listeners[i].fn === fn)
4629
- listeners.splice(i, 1);
4630
- else
4631
- ++i;
4632
- }
4633
- }
4634
- return this;
4635
- };
4636
-
4637
- /**
4638
- * Emits an event by calling its listeners with the specified arguments.
4639
- * @param {string} evt Event name
4640
- * @param {...*} args Arguments
4641
- * @returns {util.EventEmitter} `this`
4642
- */
4643
- EventEmitter.prototype.emit = function emit(evt) {
4644
- var listeners = this._listeners[evt];
4645
- if (listeners) {
4646
- var args = [],
4647
- i = 1;
4648
- for (; i < arguments.length;)
4649
- args.push(arguments[i++]);
4650
- for (i = 0; i < listeners.length;)
4651
- listeners[i].fn.apply(listeners[i++].ctx, args);
4652
- }
4653
- return this;
4654
- };
4671
+ var float;
4672
+ var hasRequiredFloat;
4655
4673
 
4656
- var float = factory(factory);
4657
-
4658
- /**
4659
- * Reads / writes floats / doubles from / to buffers.
4660
- * @name util.float
4661
- * @namespace
4662
- */
4663
-
4664
- /**
4665
- * Writes a 32 bit float to a buffer using little endian byte order.
4666
- * @name util.float.writeFloatLE
4667
- * @function
4668
- * @param {number} val Value to write
4669
- * @param {Uint8Array} buf Target buffer
4670
- * @param {number} pos Target buffer offset
4671
- * @returns {undefined}
4672
- */
4673
-
4674
- /**
4675
- * Writes a 32 bit float to a buffer using big endian byte order.
4676
- * @name util.float.writeFloatBE
4677
- * @function
4678
- * @param {number} val Value to write
4679
- * @param {Uint8Array} buf Target buffer
4680
- * @param {number} pos Target buffer offset
4681
- * @returns {undefined}
4682
- */
4683
-
4684
- /**
4685
- * Reads a 32 bit float from a buffer using little endian byte order.
4686
- * @name util.float.readFloatLE
4687
- * @function
4688
- * @param {Uint8Array} buf Source buffer
4689
- * @param {number} pos Source buffer offset
4690
- * @returns {number} Value read
4691
- */
4692
-
4693
- /**
4694
- * Reads a 32 bit float from a buffer using big endian byte order.
4695
- * @name util.float.readFloatBE
4696
- * @function
4697
- * @param {Uint8Array} buf Source buffer
4698
- * @param {number} pos Source buffer offset
4699
- * @returns {number} Value read
4700
- */
4701
-
4702
- /**
4703
- * Writes a 64 bit double to a buffer using little endian byte order.
4704
- * @name util.float.writeDoubleLE
4705
- * @function
4706
- * @param {number} val Value to write
4707
- * @param {Uint8Array} buf Target buffer
4708
- * @param {number} pos Target buffer offset
4709
- * @returns {undefined}
4710
- */
4674
+ function requireFloat () {
4675
+ if (hasRequiredFloat) return float;
4676
+ hasRequiredFloat = 1;
4711
4677
 
4712
- /**
4713
- * Writes a 64 bit double to a buffer using big endian byte order.
4714
- * @name util.float.writeDoubleBE
4715
- * @function
4716
- * @param {number} val Value to write
4717
- * @param {Uint8Array} buf Target buffer
4718
- * @param {number} pos Target buffer offset
4719
- * @returns {undefined}
4720
- */
4678
+ float = factory(factory);
4721
4679
 
4722
- /**
4723
- * Reads a 64 bit double from a buffer using little endian byte order.
4724
- * @name util.float.readDoubleLE
4725
- * @function
4726
- * @param {Uint8Array} buf Source buffer
4727
- * @param {number} pos Source buffer offset
4728
- * @returns {number} Value read
4729
- */
4680
+ /**
4681
+ * Reads / writes floats / doubles from / to buffers.
4682
+ * @name util.float
4683
+ * @namespace
4684
+ */
4730
4685
 
4731
- /**
4732
- * Reads a 64 bit double from a buffer using big endian byte order.
4733
- * @name util.float.readDoubleBE
4734
- * @function
4735
- * @param {Uint8Array} buf Source buffer
4736
- * @param {number} pos Source buffer offset
4737
- * @returns {number} Value read
4738
- */
4686
+ /**
4687
+ * Writes a 32 bit float to a buffer using little endian byte order.
4688
+ * @name util.float.writeFloatLE
4689
+ * @function
4690
+ * @param {number} val Value to write
4691
+ * @param {Uint8Array} buf Target buffer
4692
+ * @param {number} pos Target buffer offset
4693
+ * @returns {undefined}
4694
+ */
4739
4695
 
4740
- // Factory function for the purpose of node-based testing in modified global environments
4741
- function factory(exports) {
4696
+ /**
4697
+ * Writes a 32 bit float to a buffer using big endian byte order.
4698
+ * @name util.float.writeFloatBE
4699
+ * @function
4700
+ * @param {number} val Value to write
4701
+ * @param {Uint8Array} buf Target buffer
4702
+ * @param {number} pos Target buffer offset
4703
+ * @returns {undefined}
4704
+ */
4742
4705
 
4743
- // float: typed array
4744
- if (typeof Float32Array !== "undefined") (function() {
4706
+ /**
4707
+ * Reads a 32 bit float from a buffer using little endian byte order.
4708
+ * @name util.float.readFloatLE
4709
+ * @function
4710
+ * @param {Uint8Array} buf Source buffer
4711
+ * @param {number} pos Source buffer offset
4712
+ * @returns {number} Value read
4713
+ */
4745
4714
 
4746
- var f32 = new Float32Array([ -0 ]),
4747
- f8b = new Uint8Array(f32.buffer),
4748
- le = f8b[3] === 128;
4715
+ /**
4716
+ * Reads a 32 bit float from a buffer using big endian byte order.
4717
+ * @name util.float.readFloatBE
4718
+ * @function
4719
+ * @param {Uint8Array} buf Source buffer
4720
+ * @param {number} pos Source buffer offset
4721
+ * @returns {number} Value read
4722
+ */
4749
4723
 
4750
- function writeFloat_f32_cpy(val, buf, pos) {
4751
- f32[0] = val;
4752
- buf[pos ] = f8b[0];
4753
- buf[pos + 1] = f8b[1];
4754
- buf[pos + 2] = f8b[2];
4755
- buf[pos + 3] = f8b[3];
4756
- }
4724
+ /**
4725
+ * Writes a 64 bit double to a buffer using little endian byte order.
4726
+ * @name util.float.writeDoubleLE
4727
+ * @function
4728
+ * @param {number} val Value to write
4729
+ * @param {Uint8Array} buf Target buffer
4730
+ * @param {number} pos Target buffer offset
4731
+ * @returns {undefined}
4732
+ */
4757
4733
 
4758
- function writeFloat_f32_rev(val, buf, pos) {
4759
- f32[0] = val;
4760
- buf[pos ] = f8b[3];
4761
- buf[pos + 1] = f8b[2];
4762
- buf[pos + 2] = f8b[1];
4763
- buf[pos + 3] = f8b[0];
4764
- }
4734
+ /**
4735
+ * Writes a 64 bit double to a buffer using big endian byte order.
4736
+ * @name util.float.writeDoubleBE
4737
+ * @function
4738
+ * @param {number} val Value to write
4739
+ * @param {Uint8Array} buf Target buffer
4740
+ * @param {number} pos Target buffer offset
4741
+ * @returns {undefined}
4742
+ */
4765
4743
 
4766
- /* istanbul ignore next */
4767
- exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;
4768
- /* istanbul ignore next */
4769
- exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;
4770
-
4771
- function readFloat_f32_cpy(buf, pos) {
4772
- f8b[0] = buf[pos ];
4773
- f8b[1] = buf[pos + 1];
4774
- f8b[2] = buf[pos + 2];
4775
- f8b[3] = buf[pos + 3];
4776
- return f32[0];
4777
- }
4744
+ /**
4745
+ * Reads a 64 bit double from a buffer using little endian byte order.
4746
+ * @name util.float.readDoubleLE
4747
+ * @function
4748
+ * @param {Uint8Array} buf Source buffer
4749
+ * @param {number} pos Source buffer offset
4750
+ * @returns {number} Value read
4751
+ */
4778
4752
 
4779
- function readFloat_f32_rev(buf, pos) {
4780
- f8b[3] = buf[pos ];
4781
- f8b[2] = buf[pos + 1];
4782
- f8b[1] = buf[pos + 2];
4783
- f8b[0] = buf[pos + 3];
4784
- return f32[0];
4785
- }
4753
+ /**
4754
+ * Reads a 64 bit double from a buffer using big endian byte order.
4755
+ * @name util.float.readDoubleBE
4756
+ * @function
4757
+ * @param {Uint8Array} buf Source buffer
4758
+ * @param {number} pos Source buffer offset
4759
+ * @returns {number} Value read
4760
+ */
4786
4761
 
4787
- /* istanbul ignore next */
4788
- exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;
4789
- /* istanbul ignore next */
4790
- exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;
4791
-
4792
- // float: ieee754
4793
- })(); else (function() {
4794
-
4795
- function writeFloat_ieee754(writeUint, val, buf, pos) {
4796
- var sign = val < 0 ? 1 : 0;
4797
- if (sign)
4798
- val = -val;
4799
- if (val === 0)
4800
- writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);
4801
- else if (isNaN(val))
4802
- writeUint(2143289344, buf, pos);
4803
- else if (val > 3.4028234663852886e+38) // +-Infinity
4804
- writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);
4805
- else if (val < 1.1754943508222875e-38) // denormal
4806
- writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);
4807
- else {
4808
- var exponent = Math.floor(Math.log(val) / Math.LN2),
4809
- mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;
4810
- writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);
4811
- }
4812
- }
4762
+ // Factory function for the purpose of node-based testing in modified global environments
4763
+ function factory(exports) {
4813
4764
 
4814
- exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);
4815
- exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);
4816
-
4817
- function readFloat_ieee754(readUint, buf, pos) {
4818
- var uint = readUint(buf, pos),
4819
- sign = (uint >> 31) * 2 + 1,
4820
- exponent = uint >>> 23 & 255,
4821
- mantissa = uint & 8388607;
4822
- return exponent === 255
4823
- ? mantissa
4824
- ? NaN
4825
- : sign * Infinity
4826
- : exponent === 0 // denormal
4827
- ? sign * 1.401298464324817e-45 * mantissa
4828
- : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);
4829
- }
4765
+ // float: typed array
4766
+ if (typeof Float32Array !== "undefined") (function() {
4830
4767
 
4831
- exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);
4832
- exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);
4768
+ var f32 = new Float32Array([ -0 ]),
4769
+ f8b = new Uint8Array(f32.buffer),
4770
+ le = f8b[3] === 128;
4833
4771
 
4834
- })();
4772
+ function writeFloat_f32_cpy(val, buf, pos) {
4773
+ f32[0] = val;
4774
+ buf[pos ] = f8b[0];
4775
+ buf[pos + 1] = f8b[1];
4776
+ buf[pos + 2] = f8b[2];
4777
+ buf[pos + 3] = f8b[3];
4778
+ }
4835
4779
 
4836
- // double: typed array
4837
- if (typeof Float64Array !== "undefined") (function() {
4780
+ function writeFloat_f32_rev(val, buf, pos) {
4781
+ f32[0] = val;
4782
+ buf[pos ] = f8b[3];
4783
+ buf[pos + 1] = f8b[2];
4784
+ buf[pos + 2] = f8b[1];
4785
+ buf[pos + 3] = f8b[0];
4786
+ }
4838
4787
 
4839
- var f64 = new Float64Array([-0]),
4840
- f8b = new Uint8Array(f64.buffer),
4841
- le = f8b[7] === 128;
4788
+ /* istanbul ignore next */
4789
+ exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;
4790
+ /* istanbul ignore next */
4791
+ exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;
4792
+
4793
+ function readFloat_f32_cpy(buf, pos) {
4794
+ f8b[0] = buf[pos ];
4795
+ f8b[1] = buf[pos + 1];
4796
+ f8b[2] = buf[pos + 2];
4797
+ f8b[3] = buf[pos + 3];
4798
+ return f32[0];
4799
+ }
4842
4800
 
4843
- function writeDouble_f64_cpy(val, buf, pos) {
4844
- f64[0] = val;
4845
- buf[pos ] = f8b[0];
4846
- buf[pos + 1] = f8b[1];
4847
- buf[pos + 2] = f8b[2];
4848
- buf[pos + 3] = f8b[3];
4849
- buf[pos + 4] = f8b[4];
4850
- buf[pos + 5] = f8b[5];
4851
- buf[pos + 6] = f8b[6];
4852
- buf[pos + 7] = f8b[7];
4853
- }
4801
+ function readFloat_f32_rev(buf, pos) {
4802
+ f8b[3] = buf[pos ];
4803
+ f8b[2] = buf[pos + 1];
4804
+ f8b[1] = buf[pos + 2];
4805
+ f8b[0] = buf[pos + 3];
4806
+ return f32[0];
4807
+ }
4854
4808
 
4855
- function writeDouble_f64_rev(val, buf, pos) {
4856
- f64[0] = val;
4857
- buf[pos ] = f8b[7];
4858
- buf[pos + 1] = f8b[6];
4859
- buf[pos + 2] = f8b[5];
4860
- buf[pos + 3] = f8b[4];
4861
- buf[pos + 4] = f8b[3];
4862
- buf[pos + 5] = f8b[2];
4863
- buf[pos + 6] = f8b[1];
4864
- buf[pos + 7] = f8b[0];
4865
- }
4809
+ /* istanbul ignore next */
4810
+ exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;
4811
+ /* istanbul ignore next */
4812
+ exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;
4813
+
4814
+ // float: ieee754
4815
+ })(); else (function() {
4816
+
4817
+ function writeFloat_ieee754(writeUint, val, buf, pos) {
4818
+ var sign = val < 0 ? 1 : 0;
4819
+ if (sign)
4820
+ val = -val;
4821
+ if (val === 0)
4822
+ writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);
4823
+ else if (isNaN(val))
4824
+ writeUint(2143289344, buf, pos);
4825
+ else if (val > 3.4028234663852886e+38) // +-Infinity
4826
+ writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);
4827
+ else if (val < 1.1754943508222875e-38) // denormal
4828
+ writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);
4829
+ else {
4830
+ var exponent = Math.floor(Math.log(val) / Math.LN2),
4831
+ mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;
4832
+ writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);
4833
+ }
4834
+ }
4866
4835
 
4867
- /* istanbul ignore next */
4868
- exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;
4869
- /* istanbul ignore next */
4870
- exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;
4871
-
4872
- function readDouble_f64_cpy(buf, pos) {
4873
- f8b[0] = buf[pos ];
4874
- f8b[1] = buf[pos + 1];
4875
- f8b[2] = buf[pos + 2];
4876
- f8b[3] = buf[pos + 3];
4877
- f8b[4] = buf[pos + 4];
4878
- f8b[5] = buf[pos + 5];
4879
- f8b[6] = buf[pos + 6];
4880
- f8b[7] = buf[pos + 7];
4881
- return f64[0];
4882
- }
4836
+ exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);
4837
+ exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);
4838
+
4839
+ function readFloat_ieee754(readUint, buf, pos) {
4840
+ var uint = readUint(buf, pos),
4841
+ sign = (uint >> 31) * 2 + 1,
4842
+ exponent = uint >>> 23 & 255,
4843
+ mantissa = uint & 8388607;
4844
+ return exponent === 255
4845
+ ? mantissa
4846
+ ? NaN
4847
+ : sign * Infinity
4848
+ : exponent === 0 // denormal
4849
+ ? sign * 1.401298464324817e-45 * mantissa
4850
+ : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);
4851
+ }
4883
4852
 
4884
- function readDouble_f64_rev(buf, pos) {
4885
- f8b[7] = buf[pos ];
4886
- f8b[6] = buf[pos + 1];
4887
- f8b[5] = buf[pos + 2];
4888
- f8b[4] = buf[pos + 3];
4889
- f8b[3] = buf[pos + 4];
4890
- f8b[2] = buf[pos + 5];
4891
- f8b[1] = buf[pos + 6];
4892
- f8b[0] = buf[pos + 7];
4893
- return f64[0];
4894
- }
4853
+ exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);
4854
+ exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);
4895
4855
 
4896
- /* istanbul ignore next */
4897
- exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;
4898
- /* istanbul ignore next */
4899
- exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;
4900
-
4901
- // double: ieee754
4902
- })(); else (function() {
4903
-
4904
- function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {
4905
- var sign = val < 0 ? 1 : 0;
4906
- if (sign)
4907
- val = -val;
4908
- if (val === 0) {
4909
- writeUint(0, buf, pos + off0);
4910
- writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);
4911
- } else if (isNaN(val)) {
4912
- writeUint(0, buf, pos + off0);
4913
- writeUint(2146959360, buf, pos + off1);
4914
- } else if (val > 1.7976931348623157e+308) { // +-Infinity
4915
- writeUint(0, buf, pos + off0);
4916
- writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);
4917
- } else {
4918
- var mantissa;
4919
- if (val < 2.2250738585072014e-308) { // denormal
4920
- mantissa = val / 5e-324;
4921
- writeUint(mantissa >>> 0, buf, pos + off0);
4922
- writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);
4923
- } else {
4924
- var exponent = Math.floor(Math.log(val) / Math.LN2);
4925
- if (exponent === 1024)
4926
- exponent = 1023;
4927
- mantissa = val * Math.pow(2, -exponent);
4928
- writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);
4929
- writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);
4930
- }
4931
- }
4932
- }
4856
+ })();
4933
4857
 
4934
- exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);
4935
- exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);
4936
-
4937
- function readDouble_ieee754(readUint, off0, off1, buf, pos) {
4938
- var lo = readUint(buf, pos + off0),
4939
- hi = readUint(buf, pos + off1);
4940
- var sign = (hi >> 31) * 2 + 1,
4941
- exponent = hi >>> 20 & 2047,
4942
- mantissa = 4294967296 * (hi & 1048575) + lo;
4943
- return exponent === 2047
4944
- ? mantissa
4945
- ? NaN
4946
- : sign * Infinity
4947
- : exponent === 0 // denormal
4948
- ? sign * 5e-324 * mantissa
4949
- : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);
4950
- }
4858
+ // double: typed array
4859
+ if (typeof Float64Array !== "undefined") (function() {
4951
4860
 
4952
- exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);
4953
- exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);
4861
+ var f64 = new Float64Array([-0]),
4862
+ f8b = new Uint8Array(f64.buffer),
4863
+ le = f8b[7] === 128;
4954
4864
 
4955
- })();
4865
+ function writeDouble_f64_cpy(val, buf, pos) {
4866
+ f64[0] = val;
4867
+ buf[pos ] = f8b[0];
4868
+ buf[pos + 1] = f8b[1];
4869
+ buf[pos + 2] = f8b[2];
4870
+ buf[pos + 3] = f8b[3];
4871
+ buf[pos + 4] = f8b[4];
4872
+ buf[pos + 5] = f8b[5];
4873
+ buf[pos + 6] = f8b[6];
4874
+ buf[pos + 7] = f8b[7];
4875
+ }
4956
4876
 
4957
- return exports;
4958
- }
4877
+ function writeDouble_f64_rev(val, buf, pos) {
4878
+ f64[0] = val;
4879
+ buf[pos ] = f8b[7];
4880
+ buf[pos + 1] = f8b[6];
4881
+ buf[pos + 2] = f8b[5];
4882
+ buf[pos + 3] = f8b[4];
4883
+ buf[pos + 4] = f8b[3];
4884
+ buf[pos + 5] = f8b[2];
4885
+ buf[pos + 6] = f8b[1];
4886
+ buf[pos + 7] = f8b[0];
4887
+ }
4959
4888
 
4960
- // uint helpers
4889
+ /* istanbul ignore next */
4890
+ exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;
4891
+ /* istanbul ignore next */
4892
+ exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;
4893
+
4894
+ function readDouble_f64_cpy(buf, pos) {
4895
+ f8b[0] = buf[pos ];
4896
+ f8b[1] = buf[pos + 1];
4897
+ f8b[2] = buf[pos + 2];
4898
+ f8b[3] = buf[pos + 3];
4899
+ f8b[4] = buf[pos + 4];
4900
+ f8b[5] = buf[pos + 5];
4901
+ f8b[6] = buf[pos + 6];
4902
+ f8b[7] = buf[pos + 7];
4903
+ return f64[0];
4904
+ }
4961
4905
 
4962
- function writeUintLE(val, buf, pos) {
4963
- buf[pos ] = val & 255;
4964
- buf[pos + 1] = val >>> 8 & 255;
4965
- buf[pos + 2] = val >>> 16 & 255;
4966
- buf[pos + 3] = val >>> 24;
4967
- }
4906
+ function readDouble_f64_rev(buf, pos) {
4907
+ f8b[7] = buf[pos ];
4908
+ f8b[6] = buf[pos + 1];
4909
+ f8b[5] = buf[pos + 2];
4910
+ f8b[4] = buf[pos + 3];
4911
+ f8b[3] = buf[pos + 4];
4912
+ f8b[2] = buf[pos + 5];
4913
+ f8b[1] = buf[pos + 6];
4914
+ f8b[0] = buf[pos + 7];
4915
+ return f64[0];
4916
+ }
4968
4917
 
4969
- function writeUintBE(val, buf, pos) {
4970
- buf[pos ] = val >>> 24;
4971
- buf[pos + 1] = val >>> 16 & 255;
4972
- buf[pos + 2] = val >>> 8 & 255;
4973
- buf[pos + 3] = val & 255;
4974
- }
4918
+ /* istanbul ignore next */
4919
+ exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;
4920
+ /* istanbul ignore next */
4921
+ exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;
4922
+
4923
+ // double: ieee754
4924
+ })(); else (function() {
4925
+
4926
+ function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {
4927
+ var sign = val < 0 ? 1 : 0;
4928
+ if (sign)
4929
+ val = -val;
4930
+ if (val === 0) {
4931
+ writeUint(0, buf, pos + off0);
4932
+ writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);
4933
+ } else if (isNaN(val)) {
4934
+ writeUint(0, buf, pos + off0);
4935
+ writeUint(2146959360, buf, pos + off1);
4936
+ } else if (val > 1.7976931348623157e+308) { // +-Infinity
4937
+ writeUint(0, buf, pos + off0);
4938
+ writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);
4939
+ } else {
4940
+ var mantissa;
4941
+ if (val < 2.2250738585072014e-308) { // denormal
4942
+ mantissa = val / 5e-324;
4943
+ writeUint(mantissa >>> 0, buf, pos + off0);
4944
+ writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);
4945
+ } else {
4946
+ var exponent = Math.floor(Math.log(val) / Math.LN2);
4947
+ if (exponent === 1024)
4948
+ exponent = 1023;
4949
+ mantissa = val * Math.pow(2, -exponent);
4950
+ writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);
4951
+ writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);
4952
+ }
4953
+ }
4954
+ }
4975
4955
 
4976
- function readUintLE(buf, pos) {
4977
- return (buf[pos ]
4978
- | buf[pos + 1] << 8
4979
- | buf[pos + 2] << 16
4980
- | buf[pos + 3] << 24) >>> 0;
4981
- }
4956
+ exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);
4957
+ exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);
4958
+
4959
+ function readDouble_ieee754(readUint, off0, off1, buf, pos) {
4960
+ var lo = readUint(buf, pos + off0),
4961
+ hi = readUint(buf, pos + off1);
4962
+ var sign = (hi >> 31) * 2 + 1,
4963
+ exponent = hi >>> 20 & 2047,
4964
+ mantissa = 4294967296 * (hi & 1048575) + lo;
4965
+ return exponent === 2047
4966
+ ? mantissa
4967
+ ? NaN
4968
+ : sign * Infinity
4969
+ : exponent === 0 // denormal
4970
+ ? sign * 5e-324 * mantissa
4971
+ : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);
4972
+ }
4982
4973
 
4983
- function readUintBE(buf, pos) {
4984
- return (buf[pos ] << 24
4985
- | buf[pos + 1] << 16
4986
- | buf[pos + 2] << 8
4987
- | buf[pos + 3]) >>> 0;
4974
+ exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);
4975
+ exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);
4976
+
4977
+ })();
4978
+
4979
+ return exports;
4980
+ }
4981
+
4982
+ // uint helpers
4983
+
4984
+ function writeUintLE(val, buf, pos) {
4985
+ buf[pos ] = val & 255;
4986
+ buf[pos + 1] = val >>> 8 & 255;
4987
+ buf[pos + 2] = val >>> 16 & 255;
4988
+ buf[pos + 3] = val >>> 24;
4989
+ }
4990
+
4991
+ function writeUintBE(val, buf, pos) {
4992
+ buf[pos ] = val >>> 24;
4993
+ buf[pos + 1] = val >>> 16 & 255;
4994
+ buf[pos + 2] = val >>> 8 & 255;
4995
+ buf[pos + 3] = val & 255;
4996
+ }
4997
+
4998
+ function readUintLE(buf, pos) {
4999
+ return (buf[pos ]
5000
+ | buf[pos + 1] << 8
5001
+ | buf[pos + 2] << 16
5002
+ | buf[pos + 3] << 24) >>> 0;
5003
+ }
5004
+
5005
+ function readUintBE(buf, pos) {
5006
+ return (buf[pos ] << 24
5007
+ | buf[pos + 1] << 16
5008
+ | buf[pos + 2] << 8
5009
+ | buf[pos + 3]) >>> 0;
5010
+ }
5011
+ return float;
4988
5012
  }
4989
5013
 
4990
- var inquire_1;
4991
- var hasRequiredInquire;
4992
-
4993
- function requireInquire () {
4994
- if (hasRequiredInquire) return inquire_1;
4995
- hasRequiredInquire = 1;
4996
- inquire_1 = inquire;
5014
+ var inquire_1 = inquire;
4997
5015
 
4998
- /**
4999
- * Requires a module only if available.
5000
- * @memberof util
5001
- * @param {string} moduleName Module to require
5002
- * @returns {?Object} Required module if available and not empty, otherwise `null`
5003
- */
5004
- function inquire(moduleName) {
5005
- try {
5006
- var mod = eval("quire".replace(/^/,"re"))(moduleName); // eslint-disable-line no-eval
5007
- if (mod && (mod.length || Object.keys(mod).length))
5008
- return mod;
5009
- } catch (e) {} // eslint-disable-line no-empty
5010
- return null;
5011
- }
5012
- return inquire_1;
5016
+ /**
5017
+ * Requires a module only if available.
5018
+ * @memberof util
5019
+ * @param {string} moduleName Module to require
5020
+ * @returns {?Object} Required module if available and not empty, otherwise `null`
5021
+ */
5022
+ function inquire(moduleName) {
5023
+ try {
5024
+ var mod = eval("quire".replace(/^/,"re"))(moduleName); // eslint-disable-line no-eval
5025
+ if (mod && (mod.length || Object.keys(mod).length))
5026
+ return mod;
5027
+ } catch (e) {} // eslint-disable-line no-empty
5028
+ return null;
5013
5029
  }
5014
5030
 
5015
5031
  var utf8$2 = {};
@@ -5404,16 +5420,16 @@ function requireMinimal () {
5404
5420
  util.asPromise = aspromise;
5405
5421
 
5406
5422
  // converts to / from base64 encoded strings
5407
- util.base64 = base64$1;
5423
+ util.base64 = requireBase64();
5408
5424
 
5409
5425
  // base class of rpc.Service
5410
- util.EventEmitter = eventemitter;
5426
+ util.EventEmitter = requireEventemitter();
5411
5427
 
5412
5428
  // float handling accross browsers
5413
- util.float = float;
5429
+ util.float = requireFloat();
5414
5430
 
5415
5431
  // requires modules optionally and hides the call from bundlers
5416
- util.inquire = requireInquire();
5432
+ util.inquire = inquire_1;
5417
5433
 
5418
5434
  // converts to / from utf8 encoded strings
5419
5435
  util.utf8 = requireUtf8();
@@ -10701,7 +10717,8 @@ class Client extends xchainClient.BaseXChainClient {
10701
10717
  transfer({ walletIndex = 0, asset = AssetRuneNative, amount, recipient, memo, gasLimit = new BigNumber(DEFAULT_GAS_LIMIT_VALUE), sequence, }) {
10702
10718
  var _a, _b, _c, _d;
10703
10719
  return __awaiter(this, void 0, void 0, function* () {
10704
- const balances = yield this.getBalance(this.getAddress(walletIndex));
10720
+ const sender = this.getAddress(walletIndex);
10721
+ const balances = yield this.getBalance(sender);
10705
10722
  const runeBalance = (_b = (_a = balances.filter(({ asset }) => isAssetRuneNative(asset))[0]) === null || _a === void 0 ? void 0 : _a.amount) !== null && _b !== void 0 ? _b : xchainUtil.baseAmount(0, RUNE_DECIMAL);
10706
10723
  const assetBalance = (_d = (_c = balances.filter(({ asset: assetInList }) => xchainUtil.assetToString(assetInList) === xchainUtil.assetToString(asset))[0]) === null || _c === void 0 ? void 0 : _c.amount) !== null && _d !== void 0 ? _d : xchainUtil.baseAmount(0, RUNE_DECIMAL);
10707
10724
  const fee = (yield this.getFees()).average;
@@ -10717,35 +10734,29 @@ class Client extends xchainClient.BaseXChainClient {
10717
10734
  throw new Error('insufficient funds');
10718
10735
  }
10719
10736
  }
10720
- const privKey = this.getPrivateKey(walletIndex);
10721
- const from = this.getAddress(walletIndex);
10722
- const signerPubkey = privKey.pubKey();
10723
- const accAddress = cosmosclient__default["default"].AccAddress.fromString(from);
10724
- const denom = getDenom(asset);
10725
- const txBody = yield buildTransferTx({
10726
- fromAddress: from,
10727
- toAddress: recipient,
10728
- memo: memo,
10729
- assetAmount: amount,
10730
- assetDenom: denom,
10731
- chainId: this.getChainId(),
10732
- nodeUrl: this.getClientUrl().node,
10737
+ const unsignedTxData = yield this.prepareTx({
10738
+ sender,
10739
+ asset,
10740
+ amount,
10741
+ recipient,
10742
+ memo,
10743
+ gasLimit,
10744
+ sequence,
10733
10745
  });
10734
- const account = yield this.getCosmosClient().getAccount(accAddress);
10735
- const { account_number: accountNumber } = account;
10746
+ const decodedTx = cosmosclient__default["default"].proto.cosmos.tx.v1beta1.TxRaw.decode(Buffer.from(unsignedTxData.rawUnsignedTx, 'base64'));
10747
+ const privKey = this.getCosmosClient().getPrivKeyFromMnemonic(this.phrase, this.getFullDerivationPath(walletIndex));
10748
+ const authInfo = cosmosclient__default["default"].proto.cosmos.tx.v1beta1.AuthInfo.decode(decodedTx.auth_info_bytes);
10749
+ if (!authInfo.signer_infos[0].public_key) {
10750
+ authInfo.signer_infos[0].public_key = cosmosclient__default["default"].codec.instanceToProtoAny(privKey.pubKey());
10751
+ }
10752
+ const txBuilder = new cosmosclient__default["default"].TxBuilder(this.getCosmosClient().sdk, cosmosclient__default["default"].proto.cosmos.tx.v1beta1.TxBody.decode(decodedTx.body_bytes), authInfo);
10753
+ const { account_number: accountNumber } = yield this.getCosmosClient().getAccount(cosmosclient__default["default"].AccAddress.fromString(sender));
10736
10754
  if (!accountNumber)
10737
- throw Error(`Deposit failed - could not get account number ${accountNumber}`);
10738
- const txBuilder = buildUnsignedTx({
10739
- cosmosSdk: this.getCosmosClient().sdk,
10740
- txBody: txBody,
10741
- gasLimit: Long$1.fromString(gasLimit.toString()),
10742
- signerPubkey: cosmosclient__default["default"].codec.instanceToProtoAny(signerPubkey),
10743
- sequence: sequence ? Long$1.fromNumber(sequence) : account.sequence || Long$1.ZERO,
10744
- });
10745
- const txHash = yield this.cosmosClient.signAndBroadcast(txBuilder, privKey, accountNumber);
10746
- if (!txHash)
10747
- throw Error(`Invalid transaction hash: ${txHash}`);
10748
- return txHash;
10755
+ throw Error(`Transfer failed - missing account number`);
10756
+ const signDocBytes = txBuilder.signDocBytes(accountNumber);
10757
+ txBuilder.addSignature(privKey.sign(signDocBytes));
10758
+ const signedTx = txBuilder.txBytes();
10759
+ return this.broadcastTx(signedTx);
10749
10760
  });
10750
10761
  }
10751
10762
  broadcastTx(txHex) {
@@ -10756,6 +10767,7 @@ class Client extends xchainClient.BaseXChainClient {
10756
10767
  /**
10757
10768
  * Transfer without broadcast balances with MsgSend
10758
10769
  *
10770
+ * @deprecated use instead prepareTx
10759
10771
  * @param {TxOfflineParams} params The transfer offline options.
10760
10772
  * @returns {string} The signed transaction bytes.
10761
10773
  */
@@ -10815,6 +10827,40 @@ class Client extends xchainClient.BaseXChainClient {
10815
10827
  }
10816
10828
  });
10817
10829
  }
10830
+ /**
10831
+ * Prepare transfer.
10832
+ *
10833
+ * @param {TxParams&Address&BigNumber} params The transfer options.
10834
+ * @returns {PreparedTx} The raw unsigned transaction.
10835
+ */
10836
+ prepareTx({ sender, recipient, amount, memo, asset = AssetRuneNative, gasLimit = new BigNumber(DEFAULT_GAS_LIMIT_VALUE), sequence, }) {
10837
+ return __awaiter(this, void 0, void 0, function* () {
10838
+ if (!this.validateAddress(sender))
10839
+ throw Error('Invalid sender address');
10840
+ if (!this.validateAddress(recipient))
10841
+ throw Error('Invalid recipient address');
10842
+ const denom = getDenom(asset);
10843
+ const txBody = yield buildTransferTx({
10844
+ fromAddress: sender,
10845
+ toAddress: recipient,
10846
+ memo,
10847
+ assetAmount: amount,
10848
+ assetDenom: denom,
10849
+ chainId: this.getChainId(),
10850
+ nodeUrl: this.getClientUrl().node,
10851
+ });
10852
+ const account = yield this.getCosmosClient().getAccount(cosmosclient__default["default"].AccAddress.fromString(sender));
10853
+ const { pub_key: pubkey } = account;
10854
+ const txBuilder = buildUnsignedTx({
10855
+ cosmosSdk: this.getCosmosClient().sdk,
10856
+ txBody,
10857
+ gasLimit: Long$1.fromString(gasLimit.toString()),
10858
+ signerPubkey: pubkey,
10859
+ sequence: sequence ? Long$1.fromNumber(sequence) : account.sequence || Long$1.ZERO,
10860
+ });
10861
+ return { rawUnsignedTx: txBuilder.txBytes() };
10862
+ });
10863
+ }
10818
10864
  }
10819
10865
 
10820
10866
  class MsgNativeTx {