@ritbit/v4-client-js 2.5.2 → 2.6.0
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/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/models.js +19 -3
- package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/params.js +28 -3
- package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/tx.js +92 -5
- package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/tx.rpc.msg.js +7 -1
- package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/assets/tx.js +19 -3
- package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/bridge/tx.js +1 -1
- package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/denomwrap/params.js +134 -0
- package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/denomwrap/tx.js +204 -0
- package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/denomwrap/tx.rpc.msg.js +57 -0
- package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/lcd.js +4 -1
- package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/rpc.query.js +3 -2
- package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/rpc.tx.js +4 -2
- package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/sending/tx.js +1 -1
- package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/genesis.js +151 -0
- package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/params.js +134 -0
- package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/query.js +248 -0
- package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/query.lcd.js +34 -0
- package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/query.rpc.Query.js +71 -0
- package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/tx.js +282 -0
- package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/tx.rpc.msg.js +63 -0
- package/build/cjs/src/clients/composite-client.js +7 -3
- package/build/cjs/src/clients/constants.js +15 -3
- package/build/cjs/src/clients/lib/accounts.js +44 -5
- package/build/cjs/src/clients/lib/agent-approval-tx.js +83 -0
- package/build/cjs/src/clients/lib/agent-approval.js +119 -0
- package/build/cjs/src/clients/lib/eip712.js +592 -0
- package/build/cjs/src/clients/lib/eth-pubkey.js +68 -0
- package/build/cjs/src/clients/modules/composer.js +15 -2
- package/build/cjs/src/clients/modules/eip712-signer.js +189 -0
- package/build/cjs/src/clients/modules/eth-agent-wallet.js +101 -0
- package/build/cjs/src/clients/modules/eth-wallet.js +91 -0
- package/build/cjs/src/clients/modules/local-wallet.js +9 -2
- package/build/cjs/src/clients/modules/post.js +14 -4
- package/build/cjs/src/clients/modules/signer.js +7 -2
- package/build/cjs/src/index.js +38 -2
- package/build/cjs/src/lib/evm-address.js +92 -0
- package/build/cjs/src/lib/trading-key-utils.js +41 -3
- package/build/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/models.d.ts +15 -0
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/models.d.ts.map +1 -1
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/models.js +19 -3
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/params.d.ts +24 -1
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/params.d.ts.map +1 -1
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/params.js +28 -3
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/tx.d.ts +43 -1
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/tx.d.ts.map +1 -1
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/tx.js +91 -4
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/tx.rpc.msg.d.ts +4 -1
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/tx.rpc.msg.d.ts.map +1 -1
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/tx.rpc.msg.js +8 -2
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/assets/tx.d.ts +9 -0
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/assets/tx.d.ts.map +1 -1
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/assets/tx.js +19 -3
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/bridge/tx.d.ts +14 -1
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/bridge/tx.d.ts.map +1 -1
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/bridge/tx.js +1 -1
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/denomwrap/params.d.ts +116 -0
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/denomwrap/params.d.ts.map +1 -0
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/denomwrap/params.js +98 -0
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/denomwrap/tx.d.ts +80 -0
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/denomwrap/tx.d.ts.map +1 -0
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/denomwrap/tx.js +168 -0
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/denomwrap/tx.rpc.msg.d.ts +21 -0
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/denomwrap/tx.rpc.msg.d.ts.map +1 -0
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/denomwrap/tx.rpc.msg.js +20 -0
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/lcd.d.ts +1 -0
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/lcd.d.ts.map +1 -1
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/lcd.js +4 -1
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/rpc.query.d.ts +4 -0
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/rpc.query.d.ts.map +1 -1
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/rpc.query.js +3 -2
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/rpc.tx.d.ts +2 -0
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/rpc.tx.d.ts.map +1 -1
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/rpc.tx.js +4 -2
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/sending/tx.d.ts +0 -1
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/sending/tx.d.ts.map +1 -1
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/sending/tx.js +1 -1
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/genesis.d.ts +79 -0
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/genesis.d.ts.map +1 -0
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/genesis.js +115 -0
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/params.d.ts +116 -0
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/params.d.ts.map +1 -0
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/params.js +98 -0
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/query.d.ts +82 -0
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/query.d.ts.map +1 -0
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/query.js +212 -0
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/query.lcd.d.ts +11 -0
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/query.lcd.d.ts.map +1 -0
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/query.lcd.js +30 -0
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/query.rpc.Query.d.ts +29 -0
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/query.rpc.Query.d.ts.map +1 -0
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/query.rpc.Query.js +33 -0
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/tx.d.ts +123 -0
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/tx.d.ts.map +1 -0
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/tx.js +246 -0
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/tx.rpc.msg.d.ts +36 -0
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/tx.rpc.msg.d.ts.map +1 -0
- package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/tx.rpc.msg.js +26 -0
- package/build/esm/src/clients/composite-client.d.ts +6 -1
- package/build/esm/src/clients/composite-client.d.ts.map +1 -1
- package/build/esm/src/clients/composite-client.js +7 -3
- package/build/esm/src/clients/constants.d.ts +13 -1
- package/build/esm/src/clients/constants.d.ts.map +1 -1
- package/build/esm/src/clients/constants.js +13 -1
- package/build/esm/src/clients/lib/accounts.d.ts +4 -3
- package/build/esm/src/clients/lib/accounts.d.ts.map +1 -1
- package/build/esm/src/clients/lib/accounts.js +44 -5
- package/build/esm/src/clients/lib/agent-approval-tx.d.ts +46 -0
- package/build/esm/src/clients/lib/agent-approval-tx.d.ts.map +1 -0
- package/build/esm/src/clients/lib/agent-approval-tx.js +79 -0
- package/build/esm/src/clients/lib/agent-approval.d.ts +64 -0
- package/build/esm/src/clients/lib/agent-approval.d.ts.map +1 -0
- package/build/esm/src/clients/lib/agent-approval.js +112 -0
- package/build/esm/src/clients/lib/eip712.d.ts +95 -0
- package/build/esm/src/clients/lib/eip712.d.ts.map +1 -0
- package/build/esm/src/clients/lib/eip712.js +581 -0
- package/build/esm/src/clients/lib/eth-pubkey.d.ts +44 -0
- package/build/esm/src/clients/lib/eth-pubkey.d.ts.map +1 -0
- package/build/esm/src/clients/lib/eth-pubkey.js +61 -0
- package/build/esm/src/clients/modules/composer.d.ts +12 -1
- package/build/esm/src/clients/modules/composer.d.ts.map +1 -1
- package/build/esm/src/clients/modules/composer.js +15 -2
- package/build/esm/src/clients/modules/eip712-signer.d.ts +99 -0
- package/build/esm/src/clients/modules/eip712-signer.d.ts.map +1 -0
- package/build/esm/src/clients/modules/eip712-signer.js +183 -0
- package/build/esm/src/clients/modules/eth-agent-wallet.d.ts +39 -0
- package/build/esm/src/clients/modules/eth-agent-wallet.d.ts.map +1 -0
- package/build/esm/src/clients/modules/eth-agent-wallet.js +97 -0
- package/build/esm/src/clients/modules/eth-wallet.d.ts +32 -0
- package/build/esm/src/clients/modules/eth-wallet.d.ts.map +1 -0
- package/build/esm/src/clients/modules/eth-wallet.js +83 -0
- package/build/esm/src/clients/modules/local-wallet.d.ts +2 -1
- package/build/esm/src/clients/modules/local-wallet.d.ts.map +1 -1
- package/build/esm/src/clients/modules/local-wallet.js +9 -2
- package/build/esm/src/clients/modules/post.d.ts +1 -1
- package/build/esm/src/clients/modules/post.d.ts.map +1 -1
- package/build/esm/src/clients/modules/post.js +14 -4
- package/build/esm/src/clients/modules/signer.d.ts +2 -1
- package/build/esm/src/clients/modules/signer.d.ts.map +1 -1
- package/build/esm/src/clients/modules/signer.js +7 -2
- package/build/esm/src/index.d.ts +13 -0
- package/build/esm/src/index.d.ts.map +1 -1
- package/build/esm/src/index.js +9 -1
- package/build/esm/src/lib/evm-address.d.ts +31 -0
- package/build/esm/src/lib/evm-address.d.ts.map +1 -0
- package/build/esm/src/lib/evm-address.js +85 -0
- package/build/esm/src/lib/trading-key-utils.d.ts +3 -0
- package/build/esm/src/lib/trading-key-utils.d.ts.map +1 -1
- package/build/esm/src/lib/trading-key-utils.js +42 -4
- package/build/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AAGxB,OAAO,KAAK,OAAO,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,eAAe,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,KAAK,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,cAAc,IAAI,gBAAgB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AAGxB,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,OAAO,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,eAAe,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,KAAK,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EACL,OAAO,IAAI,cAAc,EACzB,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,uBAAuB,EACvB,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,4BAA4B,EAC5B,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,eAAe,EACf,eAAe,EACf,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,YAAY,EACZ,mCAAmC,EACnC,sBAAsB,GACvB,MAAM,iCAAiC,CAAC;AACzC,YAAY,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAChG,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAC7B,2BAA2B,EAC3B,wBAAwB,EACxB,wBAAwB,EACxB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EACL,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,iCAAiC,CAAC;AACzC,YAAY,EACV,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,cAAc,IAAI,gBAAgB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC"}
|
package/build/esm/src/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// Types.
|
|
2
2
|
export * from './types';
|
|
3
3
|
// Utility functions.
|
|
4
|
+
export * as evmAddress from './lib/evm-address';
|
|
4
5
|
export * as helpers from './lib/helpers';
|
|
5
6
|
export * as onboarding from './lib/onboarding';
|
|
6
7
|
export * as tradingKeyUtils from './lib/trading-key-utils';
|
|
@@ -10,6 +11,13 @@ export { CompositeClient } from './clients/composite-client';
|
|
|
10
11
|
export { FaucetClient } from './clients/faucet-client';
|
|
11
12
|
export { IndexerClient } from './clients/indexer-client';
|
|
12
13
|
export { default as LocalWallet } from './clients/modules/local-wallet';
|
|
14
|
+
export { default as EthLocalWallet, DirectEthSecp256k1Signer, ETH_BIP44_HD_PATH, } from './clients/modules/eth-wallet';
|
|
15
|
+
export { encodeEthSecp256k1Pubkey, isEthSecp256k1Pubkey, ethSecp256k1PubkeyToAny, ETH_SECP256K1_PUBKEY_TYPE, ETH_SECP256K1_PUBKEY_TYPE_URL, } from './clients/lib/eth-pubkey';
|
|
16
|
+
export { createEip712Domain, eip712Digest, registerEip712AminoConverter, signDocBytesToEip712TypedData, signDocToEip712TypedData, } from './clients/lib/eip712';
|
|
17
|
+
export { Eip712Signer, recoverPubKeyFromTypedDataSignature, signCosmosTxWithEip712, } from './clients/modules/eip712-signer';
|
|
18
|
+
export { AGENT_APPROVAL_DOMAIN_NAME, AGENT_APPROVAL_DOMAIN_VERSION, AGENT_APPROVAL_PRIMARY_TYPE, AGENT_AUTHENTICATOR_TYPE, AGENT_REVOCATION_ADDRESS, agentAddressBytes, agentAddressToHex, agentApprovalDigest, agentApprovalTypedData, } from './clients/lib/agent-approval';
|
|
19
|
+
export { composeAgentApprovalMsg, signAgentApprovalTx, } from './clients/lib/agent-approval-tx';
|
|
20
|
+
export { EthAgentWallet } from './clients/modules/eth-agent-wallet';
|
|
13
21
|
export { NobleClient } from './clients/noble-client';
|
|
14
22
|
export { SocketClient } from './clients/socket-client';
|
|
15
23
|
export { SubaccountInfo as SubaccountClient, SubaccountInfo } from './clients/subaccount';
|
|
@@ -19,4 +27,4 @@ export { NetworkOptimizer } from './network_optimizer';
|
|
|
19
27
|
// Dual / multi-asset collateral helpers.
|
|
20
28
|
export * from './clients/helpers/asset-registry';
|
|
21
29
|
export * from './clients/helpers/collateral';
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUztBQUNULGNBQWMsU0FBUyxDQUFDO0FBRXhCLHFCQUFxQjtBQUNyQixPQUFPLEtBQUssVUFBVSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxVQUFVLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxLQUFLLGVBQWUsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRCxPQUFPLEtBQUssS0FBSyxNQUFNLGFBQWEsQ0FBQztBQUNyQyxPQUFPLEtBQUssVUFBVSxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxPQUFPLElBQUksV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEUsT0FBTyxFQUNMLE9BQU8sSUFBSSxjQUFjLEVBQ3pCLHdCQUF3QixFQUN4QixpQkFBaUIsR0FDbEIsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLG9CQUFvQixFQUNwQix1QkFBdUIsRUFDdkIseUJBQXlCLEVBQ3pCLDZCQUE2QixHQUM5QixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLDRCQUE0QixFQUM1Qiw2QkFBNkIsRUFDN0Isd0JBQXdCLEdBQ3pCLE1BQU0sc0JBQXNCLENBQUM7QUFTOUIsT0FBTyxFQUNMLFlBQVksRUFDWixtQ0FBbUMsRUFDbkMsc0JBQXNCLEdBQ3ZCLE1BQU0saUNBQWlDLENBQUM7QUFFekMsT0FBTyxFQUNMLDBCQUEwQixFQUMxQiw2QkFBNkIsRUFDN0IsMkJBQTJCLEVBQzNCLHdCQUF3QixFQUN4Qix3QkFBd0IsRUFDeEIsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDbkIsc0JBQXNCLEdBQ3ZCLE1BQU0sOEJBQThCLENBQUM7QUFFdEMsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixtQkFBbUIsR0FDcEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUt6QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxJQUFJLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXZELHlDQUF5QztBQUN6QyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsOEJBQThCLENBQUMifQ==
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Derive the ethereum-style 20-byte address from a secp256k1
|
|
3
|
+
* public key (compressed 33-byte or uncompressed 65-byte form).
|
|
4
|
+
*
|
|
5
|
+
* @returns keccak256(uncompressed pubkey without the 04 prefix)[12:].
|
|
6
|
+
*/
|
|
7
|
+
export declare function ethAddressBytesFromPubkey(pubkey: Uint8Array): Uint8Array;
|
|
8
|
+
/**
|
|
9
|
+
* @description Apply the EIP-55 mixed-case checksum to a hex address.
|
|
10
|
+
*
|
|
11
|
+
* @returns Checksummed address with 0x prefix.
|
|
12
|
+
*/
|
|
13
|
+
export declare function toChecksumEthAddress(ethAddress: string): string;
|
|
14
|
+
/**
|
|
15
|
+
* @description An address is valid if it is 0x + 40 hex characters and, when
|
|
16
|
+
* mixed-case, carries a correct EIP-55 checksum. All-lowercase and
|
|
17
|
+
* all-uppercase addresses are accepted as checksum-less.
|
|
18
|
+
*/
|
|
19
|
+
export declare function isValidEthAddress(address: string): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* @description Convert a 0x address to its bech32 representation (the same 20
|
|
22
|
+
* bytes). Accepts the address with or without the 0x prefix; a mixed-case
|
|
23
|
+
* address must carry a valid EIP-55 checksum.
|
|
24
|
+
*/
|
|
25
|
+
export declare function ethAddressToBech32(ethAddress: string, prefix?: string): string;
|
|
26
|
+
/**
|
|
27
|
+
* @description Convert a bech32 account address to its 0x representation (the
|
|
28
|
+
* same 20 bytes) with EIP-55 checksum casing.
|
|
29
|
+
*/
|
|
30
|
+
export declare function bech32ToEthAddress(address: string): string;
|
|
31
|
+
//# sourceMappingURL=evm-address.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evm-address.d.ts","sourceRoot":"","sources":["../../../../src/lib/evm-address.ts"],"names":[],"mappings":"AAiBA;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAOxE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAW/D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAS1D;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,GAAE,MAAsB,GAAG,MAAM,CAS7F;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQ1D"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { fromBech32, fromHex, toBech32, toHex } from '@cosmjs/encoding';
|
|
2
|
+
import { keccak256 } from 'ethereum-cryptography/keccak';
|
|
3
|
+
import { secp256k1 } from 'ethereum-cryptography/secp256k1';
|
|
4
|
+
import { BECH32_PREFIX } from './constants';
|
|
5
|
+
import { stripHexPrefix } from './helpers';
|
|
6
|
+
/**
|
|
7
|
+
* Ethereum-style address helpers for the 0x == rit1 wallet model: an
|
|
8
|
+
* eth_secp256k1 account's address is keccak256(uncompressed pubkey without the
|
|
9
|
+
* 04 prefix)[12:], and the 0x and bech32 representations are the same 20
|
|
10
|
+
* bytes.
|
|
11
|
+
*/
|
|
12
|
+
const ETH_ADDRESS_BYTE_LENGTH = 20;
|
|
13
|
+
const ETH_ADDRESS_REGEX = /^(0x)?[0-9a-fA-F]{40}$/;
|
|
14
|
+
/**
|
|
15
|
+
* @description Derive the ethereum-style 20-byte address from a secp256k1
|
|
16
|
+
* public key (compressed 33-byte or uncompressed 65-byte form).
|
|
17
|
+
*
|
|
18
|
+
* @returns keccak256(uncompressed pubkey without the 04 prefix)[12:].
|
|
19
|
+
*/
|
|
20
|
+
export function ethAddressBytesFromPubkey(pubkey) {
|
|
21
|
+
const uncompressed = pubkey.length === 65 && pubkey[0] === 0x04
|
|
22
|
+
? pubkey
|
|
23
|
+
: secp256k1.ProjectivePoint.fromHex(pubkey).toRawBytes(false);
|
|
24
|
+
// Last 20 bytes of the 32-byte keccak hash.
|
|
25
|
+
return keccak256(uncompressed.slice(1)).slice(-ETH_ADDRESS_BYTE_LENGTH);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* @description Apply the EIP-55 mixed-case checksum to a hex address.
|
|
29
|
+
*
|
|
30
|
+
* @returns Checksummed address with 0x prefix.
|
|
31
|
+
*/
|
|
32
|
+
export function toChecksumEthAddress(ethAddress) {
|
|
33
|
+
const hex = stripHexPrefix(ethAddress).toLowerCase();
|
|
34
|
+
if (!ETH_ADDRESS_REGEX.test(hex)) {
|
|
35
|
+
throw new Error(`Invalid ethereum address: ${ethAddress}`);
|
|
36
|
+
}
|
|
37
|
+
const hash = toHex(keccak256(new Uint8Array(Buffer.from(hex, 'ascii'))));
|
|
38
|
+
let checksummed = '';
|
|
39
|
+
for (let i = 0; i < hex.length; i++) {
|
|
40
|
+
checksummed += parseInt(hash[i], 16) >= 8 ? hex[i].toUpperCase() : hex[i];
|
|
41
|
+
}
|
|
42
|
+
return `0x${checksummed}`;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* @description An address is valid if it is 0x + 40 hex characters and, when
|
|
46
|
+
* mixed-case, carries a correct EIP-55 checksum. All-lowercase and
|
|
47
|
+
* all-uppercase addresses are accepted as checksum-less.
|
|
48
|
+
*/
|
|
49
|
+
export function isValidEthAddress(address) {
|
|
50
|
+
if (!/^0x[0-9a-fA-F]{40}$/.test(address)) {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
const hex = address.slice(2);
|
|
54
|
+
if (hex === hex.toLowerCase() || hex === hex.toUpperCase()) {
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
return address === toChecksumEthAddress(address);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* @description Convert a 0x address to its bech32 representation (the same 20
|
|
61
|
+
* bytes). Accepts the address with or without the 0x prefix; a mixed-case
|
|
62
|
+
* address must carry a valid EIP-55 checksum.
|
|
63
|
+
*/
|
|
64
|
+
export function ethAddressToBech32(ethAddress, prefix = BECH32_PREFIX) {
|
|
65
|
+
const hex = stripHexPrefix(ethAddress);
|
|
66
|
+
if (!ETH_ADDRESS_REGEX.test(hex)) {
|
|
67
|
+
throw new Error(`Invalid ethereum address: ${ethAddress}`);
|
|
68
|
+
}
|
|
69
|
+
if (hex !== hex.toLowerCase() && hex !== hex.toUpperCase() && !isValidEthAddress(`0x${hex}`)) {
|
|
70
|
+
throw new Error(`Invalid EIP-55 checksum in ethereum address: ${ethAddress}`);
|
|
71
|
+
}
|
|
72
|
+
return toBech32(prefix, fromHex(hex.toLowerCase()));
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* @description Convert a bech32 account address to its 0x representation (the
|
|
76
|
+
* same 20 bytes) with EIP-55 checksum casing.
|
|
77
|
+
*/
|
|
78
|
+
export function bech32ToEthAddress(address) {
|
|
79
|
+
const { data } = fromBech32(address);
|
|
80
|
+
if (data.length !== ETH_ADDRESS_BYTE_LENGTH) {
|
|
81
|
+
throw new Error(`Address ${address} decodes to ${data.length} bytes, expected ${ETH_ADDRESS_BYTE_LENGTH}`);
|
|
82
|
+
}
|
|
83
|
+
return toChecksumEthAddress(toHex(data));
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZtLWFkZHJlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2V2bS1hZGRyZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUUzQzs7Ozs7R0FLRztBQUVILE1BQU0sdUJBQXVCLEdBQUcsRUFBRSxDQUFDO0FBQ25DLE1BQU0saUJBQWlCLEdBQUcsd0JBQXdCLENBQUM7QUFFbkQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUseUJBQXlCLENBQUMsTUFBa0I7SUFDMUQsTUFBTSxZQUFZLEdBQ2hCLE1BQU0sQ0FBQyxNQUFNLEtBQUssRUFBRSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJO1FBQ3hDLENBQUMsQ0FBQyxNQUFNO1FBQ1IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsRSw0Q0FBNEM7SUFDNUMsT0FBTyxTQUFTLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQUM7QUFDMUUsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsVUFBa0I7SUFDckQsTUFBTSxHQUFHLEdBQUcsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFdBQVcsRUFB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
|
|
@@ -17,6 +17,9 @@ export declare const getAuthorizedTradingKeysMetadata: (authorizedKeys: Awaited<
|
|
|
17
17
|
id: string;
|
|
18
18
|
publicKey: string;
|
|
19
19
|
address: string;
|
|
20
|
+
name: string;
|
|
21
|
+
/** Unix seconds; 0 when the key never expires. */
|
|
22
|
+
expiresAt: number;
|
|
20
23
|
}>;
|
|
21
24
|
export {};
|
|
22
25
|
//# sourceMappingURL=trading-key-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trading-key-utils.d.ts","sourceRoot":"","sources":["../../../../src/lib/trading-key-utils.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,iBAAiB,
|
|
1
|
+
{"version":3,"file":"trading-key-utils.d.ts","sourceRoot":"","sources":["../../../../src/lib/trading-key-utils.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,iBAAiB,EAOlB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAKlD,eAAO,MAAM,0BAA0B,QAAa,OAAO,CACzD;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAwB5F,CAAC;AAIF,eAAO,MAAM,kCAAkC,GAAI,4BAEhD;IACD,qBAAqB,EAAE,MAAM,CAAC;CAC/B,KAAG;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAoE9C,CAAC;AAGF,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAIrD,eAAO,MAAM,gCAAgC,GAC3C,gBAAgB,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,KACrF,KAAK,CAAC;IACP,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;CACnB,CAkDA,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { fromBase64, toBase64, toBech32, toHex } from '@cosmjs/encoding';
|
|
|
2
2
|
import { rawSecp256k1PubkeyToRawAddress } from '@cosmjs/tendermint-rpc';
|
|
3
3
|
import { generateMnemonic } from '@scure/bip39';
|
|
4
4
|
import { wordlist } from '@scure/bip39/wordlists/english';
|
|
5
|
-
import { AuthenticatorType, TYPE_URL_BATCH_CANCEL, TYPE_URL_MSG_CANCEL_ORDER, TYPE_URL_MSG_PLACE_ORDER, } from '../clients/constants';
|
|
5
|
+
import { AuthenticatorType, TYPE_URL_BATCH_CANCEL, TYPE_URL_MSG_CANCEL_ORDER, TYPE_URL_MSG_CREATE_TRANSFER, TYPE_URL_MSG_DEPOSIT_TO_SUBACCOUNT, TYPE_URL_MSG_PLACE_ORDER, TYPE_URL_MSG_WITHDRAW_FROM_SUBACCOUNT, } from '../clients/constants';
|
|
6
6
|
import LocalWallet from '../clients/modules/local-wallet';
|
|
7
7
|
import { BECH32_PREFIX } from './constants';
|
|
8
8
|
import { deriveHDKeyFromMnemonic } from './onboarding';
|
|
@@ -44,6 +44,22 @@ export const getAuthorizeNewTradingKeyArguments = ({ generatedWalletPubKey, }) =
|
|
|
44
44
|
type: AuthenticatorType.MESSAGE_FILTER,
|
|
45
45
|
config: wrapAndEncode64(TYPE_URL_BATCH_CANCEL),
|
|
46
46
|
},
|
|
47
|
+
// Fund movements *within* the account: topping the subaccount up from the
|
|
48
|
+
// wallet, pulling the gas reserve back, moving margin between subaccounts.
|
|
49
|
+
// Safe only because SelfTransferFilter below pins both parties to the owner
|
|
50
|
+
// — on their own these three would let the key send funds to a stranger.
|
|
51
|
+
{
|
|
52
|
+
type: AuthenticatorType.MESSAGE_FILTER,
|
|
53
|
+
config: wrapAndEncode64(TYPE_URL_MSG_DEPOSIT_TO_SUBACCOUNT),
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
type: AuthenticatorType.MESSAGE_FILTER,
|
|
57
|
+
config: wrapAndEncode64(TYPE_URL_MSG_WITHDRAW_FROM_SUBACCOUNT),
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
type: AuthenticatorType.MESSAGE_FILTER,
|
|
61
|
+
config: wrapAndEncode64(TYPE_URL_MSG_CREATE_TRANSFER),
|
|
62
|
+
},
|
|
47
63
|
];
|
|
48
64
|
const anyOfMessageFilterConfigB64 = wrapAndEncode64(JSON.stringify(messageFilterSubAuth));
|
|
49
65
|
const subAuth = [
|
|
@@ -61,6 +77,13 @@ export const getAuthorizeNewTradingKeyArguments = ({ generatedWalletPubKey, }) =
|
|
|
61
77
|
type: AuthenticatorType.SUBACCOUNT_FILTER,
|
|
62
78
|
config: wrapAndEncode64('0'),
|
|
63
79
|
},
|
|
80
|
+
// Money may move inside the account and nowhere else. SubaccountFilter above
|
|
81
|
+
// only inspects the three clob messages, so without this the transfer
|
|
82
|
+
// messages would be unconstrained.
|
|
83
|
+
{
|
|
84
|
+
type: AuthenticatorType.SELF_TRANSFER_FILTER,
|
|
85
|
+
config: '',
|
|
86
|
+
},
|
|
64
87
|
];
|
|
65
88
|
const jsonString = JSON.stringify(subAuth);
|
|
66
89
|
const encodedData = new TextEncoder().encode(jsonString);
|
|
@@ -74,8 +97,8 @@ const isTruthy = (n) => Boolean(n);
|
|
|
74
97
|
// just parses out keys that match the format created in getAuthorizeNewTradingKeyArguments
|
|
75
98
|
export const getAuthorizedTradingKeysMetadata = (authorizedKeys) => {
|
|
76
99
|
return authorizedKeys
|
|
77
|
-
.map(({ config, id, type }) => {
|
|
78
|
-
var _a;
|
|
100
|
+
.map(({ config, id, type, name, expiresAt }) => {
|
|
101
|
+
var _a, _b;
|
|
79
102
|
if (type !== AuthenticatorType.ALL_OF) {
|
|
80
103
|
return null;
|
|
81
104
|
}
|
|
@@ -83,7 +106,20 @@ export const getAuthorizedTradingKeysMetadata = (authorizedKeys) => {
|
|
|
83
106
|
if (parsedConfig == null) {
|
|
84
107
|
return null;
|
|
85
108
|
}
|
|
109
|
+
// Two ways a key can be authorized. A public key is the original form;
|
|
110
|
+
// an address is the agent form, where the key is recovered from each
|
|
111
|
+
// signature instead of being stored (see EthAddressSignatureVerification).
|
|
86
112
|
const publicKey = (_a = parsedConfig.find((t) => t.type === AuthenticatorType.SIGNATURE_VERIFICATION)) === null || _a === void 0 ? void 0 : _a.config;
|
|
113
|
+
const agentAddress = (_b = parsedConfig.find((t) => t.type === AuthenticatorType.ETH_ADDRESS_SIGNATURE_VERIFICATION)) === null || _b === void 0 ? void 0 : _b.config;
|
|
114
|
+
if (typeof agentAddress === 'string') {
|
|
115
|
+
return {
|
|
116
|
+
id: id.toString(),
|
|
117
|
+
publicKey: '',
|
|
118
|
+
address: toBech32(BECH32_PREFIX, fromBase64(agentAddress)),
|
|
119
|
+
name: name !== null && name !== void 0 ? name : '',
|
|
120
|
+
expiresAt: expiresAt == null ? 0 : Number(expiresAt.toString()),
|
|
121
|
+
};
|
|
122
|
+
}
|
|
87
123
|
if (publicKey == null || typeof publicKey !== 'string') {
|
|
88
124
|
return null;
|
|
89
125
|
}
|
|
@@ -92,8 +128,10 @@ export const getAuthorizedTradingKeysMetadata = (authorizedKeys) => {
|
|
|
92
128
|
id: id.toString(),
|
|
93
129
|
publicKey,
|
|
94
130
|
address,
|
|
131
|
+
name: name !== null && name !== void 0 ? name : '',
|
|
132
|
+
expiresAt: expiresAt == null ? 0 : Number(expiresAt.toString()),
|
|
95
133
|
};
|
|
96
134
|
})
|
|
97
135
|
.filter(isTruthy);
|
|
98
136
|
};
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhZGluZy1rZXktdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3RyYWRpbmcta2V5LXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTFELE9BQU8sRUFFTCxpQkFBaUIsRUFDakIscUJBQXFCLEVBQ3JCLHlCQUF5QixFQUN6Qiw0QkFBNEIsRUFDNUIsa0NBQWtDLEVBQ2xDLHdCQUF3QixFQUN4QixxQ0FBcUMsR0FDdEMsTUFBTSxzQkFBc0IsQ0FBQztBQUc5QixPQUFPLFdBQVcsTUFBTSxpQ0FBaUMsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV2RCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxLQUFLLElBRTdDLEVBQUU7SUFDRixNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDakQsTUFBTSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsR0FBRyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4RSxNQUFNLE1BQU0sR0FBRyxNQUFNLFdBQVcsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBRXZFLE1BQU0sYUFBYSxHQUFHLGFBQWEsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLGFBQWEsQ0FB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
|