@orderly.network/default-evm-adapter 2.0.0-alpha.1
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.d.mts +99 -0
- package/dist/index.d.ts +99 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +2 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +36 -0
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { IContract, BaseWalletAdapter, RegisterAccountInputs, Message, AddOrderlyKeyInputs, WithdrawInputs, SignatureDomain, SettleInputs } from '@orderly.network/core';
|
|
2
|
+
import { API, ChainNamespace } from '@orderly.network/types';
|
|
3
|
+
|
|
4
|
+
declare global {
|
|
5
|
+
interface Window {
|
|
6
|
+
__ORDERLY_VERSION__?: {
|
|
7
|
+
[key: string]: string;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
declare const _default: "2.0.0-alpha.1";
|
|
12
|
+
|
|
13
|
+
type Eip1193Provider = {
|
|
14
|
+
request: (args: {
|
|
15
|
+
method: string;
|
|
16
|
+
params?: any[];
|
|
17
|
+
}) => Promise<any>;
|
|
18
|
+
};
|
|
19
|
+
interface Web3Provider {
|
|
20
|
+
set provider(provider: Eip1193Provider);
|
|
21
|
+
parseUnits(amount: string, decimals?: number): string;
|
|
22
|
+
formatUnits(amount: string, decimals?: number): string;
|
|
23
|
+
signTypedData(address: string, toSignatureMessage: any): Promise<string>;
|
|
24
|
+
send(method: string, params: Array<any> | Record<string, any>): Promise<any>;
|
|
25
|
+
call(address: string, method: string, params: any[], options?: {
|
|
26
|
+
abi: any;
|
|
27
|
+
}): Promise<any>;
|
|
28
|
+
/**
|
|
29
|
+
* send transaction
|
|
30
|
+
*/
|
|
31
|
+
sendTransaction(contractAddress: string, method: string, payload: {
|
|
32
|
+
from: string;
|
|
33
|
+
to?: string;
|
|
34
|
+
data: any[];
|
|
35
|
+
value?: bigint;
|
|
36
|
+
}, options: {
|
|
37
|
+
abi: any;
|
|
38
|
+
}): Promise<any>;
|
|
39
|
+
callOnChain(chain: API.NetworkInfos, address: string, method: string, params: any[], options: {
|
|
40
|
+
abi: any;
|
|
41
|
+
}): Promise<any>;
|
|
42
|
+
getBalance(userAddress: string): Promise<bigint>;
|
|
43
|
+
pollTransactionReceiptWithBackoff(txHash: string, baseInterval?: number, maxInterval?: number, maxRetries?: number): Promise<any>;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
interface EVMAdapterOptions {
|
|
47
|
+
provider: Eip1193Provider;
|
|
48
|
+
address: string;
|
|
49
|
+
chain: {
|
|
50
|
+
id: number;
|
|
51
|
+
};
|
|
52
|
+
contractManager: IContract;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
declare class DefaultEVMAdapterWalletAdapter extends BaseWalletAdapter<EVMAdapterOptions> {
|
|
56
|
+
private readonly web3Provider;
|
|
57
|
+
chainNamespace: ChainNamespace;
|
|
58
|
+
private _address;
|
|
59
|
+
private _chainId;
|
|
60
|
+
private contractManager;
|
|
61
|
+
constructor(web3Provider: Web3Provider);
|
|
62
|
+
get address(): string;
|
|
63
|
+
get chainId(): number;
|
|
64
|
+
set chainId(chainId: number);
|
|
65
|
+
private setConfig;
|
|
66
|
+
active(config: EVMAdapterOptions): void;
|
|
67
|
+
deactivate(): void;
|
|
68
|
+
update(config: EVMAdapterOptions): void;
|
|
69
|
+
generateSecretKey(): string;
|
|
70
|
+
private lifecycleName;
|
|
71
|
+
private signTypedData;
|
|
72
|
+
generateRegisterAccountMessage(inputs: RegisterAccountInputs): Promise<Message>;
|
|
73
|
+
generateAddOrderlyKeyMessage(inputs: AddOrderlyKeyInputs): Promise<Message>;
|
|
74
|
+
generateWithdrawMessage(inputs: WithdrawInputs): Promise<Message & {
|
|
75
|
+
domain: SignatureDomain;
|
|
76
|
+
}>;
|
|
77
|
+
generateSettleMessage(inputs: SettleInputs): Promise<Message & {
|
|
78
|
+
domain: SignatureDomain;
|
|
79
|
+
}>;
|
|
80
|
+
getBalance(): Promise<bigint>;
|
|
81
|
+
call(address: string, method: string, params: any[], options?: {
|
|
82
|
+
abi: any;
|
|
83
|
+
}): Promise<any>;
|
|
84
|
+
sendTransaction(contractAddress: string, method: string, payload: {
|
|
85
|
+
from: string;
|
|
86
|
+
to?: string;
|
|
87
|
+
data: any[];
|
|
88
|
+
value?: bigint;
|
|
89
|
+
}, options: {
|
|
90
|
+
abi: any;
|
|
91
|
+
}): Promise<any>;
|
|
92
|
+
callOnChain(chain: API.NetworkInfos, address: string, method: string, params: any[], options: {
|
|
93
|
+
abi: any;
|
|
94
|
+
}): Promise<any>;
|
|
95
|
+
getDomain(onChainDomain?: boolean): SignatureDomain;
|
|
96
|
+
pollTransactionReceiptWithBackoff(txHash: string, baseInterval?: number, maxInterval?: number, maxRetries?: number): Promise<any>;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export { DefaultEVMAdapterWalletAdapter, type Web3Provider, _default as version };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { IContract, BaseWalletAdapter, RegisterAccountInputs, Message, AddOrderlyKeyInputs, WithdrawInputs, SignatureDomain, SettleInputs } from '@orderly.network/core';
|
|
2
|
+
import { API, ChainNamespace } from '@orderly.network/types';
|
|
3
|
+
|
|
4
|
+
declare global {
|
|
5
|
+
interface Window {
|
|
6
|
+
__ORDERLY_VERSION__?: {
|
|
7
|
+
[key: string]: string;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
declare const _default: "2.0.0-alpha.1";
|
|
12
|
+
|
|
13
|
+
type Eip1193Provider = {
|
|
14
|
+
request: (args: {
|
|
15
|
+
method: string;
|
|
16
|
+
params?: any[];
|
|
17
|
+
}) => Promise<any>;
|
|
18
|
+
};
|
|
19
|
+
interface Web3Provider {
|
|
20
|
+
set provider(provider: Eip1193Provider);
|
|
21
|
+
parseUnits(amount: string, decimals?: number): string;
|
|
22
|
+
formatUnits(amount: string, decimals?: number): string;
|
|
23
|
+
signTypedData(address: string, toSignatureMessage: any): Promise<string>;
|
|
24
|
+
send(method: string, params: Array<any> | Record<string, any>): Promise<any>;
|
|
25
|
+
call(address: string, method: string, params: any[], options?: {
|
|
26
|
+
abi: any;
|
|
27
|
+
}): Promise<any>;
|
|
28
|
+
/**
|
|
29
|
+
* send transaction
|
|
30
|
+
*/
|
|
31
|
+
sendTransaction(contractAddress: string, method: string, payload: {
|
|
32
|
+
from: string;
|
|
33
|
+
to?: string;
|
|
34
|
+
data: any[];
|
|
35
|
+
value?: bigint;
|
|
36
|
+
}, options: {
|
|
37
|
+
abi: any;
|
|
38
|
+
}): Promise<any>;
|
|
39
|
+
callOnChain(chain: API.NetworkInfos, address: string, method: string, params: any[], options: {
|
|
40
|
+
abi: any;
|
|
41
|
+
}): Promise<any>;
|
|
42
|
+
getBalance(userAddress: string): Promise<bigint>;
|
|
43
|
+
pollTransactionReceiptWithBackoff(txHash: string, baseInterval?: number, maxInterval?: number, maxRetries?: number): Promise<any>;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
interface EVMAdapterOptions {
|
|
47
|
+
provider: Eip1193Provider;
|
|
48
|
+
address: string;
|
|
49
|
+
chain: {
|
|
50
|
+
id: number;
|
|
51
|
+
};
|
|
52
|
+
contractManager: IContract;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
declare class DefaultEVMAdapterWalletAdapter extends BaseWalletAdapter<EVMAdapterOptions> {
|
|
56
|
+
private readonly web3Provider;
|
|
57
|
+
chainNamespace: ChainNamespace;
|
|
58
|
+
private _address;
|
|
59
|
+
private _chainId;
|
|
60
|
+
private contractManager;
|
|
61
|
+
constructor(web3Provider: Web3Provider);
|
|
62
|
+
get address(): string;
|
|
63
|
+
get chainId(): number;
|
|
64
|
+
set chainId(chainId: number);
|
|
65
|
+
private setConfig;
|
|
66
|
+
active(config: EVMAdapterOptions): void;
|
|
67
|
+
deactivate(): void;
|
|
68
|
+
update(config: EVMAdapterOptions): void;
|
|
69
|
+
generateSecretKey(): string;
|
|
70
|
+
private lifecycleName;
|
|
71
|
+
private signTypedData;
|
|
72
|
+
generateRegisterAccountMessage(inputs: RegisterAccountInputs): Promise<Message>;
|
|
73
|
+
generateAddOrderlyKeyMessage(inputs: AddOrderlyKeyInputs): Promise<Message>;
|
|
74
|
+
generateWithdrawMessage(inputs: WithdrawInputs): Promise<Message & {
|
|
75
|
+
domain: SignatureDomain;
|
|
76
|
+
}>;
|
|
77
|
+
generateSettleMessage(inputs: SettleInputs): Promise<Message & {
|
|
78
|
+
domain: SignatureDomain;
|
|
79
|
+
}>;
|
|
80
|
+
getBalance(): Promise<bigint>;
|
|
81
|
+
call(address: string, method: string, params: any[], options?: {
|
|
82
|
+
abi: any;
|
|
83
|
+
}): Promise<any>;
|
|
84
|
+
sendTransaction(contractAddress: string, method: string, payload: {
|
|
85
|
+
from: string;
|
|
86
|
+
to?: string;
|
|
87
|
+
data: any[];
|
|
88
|
+
value?: bigint;
|
|
89
|
+
}, options: {
|
|
90
|
+
abi: any;
|
|
91
|
+
}): Promise<any>;
|
|
92
|
+
callOnChain(chain: API.NetworkInfos, address: string, method: string, params: any[], options: {
|
|
93
|
+
abi: any;
|
|
94
|
+
}): Promise<any>;
|
|
95
|
+
getDomain(onChainDomain?: boolean): SignatureDomain;
|
|
96
|
+
pollTransactionReceiptWithBackoff(txHash: string, baseInterval?: number, maxInterval?: number, maxRetries?: number): Promise<any>;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export { DefaultEVMAdapterWalletAdapter, type Web3Provider, _default as version };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var N=Object.create;var y=Object.defineProperty,K=Object.defineProperties,x=Object.getOwnPropertyDescriptor,V=Object.getOwnPropertyDescriptors,W=Object.getOwnPropertyNames,f=Object.getOwnPropertySymbols,k=Object.getPrototypeOf,v=Object.prototype.hasOwnProperty,B=Object.prototype.propertyIsEnumerable;var M=(a,t,e)=>t in a?y(a,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):a[t]=e,g=(a,t)=>{for(var e in t||(t={}))v.call(t,e)&&M(a,e,t[e]);if(f)for(var e of f(t))B.call(t,e)&&M(a,e,t[e]);return a},p=(a,t)=>K(a,V(t));var L=(a,t)=>{for(var e in t)y(a,e,{get:t[e],enumerable:!0})},b=(a,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of W(t))!v.call(a,i)&&i!==e&&y(a,i,{get:()=>t[i],enumerable:!(n=x(t,i))||n.enumerable});return a};var Y=(a,t,e)=>(e=a!=null?N(k(a)):{},b(t||!a||!a.__esModule?y(e,"default",{value:a,enumerable:!0}):e,a)),J=a=>b(y({},"__esModule",{value:!0}),a);var h=(a,t,e)=>(M(a,typeof t!="symbol"?t+"":t,e),e);var m=(a,t,e)=>new Promise((n,i)=>{var s=o=>{try{d(e.next(o))}catch(c){i(c)}},r=o=>{try{d(e.throw(o))}catch(c){i(c)}},d=o=>o.done?n(o.value):Promise.resolve(o.value).then(s,r);d((e=e.apply(a,t)).next())});var j={};L(j,{DefaultEVMAdapterWalletAdapter:()=>w,version:()=>D});module.exports=J(j);typeof window!="undefined"&&(window.__ORDERLY_VERSION__=window.__ORDERLY_VERSION__||{},window.__ORDERLY_VERSION__["@orderly.network/default-evm-adapter"]="2.0.0-alpha.1");var D="2.0.0-alpha.1";var _=require("@orderly.network/core"),O=Y(require("@noble/ed25519")),A=require("bs58"),R=require("@orderly.network/types");var u=require("@orderly.network/types");function P(a){return m(this,null,function*(){let{chainId:t,receiver:e,token:n,amount:i,nonce:s,brokerId:r,domain:d}=a,o="Withdraw",c=Date.now(),l={EIP712Domain:u.definedTypes.EIP712Domain,[o]:u.definedTypes[o]},I={brokerId:r,chainId:t,receiver:e,token:n,amount:i,timestamp:c,withdrawNonce:s};return[I,{domain:d,message:I,primaryType:o,types:l}]})}function C(a){return m(this,null,function*(){let{publicKey:t,chainId:e,brokerId:n,expiration:i=365,timestamp:s=Date.now(),scope:r,tag:d,domain:o}=a,c="AddOrderlyKey",l=g({brokerId:n,orderlyKey:t,scope:r||"read,trading",chainId:e,timestamp:s,expiration:s+1e3*60*60*24*i},typeof d!="undefined"?{tag:d}:{}),I={EIP712Domain:u.definedTypes.EIP712Domain,[c]:u.definedTypes[c]};return[l,{domain:o,message:l,primaryType:c,types:I}]})}function S(a){return m(this,null,function*(){let{chainId:t,domain:e,registrationNonce:n,brokerId:i,timestamp:s}=a,r="Registration",d={brokerId:i,chainId:t,timestamp:s,registrationNonce:n},o={EIP712Domain:u.definedTypes.EIP712Domain,[r]:u.definedTypes[r]};return[d,{domain:e,message:d,primaryType:r,types:o}]})}function E(a){return m(this,null,function*(){let{settlePnlNonce:t,brokerId:e,chainId:n,timestamp:i,domain:s}=a,r="SettlePnl",d={EIP712Domain:u.definedTypes.EIP712Domain,[r]:u.definedTypes[r]},o={brokerId:e,chainId:n,timestamp:i,settleNonce:t};return[o,{domain:s,message:o,primaryType:r,types:d}]})}var w=class extends _.BaseWalletAdapter{constructor(e){super();this.web3Provider=e;h(this,"chainNamespace",R.ChainNamespace.evm);h(this,"_address");h(this,"_chainId");h(this,"contractManager")}get address(){return this._address}get chainId(){return this._chainId}set chainId(e){this._chainId=e}setConfig(e){if(this._address=e.address,this._chainId=e.chain.id,e.provider&&(this.web3Provider.provider=e.provider),e.contractManager)this.contractManager=e.contractManager;else throw new Error("Please provide contract manager class")}active(e){this.setConfig(e),this.lifecycleName("active",e)}deactivate(){this.lifecycleName("deactivate",{})}update(e){this.lifecycleName("update",e),this.setConfig(e)}generateSecretKey(){let e,n;do e=O.utils.randomPrivateKey(),n=(0,A.encode)(e);while(n.length!==44);return n}lifecycleName(e,n){console.log("lifecycle",e,n)}signTypedData(e){return m(this,null,function*(){return console.log("toSignatureMessage",this.address),yield this.web3Provider.signTypedData(this.address,JSON.stringify(e))})}generateRegisterAccountMessage(e){return m(this,null,function*(){let[n,i]=yield S(p(g({},e),{chainId:this.chainId,domain:this.getDomain()})),s=yield this.signTypedData(i);return{message:p(g({},n),{chainType:"EVM"}),signatured:s}})}generateAddOrderlyKeyMessage(e){return m(this,null,function*(){let[n,i]=yield C(p(g({},e),{chainId:this.chainId,domain:this.getDomain()})),s=yield this.signTypedData(i);return{message:p(g({},n),{chainType:"EVM"}),signatured:s}})}generateWithdrawMessage(e){return m(this,null,function*(){let n=this.getDomain(!0),[i,s]=yield P(p(g({},e),{chainId:this.chainId,domain:n})),r=yield this.signTypedData(s);return{message:p(g({},i),{chainType:"EVM"}),signatured:r,domain:n}})}generateSettleMessage(e){return m(this,null,function*(){let n=this.getDomain(!0),[i,s]=yield E(p(g({},e),{chainId:this.chainId,domain:n})),r=yield this.signTypedData(s);return{message:p(g({},i),{chainType:"EVM"}),signatured:r,domain:n}})}getBalance(){return this.web3Provider.getBalance(this.address)}call(e,n,i,s){return this.web3Provider.call(e,n,i,s)}sendTransaction(e,n,i,s){return this.web3Provider.sendTransaction(e,n,i,s)}callOnChain(e,n,i,s,r){return this.web3Provider.callOnChain(e,n,i,s,r)}getDomain(e){if(!this.web3Provider)throw new Error("web3Provider is undefined");return{name:"Orderly",version:"1",chainId:this.chainId,verifyingContract:e?this.contractManager.getContractInfoByEnv().verifyContractAddress:"0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC"}}pollTransactionReceiptWithBackoff(e,n,i,s){return this.web3Provider.pollTransactionReceiptWithBackoff(e,n,i,s)}};0&&(module.exports={DefaultEVMAdapterWalletAdapter,version});
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/version.ts","../src/walletAdapter.ts","../src/helper.ts"],"sourcesContent":["export { default as version } from \"./version\";\nexport { DefaultEVMAdapterWalletAdapter } from \"./walletAdapter\";\nexport type { Web3Provider } from \"./provider/web3Provider.interface\";\n","\ndeclare global {\n interface Window {\n __ORDERLY_VERSION__?: {\n [key: string]: string;\n };\n }\n}\nif(typeof window !== 'undefined') {\n window.__ORDERLY_VERSION__ = window.__ORDERLY_VERSION__ || {};\n window.__ORDERLY_VERSION__[\"@orderly.network/default-evm-adapter\"] = \"2.0.0-alpha.1\";\n};\n\nexport default \"2.0.0-alpha.1\";\n","import {\n AddOrderlyKeyInputs,\n BaseWalletAdapter,\n IContract,\n Message,\n RegisterAccountInputs,\n SettleInputs,\n SignatureDomain,\n WithdrawInputs,\n} from \"@orderly.network/core\";\nimport { EVMAdapterOptions } from \"./types\";\nimport * as ed from \"@noble/ed25519\";\nimport { encode as bs58encode, decode as bs58Decode } from \"bs58\";\nimport { API, ChainNamespace} from \"@orderly.network/types\";\nimport {\n addOrderlyKeyMessage,\n registerAccountMessage,\n settleMessage,\n withdrawMessage,\n} from \"./helper\";\nimport type { Web3Provider } from \"./provider/web3Provider.interface\";\n\nclass DefaultEVMAdapterWalletAdapter extends BaseWalletAdapter<EVMAdapterOptions> {\n chainNamespace: ChainNamespace = ChainNamespace.evm;\n private _address!: string;\n private _chainId!: number;\n private contractManager!: IContract;\n\n constructor(private readonly web3Provider: Web3Provider) {\n super();\n }\n\n get address(): string {\n return this._address;\n }\n\n get chainId(): number {\n return this._chainId;\n }\n\n set chainId(chainId: number) {\n this._chainId = chainId;\n }\n\n private setConfig(config: EVMAdapterOptions): void {\n this._address = config.address;\n this._chainId = config.chain.id;\n\n if (config.provider) {\n this.web3Provider.provider = config.provider;\n }\n\n if (config.contractManager) {\n this.contractManager = config.contractManager;\n } else {\n throw new Error(\"Please provide contract manager class\");\n }\n }\n\n active(config: EVMAdapterOptions): void {\n this.setConfig(config);\n this.lifecycleName(\"active\", config);\n }\n\n deactivate(): void {\n this.lifecycleName(\"deactivate\", {});\n }\n\n update(config: EVMAdapterOptions): void {\n this.lifecycleName(\"update\", config);\n this.setConfig(config);\n }\n\n generateSecretKey(): string {\n let privKey, secretKey;\n do {\n privKey = ed.utils.randomPrivateKey();\n secretKey = bs58encode(privKey);\n } while (secretKey.length !== 44);\n\n return secretKey;\n }\n\n private lifecycleName(name: string, data: any) {\n console.log(\"lifecycle\", name, data);\n }\n\n private async signTypedData(toSignatureMessage: Record<string, any>) {\n console.log(\"toSignatureMessage\", this.address);\n return await this.web3Provider.signTypedData(\n // address,\n this.address,\n // toSignatureMessage\n JSON.stringify(toSignatureMessage)\n );\n }\n\n async generateRegisterAccountMessage(\n inputs: RegisterAccountInputs\n ): Promise<Message> {\n const [message, toSignatureMessage] = await registerAccountMessage({\n ...inputs,\n\n chainId: this.chainId,\n domain: this.getDomain(),\n });\n\n const signedMessage = await this.signTypedData(toSignatureMessage);\n\n return {\n message: {\n ...message,\n chainType: \"EVM\",\n },\n signatured: signedMessage,\n };\n }\n\n async generateAddOrderlyKeyMessage(\n inputs: AddOrderlyKeyInputs\n ): Promise<Message> {\n const [message, toSignatureMessage] = await addOrderlyKeyMessage({\n ...inputs,\n chainId: this.chainId,\n domain: this.getDomain(),\n });\n\n const signedMessage = await this.signTypedData(toSignatureMessage);\n\n return {\n message: {\n ...message,\n chainType: \"EVM\",\n },\n signatured: signedMessage,\n };\n }\n\n async generateWithdrawMessage(inputs: WithdrawInputs): Promise<\n Message & {\n domain: SignatureDomain;\n }\n > {\n // const { chainId, receiver, token, amount, nonce, brokerId, timestamp } = inputs;\n const domain = this.getDomain(true);\n\n const [message, toSignatureMessage] = await withdrawMessage({\n ...inputs,\n chainId: this.chainId,\n domain,\n });\n\n const signedMessage = await this.signTypedData(toSignatureMessage);\n\n return {\n message: {\n ...message,\n chainType: \"EVM\",\n },\n signatured: signedMessage,\n domain,\n };\n }\n\n async generateSettleMessage(inputs: SettleInputs): Promise<\n Message & {\n domain: SignatureDomain;\n }\n > {\n const domain = this.getDomain(true);\n const [message, toSignatureMessage] = await settleMessage({\n ...inputs,\n chainId: this.chainId,\n domain,\n });\n\n const signedMessage = await this.signTypedData(toSignatureMessage);\n\n return {\n message: {\n ...message,\n chainType: \"EVM\",\n },\n signatured: signedMessage,\n domain,\n };\n }\n\n getBalance(): Promise<bigint> {\n return this.web3Provider.getBalance(this.address);\n }\n\n call(\n address: string,\n method: string,\n params: any[],\n options?: { abi: any }\n ): Promise<any> {\n return this.web3Provider.call(address, method, params, options);\n }\n\n sendTransaction(\n contractAddress: string,\n method: string,\n payload: {\n from: string;\n to?: string;\n data: any[];\n value?: bigint;\n },\n options: {\n abi: any;\n }\n ): Promise<any> {\n return this.web3Provider.sendTransaction(\n contractAddress,\n method,\n payload,\n options\n );\n }\n\n callOnChain(\n chain: API.NetworkInfos,\n address: string,\n method: string,\n params: any[],\n options: { abi: any }\n ): Promise<any> {\n return this.web3Provider.callOnChain(\n chain,\n address,\n method,\n params,\n options\n );\n }\n\n getDomain(onChainDomain?: boolean): SignatureDomain {\n if (!this.web3Provider) {\n throw new Error(\"web3Provider is undefined\");\n }\n const chainId = this.chainId;\n\n // const {verifyContractAddress} = this.contract.getContractInfoByEnv();\n return {\n name: \"Orderly\",\n version: \"1\",\n chainId,\n verifyingContract: onChainDomain\n ? this.contractManager.getContractInfoByEnv().verifyContractAddress\n : \"0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC\",\n };\n }\n\n pollTransactionReceiptWithBackoff(\n txHash: string,\n baseInterval?: number,\n maxInterval?: number,\n maxRetries?: number\n ): Promise<any> {\n return this.web3Provider.pollTransactionReceiptWithBackoff(\n txHash,\n baseInterval,\n maxInterval,\n maxRetries\n );\n }\n}\n\nexport { DefaultEVMAdapterWalletAdapter };\n","import type {\n AddOrderlyKeyInputs,\n Message,\n ChainType,\n RegisterAccountInputs,\n SettleInputs,\n SignatureDomain,\n WithdrawInputs,\n} from \"@orderly.network/core\";\nimport { definedTypes } from \"@orderly.network/types\";\n\nexport async function withdrawMessage(\n inputs: WithdrawInputs & {\n domain: SignatureDomain;\n chainId: number;\n }\n) {\n const { chainId, receiver, token, amount, nonce, brokerId, domain } = inputs;\n // const domain = getDomain(chainId,true);\n\n const primaryType = \"Withdraw\";\n const timestamp = Date.now();\n\n const typeDefinition = {\n EIP712Domain: definedTypes.EIP712Domain,\n [primaryType]: definedTypes[primaryType],\n };\n\n const message = {\n brokerId,\n chainId,\n receiver,\n token,\n amount,\n timestamp,\n withdrawNonce: nonce,\n };\n\n const toSignatureMessage = {\n domain,\n message,\n primaryType,\n types: typeDefinition,\n };\n\n return [message, toSignatureMessage] as const;\n}\n\nexport async function addOrderlyKeyMessage(\n inputs: AddOrderlyKeyInputs & {\n domain: SignatureDomain;\n chainId: number;\n // chainType: ChainType;\n }\n) {\n const {\n publicKey,\n chainId,\n // primaryType,\n brokerId,\n expiration = 365,\n timestamp = Date.now(),\n scope,\n tag,\n domain,\n } = inputs;\n // const now = Date.now();\n // message;\n // const chainId = this.chainId;\n const primaryType = \"AddOrderlyKey\";\n const message = {\n brokerId,\n orderlyKey: publicKey,\n scope: scope || \"read,trading\",\n chainId,\n timestamp,\n // chainType,\n expiration: timestamp + 1000 * 60 * 60 * 24 * expiration,\n ...(typeof tag !== \"undefined\" ? { tag } : {}),\n };\n\n const typeDefinition = {\n EIP712Domain: definedTypes.EIP712Domain,\n [primaryType]: definedTypes[primaryType],\n };\n\n const toSignatureMessage = {\n domain,\n message,\n primaryType,\n types: typeDefinition,\n };\n\n return [message, toSignatureMessage] as const;\n}\n\n/**\n * generate `registerAccount` data and to be signed message structure\n */\n\nexport async function registerAccountMessage(\n inputs: RegisterAccountInputs & {\n domain: SignatureDomain;\n chainId: number;\n }\n) {\n const { chainId, domain, registrationNonce, brokerId, timestamp } = inputs;\n // const chainId = this.chainId;\n // const now = Date.now();\n const primaryType = \"Registration\";\n const message = {\n brokerId,\n chainId,\n timestamp,\n registrationNonce,\n };\n\n const typeDefinition = {\n EIP712Domain: definedTypes.EIP712Domain,\n [primaryType]: definedTypes[primaryType],\n };\n\n const toSignatureMessage = {\n domain,\n message,\n primaryType,\n types: typeDefinition,\n };\n\n return [message, toSignatureMessage] as const;\n}\n\nexport async function settleMessage(\n inputs: SettleInputs & {\n domain: SignatureDomain;\n chainId: number;\n }\n) {\n const { settlePnlNonce, brokerId, chainId, timestamp, domain } = inputs;\n\n const primaryType = \"SettlePnl\";\n\n const typeDefinition = {\n EIP712Domain: definedTypes.EIP712Domain,\n [primaryType]: definedTypes[primaryType],\n };\n\n const message = {\n brokerId,\n chainId: chainId,\n timestamp: timestamp,\n settleNonce: settlePnlNonce,\n };\n\n const toSignatureMessage = {\n domain,\n message,\n primaryType,\n types: typeDefinition,\n };\n\n return [message, toSignatureMessage] as const;\n}\n"],"mappings":"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","names":["src_exports","__export","DefaultEVMAdapterWalletAdapter","version_default","__toCommonJS","version_default","import_core","ed","import_bs58","import_types","import_types","withdrawMessage","inputs","__async","chainId","receiver","token","amount","nonce","brokerId","domain","primaryType","timestamp","typeDefinition","message","addOrderlyKeyMessage","publicKey","expiration","scope","tag","__spreadValues","registerAccountMessage","registrationNonce","settleMessage","settlePnlNonce","DefaultEVMAdapterWalletAdapter","web3Provider","__publicField","chainId","config","privKey","secretKey","bs58encode","name","data","toSignatureMessage","__async","inputs","message","registerAccountMessage","__spreadProps","__spreadValues","signedMessage","addOrderlyKeyMessage","domain","withdrawMessage","settleMessage","address","method","params","options","contractAddress","payload","chain","onChainDomain","txHash","baseInterval","maxInterval","maxRetries"]}
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var S=Object.defineProperty,E=Object.defineProperties;var _=Object.getOwnPropertyDescriptors;var M=Object.getOwnPropertySymbols;var O=Object.prototype.hasOwnProperty,A=Object.prototype.propertyIsEnumerable;var I=(s,a,e)=>a in s?S(s,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[a]=e,g=(s,a)=>{for(var e in a||(a={}))O.call(a,e)&&I(s,e,a[e]);if(M)for(var e of M(a))A.call(a,e)&&I(s,e,a[e]);return s},p=(s,a)=>E(s,_(a));var y=(s,a,e)=>(I(s,typeof a!="symbol"?a+"":a,e),e);var m=(s,a,e)=>new Promise((t,n)=>{var i=o=>{try{d(e.next(o))}catch(c){n(c)}},r=o=>{try{d(e.throw(o))}catch(c){n(c)}},d=o=>o.done?t(o.value):Promise.resolve(o.value).then(i,r);d((e=e.apply(s,a)).next())});typeof window!="undefined"&&(window.__ORDERLY_VERSION__=window.__ORDERLY_VERSION__||{},window.__ORDERLY_VERSION__["@orderly.network/default-evm-adapter"]="2.0.0-alpha.1");var R="2.0.0-alpha.1";import{BaseWalletAdapter as T}from"@orderly.network/core";import*as P from"@noble/ed25519";import{encode as N}from"bs58";import{ChainNamespace as K}from"@orderly.network/types";import{definedTypes as u}from"@orderly.network/types";function f(s){return m(this,null,function*(){let{chainId:a,receiver:e,token:t,amount:n,nonce:i,brokerId:r,domain:d}=s,o="Withdraw",c=Date.now(),h={EIP712Domain:u.EIP712Domain,[o]:u[o]},l={brokerId:r,chainId:a,receiver:e,token:t,amount:n,timestamp:c,withdrawNonce:i};return[l,{domain:d,message:l,primaryType:o,types:h}]})}function v(s){return m(this,null,function*(){let{publicKey:a,chainId:e,brokerId:t,expiration:n=365,timestamp:i=Date.now(),scope:r,tag:d,domain:o}=s,c="AddOrderlyKey",h=g({brokerId:t,orderlyKey:a,scope:r||"read,trading",chainId:e,timestamp:i,expiration:i+1e3*60*60*24*n},typeof d!="undefined"?{tag:d}:{}),l={EIP712Domain:u.EIP712Domain,[c]:u[c]};return[h,{domain:o,message:h,primaryType:c,types:l}]})}function b(s){return m(this,null,function*(){let{chainId:a,domain:e,registrationNonce:t,brokerId:n,timestamp:i}=s,r="Registration",d={brokerId:n,chainId:a,timestamp:i,registrationNonce:t},o={EIP712Domain:u.EIP712Domain,[r]:u[r]};return[d,{domain:e,message:d,primaryType:r,types:o}]})}function D(s){return m(this,null,function*(){let{settlePnlNonce:a,brokerId:e,chainId:t,timestamp:n,domain:i}=s,r="SettlePnl",d={EIP712Domain:u.EIP712Domain,[r]:u[r]},o={brokerId:e,chainId:t,timestamp:n,settleNonce:a};return[o,{domain:i,message:o,primaryType:r,types:d}]})}var w=class extends T{constructor(e){super();this.web3Provider=e;y(this,"chainNamespace",K.evm);y(this,"_address");y(this,"_chainId");y(this,"contractManager")}get address(){return this._address}get chainId(){return this._chainId}set chainId(e){this._chainId=e}setConfig(e){if(this._address=e.address,this._chainId=e.chain.id,e.provider&&(this.web3Provider.provider=e.provider),e.contractManager)this.contractManager=e.contractManager;else throw new Error("Please provide contract manager class")}active(e){this.setConfig(e),this.lifecycleName("active",e)}deactivate(){this.lifecycleName("deactivate",{})}update(e){this.lifecycleName("update",e),this.setConfig(e)}generateSecretKey(){let e,t;do e=P.utils.randomPrivateKey(),t=N(e);while(t.length!==44);return t}lifecycleName(e,t){console.log("lifecycle",e,t)}signTypedData(e){return m(this,null,function*(){return console.log("toSignatureMessage",this.address),yield this.web3Provider.signTypedData(this.address,JSON.stringify(e))})}generateRegisterAccountMessage(e){return m(this,null,function*(){let[t,n]=yield b(p(g({},e),{chainId:this.chainId,domain:this.getDomain()})),i=yield this.signTypedData(n);return{message:p(g({},t),{chainType:"EVM"}),signatured:i}})}generateAddOrderlyKeyMessage(e){return m(this,null,function*(){let[t,n]=yield v(p(g({},e),{chainId:this.chainId,domain:this.getDomain()})),i=yield this.signTypedData(n);return{message:p(g({},t),{chainType:"EVM"}),signatured:i}})}generateWithdrawMessage(e){return m(this,null,function*(){let t=this.getDomain(!0),[n,i]=yield f(p(g({},e),{chainId:this.chainId,domain:t})),r=yield this.signTypedData(i);return{message:p(g({},n),{chainType:"EVM"}),signatured:r,domain:t}})}generateSettleMessage(e){return m(this,null,function*(){let t=this.getDomain(!0),[n,i]=yield D(p(g({},e),{chainId:this.chainId,domain:t})),r=yield this.signTypedData(i);return{message:p(g({},n),{chainType:"EVM"}),signatured:r,domain:t}})}getBalance(){return this.web3Provider.getBalance(this.address)}call(e,t,n,i){return this.web3Provider.call(e,t,n,i)}sendTransaction(e,t,n,i){return this.web3Provider.sendTransaction(e,t,n,i)}callOnChain(e,t,n,i,r){return this.web3Provider.callOnChain(e,t,n,i,r)}getDomain(e){if(!this.web3Provider)throw new Error("web3Provider is undefined");return{name:"Orderly",version:"1",chainId:this.chainId,verifyingContract:e?this.contractManager.getContractInfoByEnv().verifyContractAddress:"0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC"}}pollTransactionReceiptWithBackoff(e,t,n,i){return this.web3Provider.pollTransactionReceiptWithBackoff(e,t,n,i)}};export{w as DefaultEVMAdapterWalletAdapter,R as version};
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/version.ts","../src/walletAdapter.ts","../src/helper.ts"],"sourcesContent":["\ndeclare global {\n interface Window {\n __ORDERLY_VERSION__?: {\n [key: string]: string;\n };\n }\n}\nif(typeof window !== 'undefined') {\n window.__ORDERLY_VERSION__ = window.__ORDERLY_VERSION__ || {};\n window.__ORDERLY_VERSION__[\"@orderly.network/default-evm-adapter\"] = \"2.0.0-alpha.1\";\n};\n\nexport default \"2.0.0-alpha.1\";\n","import {\n AddOrderlyKeyInputs,\n BaseWalletAdapter,\n IContract,\n Message,\n RegisterAccountInputs,\n SettleInputs,\n SignatureDomain,\n WithdrawInputs,\n} from \"@orderly.network/core\";\nimport { EVMAdapterOptions } from \"./types\";\nimport * as ed from \"@noble/ed25519\";\nimport { encode as bs58encode, decode as bs58Decode } from \"bs58\";\nimport { API, ChainNamespace} from \"@orderly.network/types\";\nimport {\n addOrderlyKeyMessage,\n registerAccountMessage,\n settleMessage,\n withdrawMessage,\n} from \"./helper\";\nimport type { Web3Provider } from \"./provider/web3Provider.interface\";\n\nclass DefaultEVMAdapterWalletAdapter extends BaseWalletAdapter<EVMAdapterOptions> {\n chainNamespace: ChainNamespace = ChainNamespace.evm;\n private _address!: string;\n private _chainId!: number;\n private contractManager!: IContract;\n\n constructor(private readonly web3Provider: Web3Provider) {\n super();\n }\n\n get address(): string {\n return this._address;\n }\n\n get chainId(): number {\n return this._chainId;\n }\n\n set chainId(chainId: number) {\n this._chainId = chainId;\n }\n\n private setConfig(config: EVMAdapterOptions): void {\n this._address = config.address;\n this._chainId = config.chain.id;\n\n if (config.provider) {\n this.web3Provider.provider = config.provider;\n }\n\n if (config.contractManager) {\n this.contractManager = config.contractManager;\n } else {\n throw new Error(\"Please provide contract manager class\");\n }\n }\n\n active(config: EVMAdapterOptions): void {\n this.setConfig(config);\n this.lifecycleName(\"active\", config);\n }\n\n deactivate(): void {\n this.lifecycleName(\"deactivate\", {});\n }\n\n update(config: EVMAdapterOptions): void {\n this.lifecycleName(\"update\", config);\n this.setConfig(config);\n }\n\n generateSecretKey(): string {\n let privKey, secretKey;\n do {\n privKey = ed.utils.randomPrivateKey();\n secretKey = bs58encode(privKey);\n } while (secretKey.length !== 44);\n\n return secretKey;\n }\n\n private lifecycleName(name: string, data: any) {\n console.log(\"lifecycle\", name, data);\n }\n\n private async signTypedData(toSignatureMessage: Record<string, any>) {\n console.log(\"toSignatureMessage\", this.address);\n return await this.web3Provider.signTypedData(\n // address,\n this.address,\n // toSignatureMessage\n JSON.stringify(toSignatureMessage)\n );\n }\n\n async generateRegisterAccountMessage(\n inputs: RegisterAccountInputs\n ): Promise<Message> {\n const [message, toSignatureMessage] = await registerAccountMessage({\n ...inputs,\n\n chainId: this.chainId,\n domain: this.getDomain(),\n });\n\n const signedMessage = await this.signTypedData(toSignatureMessage);\n\n return {\n message: {\n ...message,\n chainType: \"EVM\",\n },\n signatured: signedMessage,\n };\n }\n\n async generateAddOrderlyKeyMessage(\n inputs: AddOrderlyKeyInputs\n ): Promise<Message> {\n const [message, toSignatureMessage] = await addOrderlyKeyMessage({\n ...inputs,\n chainId: this.chainId,\n domain: this.getDomain(),\n });\n\n const signedMessage = await this.signTypedData(toSignatureMessage);\n\n return {\n message: {\n ...message,\n chainType: \"EVM\",\n },\n signatured: signedMessage,\n };\n }\n\n async generateWithdrawMessage(inputs: WithdrawInputs): Promise<\n Message & {\n domain: SignatureDomain;\n }\n > {\n // const { chainId, receiver, token, amount, nonce, brokerId, timestamp } = inputs;\n const domain = this.getDomain(true);\n\n const [message, toSignatureMessage] = await withdrawMessage({\n ...inputs,\n chainId: this.chainId,\n domain,\n });\n\n const signedMessage = await this.signTypedData(toSignatureMessage);\n\n return {\n message: {\n ...message,\n chainType: \"EVM\",\n },\n signatured: signedMessage,\n domain,\n };\n }\n\n async generateSettleMessage(inputs: SettleInputs): Promise<\n Message & {\n domain: SignatureDomain;\n }\n > {\n const domain = this.getDomain(true);\n const [message, toSignatureMessage] = await settleMessage({\n ...inputs,\n chainId: this.chainId,\n domain,\n });\n\n const signedMessage = await this.signTypedData(toSignatureMessage);\n\n return {\n message: {\n ...message,\n chainType: \"EVM\",\n },\n signatured: signedMessage,\n domain,\n };\n }\n\n getBalance(): Promise<bigint> {\n return this.web3Provider.getBalance(this.address);\n }\n\n call(\n address: string,\n method: string,\n params: any[],\n options?: { abi: any }\n ): Promise<any> {\n return this.web3Provider.call(address, method, params, options);\n }\n\n sendTransaction(\n contractAddress: string,\n method: string,\n payload: {\n from: string;\n to?: string;\n data: any[];\n value?: bigint;\n },\n options: {\n abi: any;\n }\n ): Promise<any> {\n return this.web3Provider.sendTransaction(\n contractAddress,\n method,\n payload,\n options\n );\n }\n\n callOnChain(\n chain: API.NetworkInfos,\n address: string,\n method: string,\n params: any[],\n options: { abi: any }\n ): Promise<any> {\n return this.web3Provider.callOnChain(\n chain,\n address,\n method,\n params,\n options\n );\n }\n\n getDomain(onChainDomain?: boolean): SignatureDomain {\n if (!this.web3Provider) {\n throw new Error(\"web3Provider is undefined\");\n }\n const chainId = this.chainId;\n\n // const {verifyContractAddress} = this.contract.getContractInfoByEnv();\n return {\n name: \"Orderly\",\n version: \"1\",\n chainId,\n verifyingContract: onChainDomain\n ? this.contractManager.getContractInfoByEnv().verifyContractAddress\n : \"0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC\",\n };\n }\n\n pollTransactionReceiptWithBackoff(\n txHash: string,\n baseInterval?: number,\n maxInterval?: number,\n maxRetries?: number\n ): Promise<any> {\n return this.web3Provider.pollTransactionReceiptWithBackoff(\n txHash,\n baseInterval,\n maxInterval,\n maxRetries\n );\n }\n}\n\nexport { DefaultEVMAdapterWalletAdapter };\n","import type {\n AddOrderlyKeyInputs,\n Message,\n ChainType,\n RegisterAccountInputs,\n SettleInputs,\n SignatureDomain,\n WithdrawInputs,\n} from \"@orderly.network/core\";\nimport { definedTypes } from \"@orderly.network/types\";\n\nexport async function withdrawMessage(\n inputs: WithdrawInputs & {\n domain: SignatureDomain;\n chainId: number;\n }\n) {\n const { chainId, receiver, token, amount, nonce, brokerId, domain } = inputs;\n // const domain = getDomain(chainId,true);\n\n const primaryType = \"Withdraw\";\n const timestamp = Date.now();\n\n const typeDefinition = {\n EIP712Domain: definedTypes.EIP712Domain,\n [primaryType]: definedTypes[primaryType],\n };\n\n const message = {\n brokerId,\n chainId,\n receiver,\n token,\n amount,\n timestamp,\n withdrawNonce: nonce,\n };\n\n const toSignatureMessage = {\n domain,\n message,\n primaryType,\n types: typeDefinition,\n };\n\n return [message, toSignatureMessage] as const;\n}\n\nexport async function addOrderlyKeyMessage(\n inputs: AddOrderlyKeyInputs & {\n domain: SignatureDomain;\n chainId: number;\n // chainType: ChainType;\n }\n) {\n const {\n publicKey,\n chainId,\n // primaryType,\n brokerId,\n expiration = 365,\n timestamp = Date.now(),\n scope,\n tag,\n domain,\n } = inputs;\n // const now = Date.now();\n // message;\n // const chainId = this.chainId;\n const primaryType = \"AddOrderlyKey\";\n const message = {\n brokerId,\n orderlyKey: publicKey,\n scope: scope || \"read,trading\",\n chainId,\n timestamp,\n // chainType,\n expiration: timestamp + 1000 * 60 * 60 * 24 * expiration,\n ...(typeof tag !== \"undefined\" ? { tag } : {}),\n };\n\n const typeDefinition = {\n EIP712Domain: definedTypes.EIP712Domain,\n [primaryType]: definedTypes[primaryType],\n };\n\n const toSignatureMessage = {\n domain,\n message,\n primaryType,\n types: typeDefinition,\n };\n\n return [message, toSignatureMessage] as const;\n}\n\n/**\n * generate `registerAccount` data and to be signed message structure\n */\n\nexport async function registerAccountMessage(\n inputs: RegisterAccountInputs & {\n domain: SignatureDomain;\n chainId: number;\n }\n) {\n const { chainId, domain, registrationNonce, brokerId, timestamp } = inputs;\n // const chainId = this.chainId;\n // const now = Date.now();\n const primaryType = \"Registration\";\n const message = {\n brokerId,\n chainId,\n timestamp,\n registrationNonce,\n };\n\n const typeDefinition = {\n EIP712Domain: definedTypes.EIP712Domain,\n [primaryType]: definedTypes[primaryType],\n };\n\n const toSignatureMessage = {\n domain,\n message,\n primaryType,\n types: typeDefinition,\n };\n\n return [message, toSignatureMessage] as const;\n}\n\nexport async function settleMessage(\n inputs: SettleInputs & {\n domain: SignatureDomain;\n chainId: number;\n }\n) {\n const { settlePnlNonce, brokerId, chainId, timestamp, domain } = inputs;\n\n const primaryType = \"SettlePnl\";\n\n const typeDefinition = {\n EIP712Domain: definedTypes.EIP712Domain,\n [primaryType]: definedTypes[primaryType],\n };\n\n const message = {\n brokerId,\n chainId: chainId,\n timestamp: timestamp,\n settleNonce: settlePnlNonce,\n };\n\n const toSignatureMessage = {\n domain,\n message,\n primaryType,\n types: typeDefinition,\n };\n\n return [message, toSignatureMessage] as const;\n}\n"],"mappings":"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","names":["version_default","BaseWalletAdapter","ed","bs58encode","ChainNamespace","definedTypes","withdrawMessage","inputs","__async","chainId","receiver","token","amount","nonce","brokerId","domain","primaryType","timestamp","typeDefinition","definedTypes","message","addOrderlyKeyMessage","publicKey","expiration","scope","tag","__spreadValues","registerAccountMessage","registrationNonce","settleMessage","settlePnlNonce","DefaultEVMAdapterWalletAdapter","BaseWalletAdapter","web3Provider","__publicField","ChainNamespace","chainId","config","privKey","secretKey","bs58encode","name","data","toSignatureMessage","__async","inputs","message","registerAccountMessage","__spreadProps","__spreadValues","signedMessage","addOrderlyKeyMessage","domain","withdrawMessage","settleMessage","address","method","params","options","contractAddress","payload","chain","onChainDomain","txHash","baseInterval","maxInterval","maxRetries"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@orderly.network/default-evm-adapter",
|
|
3
|
+
"version": "2.0.0-alpha.1",
|
|
4
|
+
"description": "",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"module": "dist/index.mjs",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist"
|
|
10
|
+
],
|
|
11
|
+
"publishConfig": {
|
|
12
|
+
"access": "public"
|
|
13
|
+
},
|
|
14
|
+
"dependencies": {
|
|
15
|
+
"@noble/ed25519": "^2.0.0",
|
|
16
|
+
"bs58": "^5.0.0",
|
|
17
|
+
"@orderly.network/core": "2.0.0-alpha.1",
|
|
18
|
+
"@orderly.network/types": "2.0.0-alpha.1"
|
|
19
|
+
},
|
|
20
|
+
"devDependencies": {
|
|
21
|
+
"jest": "^29.7.0",
|
|
22
|
+
"tsup": "^7.1.0",
|
|
23
|
+
"typescript": "^5.1.6",
|
|
24
|
+
"tsconfig": "0.3.12"
|
|
25
|
+
},
|
|
26
|
+
"keywords": [
|
|
27
|
+
"Orderly",
|
|
28
|
+
"EVM",
|
|
29
|
+
"DEFI"
|
|
30
|
+
],
|
|
31
|
+
"scripts": {
|
|
32
|
+
"build": "tsup",
|
|
33
|
+
"dev": "tsup --watch",
|
|
34
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
35
|
+
}
|
|
36
|
+
}
|