@swapkit/core 1.0.0-rc.24 → 1.0.0-rc.27
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/dist/index.cjs +2 -2
- package/dist/index.es.js +162 -172
- package/package.json +14 -14
- package/src/client/index.ts +22 -30
- package/dist/index-9e36735e.cjs +0 -1
- package/dist/index-cf1865cd.js +0 -649
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"author": "swapkit-oss-team",
|
|
3
3
|
"dependencies": {
|
|
4
|
-
"@swapkit/types": "1.0.0-rc.
|
|
5
|
-
"@swapkit/helpers": "1.0.0-rc.
|
|
4
|
+
"@swapkit/types": "1.0.0-rc.8",
|
|
5
|
+
"@swapkit/helpers": "1.0.0-rc.21"
|
|
6
6
|
},
|
|
7
7
|
"description": "SwapKit Lib core",
|
|
8
8
|
"devDependencies": {
|
|
@@ -12,19 +12,19 @@
|
|
|
12
12
|
"vite-plugin-top-level-await": "1.3.1",
|
|
13
13
|
"vite-plugin-wasm": "3.2.2",
|
|
14
14
|
"vitest": "0.34.4",
|
|
15
|
-
"@internal/config": "0.0.0-
|
|
16
|
-
"@swapkit/api": "1.0.0-rc.
|
|
17
|
-
"@swapkit/tokens": "1.0.0-rc.
|
|
18
|
-
"@swapkit/toolbox-cosmos": "1.0.0-rc.
|
|
19
|
-
"@swapkit/toolbox-evm": "1.0.0-rc.
|
|
20
|
-
"@swapkit/toolbox-utxo": "1.0.0-rc.
|
|
15
|
+
"@internal/config": "0.0.0-rc.1",
|
|
16
|
+
"@swapkit/api": "1.0.0-rc.8",
|
|
17
|
+
"@swapkit/tokens": "1.0.0-rc.8",
|
|
18
|
+
"@swapkit/toolbox-cosmos": "1.0.0-rc.23",
|
|
19
|
+
"@swapkit/toolbox-evm": "1.0.0-rc.23",
|
|
20
|
+
"@swapkit/toolbox-utxo": "1.0.0-rc.22"
|
|
21
21
|
},
|
|
22
22
|
"peerDependencies": {
|
|
23
|
-
"@swapkit/api": "1.0.0-rc.
|
|
24
|
-
"@swapkit/tokens": "1.0.0-rc.
|
|
25
|
-
"@swapkit/toolbox-cosmos": "1.0.0-rc.
|
|
26
|
-
"@swapkit/toolbox-evm": "1.0.0-rc.
|
|
27
|
-
"@swapkit/toolbox-utxo": "1.0.0-rc.
|
|
23
|
+
"@swapkit/api": "1.0.0-rc.8",
|
|
24
|
+
"@swapkit/tokens": "1.0.0-rc.8",
|
|
25
|
+
"@swapkit/toolbox-cosmos": "1.0.0-rc.23",
|
|
26
|
+
"@swapkit/toolbox-evm": "1.0.0-rc.23",
|
|
27
|
+
"@swapkit/toolbox-utxo": "1.0.0-rc.22"
|
|
28
28
|
},
|
|
29
29
|
"eslintConfig": {
|
|
30
30
|
"extends": "../../../internal/eslint-config"
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"repository": "https://github.com/thorswap/SwapKit.git",
|
|
53
53
|
"type": "module",
|
|
54
54
|
"types": "./dist/index.d.ts",
|
|
55
|
-
"version": "1.0.0-rc.
|
|
55
|
+
"version": "1.0.0-rc.27",
|
|
56
56
|
"scripts": {
|
|
57
57
|
"build": "NODE_OPTIONS=--max_old_space_size=16384 vite build",
|
|
58
58
|
"clean": "rm -rf dist vite.config.ts.* .turbo node_modules",
|
package/src/client/index.ts
CHANGED
|
@@ -94,7 +94,6 @@ export class SwapKitCore<T = ''> {
|
|
|
94
94
|
const transaction = streamSwap ? route?.streamingSwap?.transaction : route?.transaction;
|
|
95
95
|
if (!transaction) throw new SwapKitError('core_swap_route_transaction_not_found');
|
|
96
96
|
|
|
97
|
-
const { isHexString, parseUnits } = await import('ethers');
|
|
98
97
|
const { data, from, to, value } = route.transaction;
|
|
99
98
|
|
|
100
99
|
const params = {
|
|
@@ -102,11 +101,7 @@ export class SwapKitCore<T = ''> {
|
|
|
102
101
|
from,
|
|
103
102
|
to: to.toLowerCase(),
|
|
104
103
|
chainId: BigInt(ChainToChainId[evmChain]),
|
|
105
|
-
value: value
|
|
106
|
-
? new SwapKitNumber({
|
|
107
|
-
value: !isHexString(value) ? parseUnits(value, 'wei').toString(16) : value,
|
|
108
|
-
}).getBaseValue('bigint')
|
|
109
|
-
: 0n,
|
|
104
|
+
value: value ? BigInt(value) : 0n,
|
|
110
105
|
};
|
|
111
106
|
|
|
112
107
|
return walletMethods.sendTransaction(params, feeOptionKey) as Promise<string>;
|
|
@@ -258,10 +253,9 @@ export class SwapKitCore<T = ''> {
|
|
|
258
253
|
funcParams: [
|
|
259
254
|
recipient,
|
|
260
255
|
getChecksumAddressFromAsset({ chain, symbol, ticker }, chain),
|
|
261
|
-
|
|
262
|
-
assetValue.getBaseValue('bigint').toString(),
|
|
256
|
+
assetValue.getBaseValue('string'),
|
|
263
257
|
params.memo,
|
|
264
|
-
rest.expiration,
|
|
258
|
+
rest.expiration || parseInt(`${(new Date().getTime() + 15 * 60 * 1000) / 1000}`),
|
|
265
259
|
],
|
|
266
260
|
txOverrides: {
|
|
267
261
|
from: params.from,
|
|
@@ -417,25 +411,19 @@ export class SwapKitCore<T = ''> {
|
|
|
417
411
|
? undefined
|
|
418
412
|
: assetValue;
|
|
419
413
|
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
targetAssetString: targetAsset?.toString(),
|
|
431
|
-
singleSide: false,
|
|
432
|
-
}),
|
|
414
|
+
const value = getMinAmountByChain(from === 'asset' ? assetValue.chain : Chain.THORChain);
|
|
415
|
+
const memoString =
|
|
416
|
+
memo ||
|
|
417
|
+
getMemoFor(MemoType.WITHDRAW, {
|
|
418
|
+
symbol: assetValue.symbol,
|
|
419
|
+
chain: assetValue.chain,
|
|
420
|
+
ticker: assetValue.ticker,
|
|
421
|
+
basisPoints: Math.max(10000, Math.round(percent * 100)),
|
|
422
|
+
targetAssetString: targetAsset?.toString(),
|
|
423
|
+
singleSide: false,
|
|
433
424
|
});
|
|
434
425
|
|
|
435
|
-
|
|
436
|
-
} catch (error) {
|
|
437
|
-
throw new SwapKitError('core_transaction_withdraw_error', error);
|
|
438
|
-
}
|
|
426
|
+
return this.#depositToPool({ assetValue: value, memo: memoString });
|
|
439
427
|
};
|
|
440
428
|
|
|
441
429
|
savings = async ({
|
|
@@ -455,10 +443,13 @@ export class SwapKitCore<T = ''> {
|
|
|
455
443
|
symbol: assetValue.symbol,
|
|
456
444
|
chain: assetValue.chain,
|
|
457
445
|
singleSide: true,
|
|
458
|
-
basisPoints: percent ? Math.
|
|
446
|
+
basisPoints: percent ? Math.min(10000, Math.round(percent * 100)) : undefined,
|
|
459
447
|
});
|
|
460
448
|
|
|
461
|
-
|
|
449
|
+
const value =
|
|
450
|
+
memoType === MemoType.DEPOSIT ? assetValue : getMinAmountByChain(assetValue.chain);
|
|
451
|
+
|
|
452
|
+
return this.#depositToPool({ memo: memoString, assetValue: value });
|
|
462
453
|
};
|
|
463
454
|
|
|
464
455
|
loan = ({
|
|
@@ -627,7 +618,7 @@ export class SwapKitCore<T = ''> {
|
|
|
627
618
|
};
|
|
628
619
|
|
|
629
620
|
#approve = async <T = string>({
|
|
630
|
-
assetValue
|
|
621
|
+
assetValue,
|
|
631
622
|
type = 'checkOnly',
|
|
632
623
|
contractAddress,
|
|
633
624
|
}: {
|
|
@@ -635,6 +626,7 @@ export class SwapKitCore<T = ''> {
|
|
|
635
626
|
type?: 'checkOnly' | 'approve';
|
|
636
627
|
contractAddress?: string;
|
|
637
628
|
}) => {
|
|
629
|
+
const { address, chain, isGasAsset, isSynthetic } = assetValue;
|
|
638
630
|
const isEVMChain = [Chain.Ethereum, Chain.Avalanche, Chain.BinanceSmartChain].includes(chain);
|
|
639
631
|
const isNativeEVM = isEVMChain && isGasAsset;
|
|
640
632
|
|
|
@@ -653,7 +645,7 @@ export class SwapKitCore<T = ''> {
|
|
|
653
645
|
contractAddress || ((await this.#getInboundDataByChain(chain)).router as string);
|
|
654
646
|
|
|
655
647
|
return walletAction({
|
|
656
|
-
amount: getBaseValue('bigint'),
|
|
648
|
+
amount: assetValue.getBaseValue('bigint'),
|
|
657
649
|
assetAddress: address,
|
|
658
650
|
from,
|
|
659
651
|
spenderAddress,
|
package/dist/index-9e36735e.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var nt=Object.defineProperty;var st=(e,t,r)=>t in e?nt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var j=(e,t,r)=>(st(e,typeof t!="symbol"?t+"":t,r),r),D=(e,t,r)=>{if(!t.has(e))throw TypeError("Cannot "+r)};var s=(e,t,r)=>(D(e,t,"read from private field"),r?r.call(e):t.get(e)),b=(e,t,r)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,r)},M=(e,t,r,i)=>(D(e,t,"write to private field"),i?i.call(e,r):t.set(e,r),r);var u=(e,t,r)=>(D(e,t,"access private method"),r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Q="6.7.1";function ot(e,t,r){const i=t.split("|").map(o=>o.trim());for(let o=0;o<i.length;o++)switch(t){case"any":return;case"bigint":case"boolean":case"number":case"string":if(typeof e===t)return}const n=new Error(`invalid value for type ${t}`);throw n.code="INVALID_ARGUMENT",n.argument=`value.${r}`,n.value=e,n}function K(e,t,r){for(let i in t){let n=t[i];const o=r?r[i]:null;o&&ot(n,o,i),Object.defineProperty(e,i,{enumerable:!0,value:n,writable:!1})}}function x(e){if(e==null)return"null";if(Array.isArray(e))return"[ "+e.map(x).join(", ")+" ]";if(e instanceof Uint8Array){const t="0123456789abcdef";let r="0x";for(let i=0;i<e.length;i++)r+=t[e[i]>>4],r+=t[e[i]&15];return r}if(typeof e=="object"&&typeof e.toJSON=="function")return x(e.toJSON());switch(typeof e){case"boolean":case"symbol":return e.toString();case"bigint":return BigInt(e).toString();case"number":return e.toString();case"string":return JSON.stringify(e);case"object":{const t=Object.keys(e);return t.sort(),"{ "+t.map(r=>`${x(r)}: ${x(e[r])}`).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function W(e,t,r){{const n=[];if(r){if("message"in r||"code"in r||"name"in r)throw new Error(`value will overwrite populated values: ${x(r)}`);for(const o in r){const l=r[o];n.push(o+"="+x(l))}}n.push(`code=${t}`),n.push(`version=${Q}`),n.length&&(e+=" ("+n.join(", ")+")")}let i;switch(t){case"INVALID_ARGUMENT":i=new TypeError(e);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":i=new RangeError(e);break;default:i=new Error(e)}return K(i,{code:t}),r&&Object.assign(i,r),i}function g(e,t,r,i){if(!e)throw W(t,r,i)}function c(e,t,r,i){g(e,t,"INVALID_ARGUMENT",{argument:r,value:i})}["NFD","NFC","NFKD","NFKC"].reduce((e,t)=>{try{if("test".normalize(t)!=="test")throw new Error("bad");if(t==="NFD"){const r=String.fromCharCode(233).normalize("NFD"),i=String.fromCharCode(101,769);if(r!==i)throw new Error("broken")}e.push(t)}catch{}return e},[]);function Y(e,t,r){if(r==null&&(r=""),e!==t){let i=r,n="new";r&&(i+=".",n+=" "+r),g(!1,`private constructor; use ${i}from* methods`,"UNSUPPORTED_OPERATION",{operation:n})}}function ft(e,t,r){if(e instanceof Uint8Array)return r?new Uint8Array(e):e;if(typeof e=="string"&&e.match(/^0x([0-9a-f][0-9a-f])*$/i)){const i=new Uint8Array((e.length-2)/2);let n=2;for(let o=0;o<i.length;o++)i[o]=parseInt(e.substring(n,n+2),16),n+=2;return i}c(!1,"invalid BytesLike value",t||"value",e)}function tt(e,t){return ft(e,t,!1)}function ut(e,t){return!(typeof e!="string"||!e.match(/^0x[0-9A-Fa-f]*$/)||typeof t=="number"&&e.length!==2+2*t||t===!0&&e.length%2!==0)}const et=BigInt(0),E=BigInt(1),S=9007199254740991;function k(e,t){const r=q(e,"value"),i=BigInt(T(t,"width"));if(g(r>>i===et,"overflow","NUMERIC_FAULT",{operation:"fromTwos",fault:"overflow",value:e}),r>>i-E){const n=(E<<i)-E;return-((~r&n)+E)}return r}function z(e,t){const r=q(e,"value"),i=BigInt(T(t,"bits"));return r&(E<<i)-E}function V(e,t){switch(typeof e){case"bigint":return e;case"number":return c(Number.isInteger(e),"underflow",t||"value",e),c(e>=-S&&e<=S,"overflow",t||"value",e),BigInt(e);case"string":try{if(e==="")throw new Error("empty string");return e[0]==="-"&&e[1]!=="-"?-BigInt(e.substring(1)):BigInt(e)}catch(r){c(!1,`invalid BigNumberish string: ${r.message}`,t||"value",e)}}c(!1,"invalid BigNumberish value",t||"value",e)}function q(e,t){const r=V(e,t);return g(r>=et,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:e}),r}const X="0123456789abcdef";function rt(e){if(e instanceof Uint8Array){let t="0x0";for(const r of e)t+=X[r>>4],t+=X[r&15];return BigInt(t)}return V(e)}function T(e,t){switch(typeof e){case"bigint":return c(e>=-S&&e<=S,"overflow",t||"value",e),Number(e);case"number":return c(Number.isInteger(e),"underflow",t||"value",e),c(e>=-S&&e<=S,"overflow",t||"value",e),e;case"string":try{if(e==="")throw new Error("empty string");return T(BigInt(e),t)}catch(r){c(!1,`invalid numeric string: ${r.message}`,t||"value",e)}}c(!1,"invalid numeric value",t||"value",e)}const ct=BigInt(-1),d=BigInt(0),F=BigInt(1),lt=BigInt(5),B={};let A="0000";for(;A.length<80;)A+=A;function y(e){let t=A;for(;t.length<e;)t+=t;return BigInt("1"+t.substring(0,e))}function C(e,t,r){const i=BigInt(t.width);if(t.signed){const n=F<<i-F;g(r==null||e>=-n&&e<n,"overflow","NUMERIC_FAULT",{operation:r,fault:"overflow",value:e}),e>d?e=k(z(e,i),i):e=-k(z(-e,i),i)}else{const n=F<<i;g(r==null||e>=0&&e<n,"overflow","NUMERIC_FAULT",{operation:r,fault:"overflow",value:e}),e=(e%n+n)%n&n-F}return e}function P(e){typeof e=="number"&&(e=`fixed128x${e}`);let t=!0,r=128,i=18;if(typeof e=="string"){if(e!=="fixed")if(e==="ufixed")t=!1;else{const o=e.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);c(o,"invalid fixed format","format",e),t=o[1]!=="u",r=parseInt(o[2]),i=parseInt(o[3])}}else if(e){const o=e,l=(h,R,it)=>o[h]==null?it:(c(typeof o[h]===R,"invalid fixed format ("+h+" not "+R+")","format."+h,o[h]),o[h]);t=l("signed","boolean",t),r=l("width","number",r),i=l("decimals","number",i)}c(r%8===0,"invalid FixedNumber width (not byte aligned)","format.width",r),c(i<=80,"invalid FixedNumber decimals (too large)","format.decimals",i);const n=(t?"":"u")+"fixed"+String(r)+"x"+String(i);return{signed:t,width:r,decimals:i,name:n}}function at(e,t){let r="";e<d&&(r="-",e*=ct);let i=e.toString();if(t===0)return r+i;for(;i.length<=t;)i=A+i;const n=i.length-t;for(i=i.substring(0,n)+"."+i.substring(n);i[0]==="0"&&i[1]!==".";)i=i.substring(1);for(;i[i.length-1]==="0"&&i[i.length-2]!==".";)i=i.substring(0,i.length-1);return r+i}var m,f,a,N,U,w,p,$,G,L,H,v,J,_,Z;const I=class I{constructor(t,r,i){b(this,N);b(this,w);b(this,$);b(this,L);b(this,v);b(this,_);j(this,"format");b(this,m,void 0);b(this,f,void 0);b(this,a,void 0);j(this,"_value");Y(t,B,"FixedNumber"),M(this,f,r),M(this,m,i);const n=at(r,i.decimals);K(this,{format:i.name,_value:n}),M(this,a,y(i.decimals))}get signed(){return s(this,m).signed}get width(){return s(this,m).width}get decimals(){return s(this,m).decimals}get value(){return s(this,f)}addUnsafe(t){return u(this,$,G).call(this,t)}add(t){return u(this,$,G).call(this,t,"add")}subUnsafe(t){return u(this,L,H).call(this,t)}sub(t){return u(this,L,H).call(this,t,"sub")}mulUnsafe(t){return u(this,v,J).call(this,t)}mul(t){return u(this,v,J).call(this,t,"mul")}mulSignal(t){u(this,N,U).call(this,t);const r=s(this,f)*s(t,f);return g(r%s(this,a)===d,"precision lost during signalling mul","NUMERIC_FAULT",{operation:"mulSignal",fault:"underflow",value:this}),u(this,w,p).call(this,r/s(this,a),"mulSignal")}divUnsafe(t){return u(this,_,Z).call(this,t)}div(t){return u(this,_,Z).call(this,t,"div")}divSignal(t){g(s(t,f)!==d,"division by zero","NUMERIC_FAULT",{operation:"div",fault:"divide-by-zero",value:this}),u(this,N,U).call(this,t);const r=s(this,f)*s(this,a);return g(r%s(t,f)===d,"precision lost during signalling div","NUMERIC_FAULT",{operation:"divSignal",fault:"underflow",value:this}),u(this,w,p).call(this,r/s(t,f),"divSignal")}cmp(t){let r=this.value,i=t.value;const n=this.decimals-t.decimals;return n>0?i*=y(n):n<0&&(r*=y(-n)),r<i?-1:r>i?1:0}eq(t){return this.cmp(t)===0}lt(t){return this.cmp(t)<0}lte(t){return this.cmp(t)<=0}gt(t){return this.cmp(t)>0}gte(t){return this.cmp(t)>=0}floor(){let t=s(this,f);return s(this,f)<d&&(t-=s(this,a)-F),t=s(this,f)/s(this,a)*s(this,a),u(this,w,p).call(this,t,"floor")}ceiling(){let t=s(this,f);return s(this,f)>d&&(t+=s(this,a)-F),t=s(this,f)/s(this,a)*s(this,a),u(this,w,p).call(this,t,"ceiling")}round(t){if(t==null&&(t=0),t>=this.decimals)return this;const r=this.decimals-t,i=lt*y(r-1);let n=this.value+i;const o=y(r);return n=n/o*o,C(n,s(this,m),"round"),new I(B,n,s(this,m))}isZero(){return s(this,f)===d}isNegative(){return s(this,f)<d}toString(){return this._value}toUnsafeFloat(){return parseFloat(this.toString())}toFormat(t){return I.fromString(this.toString(),t)}static fromValue(t,r,i){const n=r==null?0:T(r),o=P(i);let l=V(t,"value");const h=n-o.decimals;if(h>0){const R=y(h);g(l%R===d,"value loses precision for format","NUMERIC_FAULT",{operation:"fromValue",fault:"underflow",value:t}),l/=R}else h<0&&(l*=y(-h));return C(l,o,"fromValue"),new I(B,l,o)}static fromString(t,r){const i=t.match(/^(-?)([0-9]*)\.?([0-9]*)$/);c(i&&i[2].length+i[3].length>0,"invalid FixedNumber string value","value",t);const n=P(r);let o=i[2]||"0",l=i[3]||"";for(;l.length<n.decimals;)l+=A;g(l.substring(n.decimals).match(/^0*$/),"too many decimals for format","NUMERIC_FAULT",{operation:"fromString",fault:"underflow",value:t}),l=l.substring(0,n.decimals);const h=BigInt(i[1]+o+l);return C(h,n,"fromString"),new I(B,h,n)}static fromBytes(t,r){let i=rt(tt(t,"value"));const n=P(r);return n.signed&&(i=k(i,n.width)),C(i,n,"fromBytes"),new I(B,i,n)}};m=new WeakMap,f=new WeakMap,a=new WeakMap,N=new WeakSet,U=function(t){c(this.format===t.format,"incompatible format; use fixedNumber.toFormat","other",t)},w=new WeakSet,p=function(t,r){return t=C(t,s(this,m),r),new I(B,t,s(this,m))},$=new WeakSet,G=function(t,r){return u(this,N,U).call(this,t),u(this,w,p).call(this,s(this,f)+s(t,f),r)},L=new WeakSet,H=function(t,r){return u(this,N,U).call(this,t),u(this,w,p).call(this,s(this,f)-s(t,f),r)},v=new WeakSet,J=function(t,r){return u(this,N,U).call(this,t),u(this,w,p).call(this,s(this,f)*s(t,f)/s(this,a),r)},_=new WeakSet,Z=function(t,r){return g(s(t,f)!==d,"division by zero","NUMERIC_FAULT",{operation:"div",fault:"divide-by-zero",value:this}),u(this,N,U).call(this,t),u(this,w,p).call(this,s(this,f)*s(this,a)/s(t,f),r)};let O=I;const ht=["wei","kwei","mwei","gwei","szabo","finney","ether"];function gt(e,t){c(typeof e=="string","value must be a string","value",e);let r=18;if(typeof t=="string"){const i=ht.indexOf(t);c(i>=0,"invalid unit","unit",t),r=3*i}else t!=null&&(r=T(t,"unit"));return O.fromString(e,{decimals:r,width:512}).value}exports.FixedNumber=O;exports.assert=g;exports.assertArgument=c;exports.assertPrivate=Y;exports.defineProperties=K;exports.fromTwos=k;exports.getBigInt=V;exports.getBytes=tt;exports.getNumber=T;exports.getUint=q;exports.isHexString=ut;exports.makeError=W;exports.mask=z;exports.parseUnits=gt;exports.toBigInt=rt;exports.version=Q;
|