@folks-finance/xchain-sdk 0.0.50 → 0.0.52
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/chains/evm/hub/modules/folks-hub-oracle.d.ts +2 -1
- package/dist/chains/evm/hub/modules/folks-hub-oracle.js +6 -0
- package/dist/chains/evm/hub/modules/folks-hub-oracle.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/xchain/modules/folks-gmp.js +4 -2
- package/dist/xchain/modules/folks-gmp.js.map +1 -1
- package/dist/xchain/modules/folks-oracle.d.ts +4 -2
- package/dist/xchain/modules/folks-oracle.js +10 -3
- package/dist/xchain/modules/folks-oracle.js.map +1 -1
- package/package.json +1 -1
- package/src/chains/evm/hub/modules/folks-hub-oracle.ts +10 -1
- package/src/index.ts +1 -1
- package/src/xchain/modules/folks-gmp.ts +5 -2
- package/src/xchain/modules/folks-oracle.ts +15 -4
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { NetworkType } from "../../../../common/types/chain.js";
|
|
2
|
-
import type { OraclePrices } from "../types/oracle.js";
|
|
2
|
+
import type { OraclePrice, OraclePrices } from "../types/oracle.js";
|
|
3
3
|
import type { HubTokenData } from "../types/token.js";
|
|
4
4
|
import type { Client } from "viem";
|
|
5
|
+
export declare function getOraclePrice(provider: Client, network: NetworkType, poolId: number): Promise<OraclePrice>;
|
|
5
6
|
export declare function getOraclePrices(provider: Client, network: NetworkType, tokens: Array<HubTokenData>): Promise<OraclePrices>;
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { multicall } from "viem/actions";
|
|
2
2
|
import { getHubChain } from "../utils/chain.js";
|
|
3
3
|
import { getOracleManagerContract } from "../utils/contract.js";
|
|
4
|
+
export async function getOraclePrice(provider, network, poolId) {
|
|
5
|
+
const hubChain = getHubChain(network);
|
|
6
|
+
const oracleManager = getOracleManagerContract(provider, hubChain.oracleManagerAddress);
|
|
7
|
+
const { price, decimals } = await oracleManager.read.processPriceFeed([poolId]);
|
|
8
|
+
return { price: [price, 18], decimals };
|
|
9
|
+
}
|
|
4
10
|
export async function getOraclePrices(provider, network, tokens) {
|
|
5
11
|
const hubChain = getHubChain(network);
|
|
6
12
|
const oracleManager = getOracleManagerContract(provider, hubChain.oracleManagerAddress);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"folks-hub-oracle.js","sourceRoot":"","sources":["../../../../../src/chains/evm/hub/modules/folks-hub-oracle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAQhE,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAAgB,EAChB,OAAoB,EACpB,MAA2B;IAE3B,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,aAAa,GAAG,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IAExF,MAAM,iBAAiB,GAAsC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QACvF,OAAO,EAAE,aAAa,CAAC,OAAO;QAC9B,GAAG,EAAE,aAAa,CAAC,GAAG;QACtB,YAAY,EAAE,kBAAkB;QAChC,IAAI,EAAE,CAAC,MAAM,CAAC;KACf,CAAC,CAAC,CAAC;IAEJ,MAAM,UAAU,GAAG,CAAC,MAAM,SAAS,CAAC,QAAQ,EAAE;QAC5C,SAAS,EAAE,iBAAiB;QAC5B,YAAY,EAAE,KAAK;KACpB,CAAC,CAA+E,CAAC;IAElF,MAAM,YAAY,GAAiB,EAAE,CAAC;IACtC,KAAK,MAAM,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;QAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC;IACtE,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC"}
|
|
1
|
+
{"version":3,"file":"folks-hub-oracle.js","sourceRoot":"","sources":["../../../../../src/chains/evm/hub/modules/folks-hub-oracle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAQhE,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAgB,EAAE,OAAoB,EAAE,MAAc;IACzF,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAEtC,MAAM,aAAa,GAAG,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IAExF,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAChF,OAAO,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAAgB,EAChB,OAAoB,EACpB,MAA2B;IAE3B,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,aAAa,GAAG,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IAExF,MAAM,iBAAiB,GAAsC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QACvF,OAAO,EAAE,aAAa,CAAC,OAAO;QAC9B,GAAG,EAAE,aAAa,CAAC,GAAG;QACtB,YAAY,EAAE,kBAAkB;QAChC,IAAI,EAAE,CAAC,MAAM,CAAC;KACf,CAAC,CAAC,CAAC;IAEJ,MAAM,UAAU,GAAG,CAAC,MAAM,SAAS,CAAC,QAAQ,EAAE;QAC5C,SAAS,EAAE,iBAAiB;QAC5B,YAAY,EAAE,KAAK;KACpB,CAAC,CAA+E,CAAC;IAElF,MAAM,YAAY,GAAiB,EAAE,CAAC;IACtC,KAAK,MAAM,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;QAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC;IACtE,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export { getSupportedMessageAdapters } from "./common/utils/adapter.js";
|
|
|
17
17
|
export { convertFromGenericAddress, convertToGenericAddress } from "./common/utils/address.js";
|
|
18
18
|
export { buildAccountId, buildLoanId } from "./common/utils/lending.js";
|
|
19
19
|
export { getAdapterAddress } from "./common/utils/chain.js";
|
|
20
|
-
export { toFAmount, toUnderlyingAmount } from "./common/utils/formulae.js";
|
|
20
|
+
export { toFAmount, toUnderlyingAmount, calcAssetDollarValue } from "./common/utils/formulae.js";
|
|
21
21
|
export { getCcipData, getWormholeData } from "./common/utils/gmp.js";
|
|
22
22
|
export { getOperationIdsByTransaction, waitOperationIds } from "./common/utils/messages.js";
|
|
23
23
|
export { waitTransaction } from "./common/utils/transaction.js";
|
package/dist/index.js
CHANGED
|
@@ -20,7 +20,7 @@ export { getSupportedMessageAdapters } from "./common/utils/adapter.js";
|
|
|
20
20
|
export { convertFromGenericAddress, convertToGenericAddress } from "./common/utils/address.js";
|
|
21
21
|
export { buildAccountId, buildLoanId } from "./common/utils/lending.js";
|
|
22
22
|
export { getAdapterAddress } from "./common/utils/chain.js";
|
|
23
|
-
export { toFAmount, toUnderlyingAmount } from "./common/utils/formulae.js";
|
|
23
|
+
export { toFAmount, toUnderlyingAmount, calcAssetDollarValue } from "./common/utils/formulae.js";
|
|
24
24
|
export { getCcipData, getWormholeData } from "./common/utils/gmp.js";
|
|
25
25
|
export { getOperationIdsByTransaction, waitOperationIds } from "./common/utils/messages.js";
|
|
26
26
|
export { waitTransaction } from "./common/utils/transaction.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD,kBAAkB;AAClB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEpH,iBAAiB;AACjB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AAExC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAE9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAC/F,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD,kBAAkB;AAClB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEpH,iBAAiB;AACjB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AAExC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAE9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAC/F,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACjG,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,4BAA4B,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,cAAc;AACd,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAEhE,iBAAiB;AAEjB,QAAQ;AACR,cAAc,wCAAwC,CAAC;AAEvD,cAAc,oCAAoC,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,aAAa;AACb,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAEhD,eAAe;AACf,cAAc,kCAAkC,CAAC"}
|
|
@@ -8,6 +8,7 @@ import { FolksEvmGmp } from "../../chains/evm/spoke/modules/index.js";
|
|
|
8
8
|
import { getBridgeRouterSpokeContract } from "../../chains/evm/spoke/utils/contract.js";
|
|
9
9
|
import { ChainType } from "../../common/types/chain.js";
|
|
10
10
|
import { MessageDirection } from "../../common/types/gmp.js";
|
|
11
|
+
import { Action } from "../../common/types/message.js";
|
|
11
12
|
import { assertAdapterSupportsCrossChainToken, assertAdapterSupportsDataMessage, assertAdapterSupportsReceiverValue, } from "../../common/utils/adapter.js";
|
|
12
13
|
import { convertFromGenericAddress } from "../../common/utils/address.js";
|
|
13
14
|
import { assertHubChainSelected, getFolksChain, getSignerGenericAddress, getSpokeChain, getSpokeTokenData, } from "../../common/utils/chain.js";
|
|
@@ -20,13 +21,14 @@ export const prepare = {
|
|
|
20
21
|
async retryMessage(adapterId, messageId, message, extraArgsParams, isHub = true) {
|
|
21
22
|
const folksChain = FolksCore.getSelectedFolksChain();
|
|
22
23
|
const payload = decodeMessagePayload(message.payload);
|
|
24
|
+
const messageDirection = isHub || payload.action === Action.SendToken ? MessageDirection.HubToSpoke : MessageDirection.SpokeToHub;
|
|
23
25
|
const userAddress = getSignerGenericAddress({
|
|
24
26
|
signer: FolksCore.getFolksSigner().signer,
|
|
25
27
|
chainType: folksChain.chainType,
|
|
26
28
|
});
|
|
27
29
|
if (isHub) {
|
|
28
30
|
assertHubChainSelected(folksChain.folksChainId, folksChain.network);
|
|
29
|
-
assertRetryableAction(payload.action,
|
|
31
|
+
assertRetryableAction(payload.action, messageDirection);
|
|
30
32
|
const hubChain = getHubChain(folksChain.network);
|
|
31
33
|
const provider = FolksCore.getProvider(folksChain.folksChainId);
|
|
32
34
|
const { adapterFees, extraArgs } = await getHubRetryMessageExtraArgsAndAdapterFees(provider, hubChain, folksChain.network, userAddress, message, extraArgsParams, payload);
|
|
@@ -36,7 +38,7 @@ export const prepare = {
|
|
|
36
38
|
return await FolksHubGmp.prepare.retryMessage(provider, getEvmSignerAddress(FolksCore.getSigner()), adapterId, messageId, message, encodedExtraArgs, value, getHubChain(folksChain.network));
|
|
37
39
|
}
|
|
38
40
|
else {
|
|
39
|
-
assertRetryableAction(payload.action,
|
|
41
|
+
assertRetryableAction(payload.action, messageDirection);
|
|
40
42
|
switch (folksChain.chainType) {
|
|
41
43
|
case ChainType.EVM: {
|
|
42
44
|
return await FolksEvmGmp.prepare.retryMessage(FolksCore.getProvider(folksChain.folksChainId), getEvmSignerAddress(FolksCore.getSigner()), adapterId, messageId, message, "0x", 0n, getSpokeChain(folksChain.folksChainId, folksChain.network));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"folks-gmp.js","sourceRoot":"","sources":["../../../src/xchain/modules/folks-gmp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,2BAA2B,EAAE,6BAA6B,EAAE,MAAM,sCAAsC,CAAC;AAClH,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,EACL,yCAAyC,EACzC,2CAA2C,GAC5C,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,0CAA0C,CAAC;AACxF,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EACL,oCAAoC,EACpC,gCAAgC,EAChC,kCAAkC,GACnC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,uBAAuB,EACvB,aAAa,EACb,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACrH,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAmBlD,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,KAAK,CAAC,YAAY,CAChB,SAAsB,EACtB,SAAoB,EACpB,OAAwB,EACxB,eAA4C,EAC5C,KAAK,GAAG,IAAI;QAEZ,MAAM,UAAU,GAAG,SAAS,CAAC,qBAAqB,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"folks-gmp.js","sourceRoot":"","sources":["../../../src/xchain/modules/folks-gmp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import type { OraclePrices } from "../../chains/evm/hub/types/oracle.js";
|
|
1
|
+
import type { OraclePrice, OraclePrices } from "../../chains/evm/hub/types/oracle.js";
|
|
2
|
+
import type { FolksTokenId } from "../../common/types/token.js";
|
|
2
3
|
export declare const read: {
|
|
3
|
-
|
|
4
|
+
oraclePrice(folksTokenId: FolksTokenId): Promise<OraclePrice>;
|
|
5
|
+
oraclePrices(folksTokenIds?: Array<FolksTokenId>): Promise<OraclePrices>;
|
|
4
6
|
};
|
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
import { FolksHubOracle } from "../../chains/evm/hub/modules/index.js";
|
|
2
|
-
import { getHubTokensData } from "../../chains/evm/hub/utils/chain.js";
|
|
2
|
+
import { getHubTokenData, getHubTokensData } from "../../chains/evm/hub/utils/chain.js";
|
|
3
3
|
import { FolksCore } from "../core/folks-core.js";
|
|
4
4
|
export const read = {
|
|
5
|
-
async
|
|
5
|
+
async oraclePrice(folksTokenId) {
|
|
6
6
|
const network = FolksCore.getSelectedNetwork();
|
|
7
|
-
const
|
|
7
|
+
const { poolId } = getHubTokenData(folksTokenId, network);
|
|
8
|
+
return await FolksHubOracle.getOraclePrice(FolksCore.getHubProvider(), network, poolId);
|
|
9
|
+
},
|
|
10
|
+
async oraclePrices(folksTokenIds) {
|
|
11
|
+
const network = FolksCore.getSelectedNetwork();
|
|
12
|
+
const tokensData = folksTokenIds
|
|
13
|
+
? folksTokenIds.map((folksTokenId) => getHubTokenData(folksTokenId, network))
|
|
14
|
+
: Object.values(getHubTokensData(network));
|
|
8
15
|
return FolksHubOracle.getOraclePrices(FolksCore.getHubProvider(), network, tokensData);
|
|
9
16
|
},
|
|
10
17
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"folks-oracle.js","sourceRoot":"","sources":["../../../src/xchain/modules/folks-oracle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"folks-oracle.js","sourceRoot":"","sources":["../../../src/xchain/modules/folks-oracle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACxF,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAKlD,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,KAAK,CAAC,WAAW,CAAC,YAA0B;QAC1C,MAAM,OAAO,GAAG,SAAS,CAAC,kBAAkB,EAAE,CAAC;QAE/C,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAE1D,OAAO,MAAM,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1F,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,aAAmC;QACpD,MAAM,OAAO,GAAG,SAAS,CAAC,kBAAkB,EAAE,CAAC;QAE/C,MAAM,UAAU,GAAG,aAAa;YAC9B,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAC7E,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;QAE7C,OAAO,cAAc,CAAC,eAAe,CAAC,SAAS,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IACzF,CAAC;CACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -5,10 +5,19 @@ import { getOracleManagerContract } from "../utils/contract.js";
|
|
|
5
5
|
|
|
6
6
|
import type { NetworkType } from "../../../../common/types/chain.js";
|
|
7
7
|
import type { OracleManagerAbi } from "../constants/abi/oracle-manager-abi.js";
|
|
8
|
-
import type { OraclePrices } from "../types/oracle.js";
|
|
8
|
+
import type { OraclePrice, OraclePrices } from "../types/oracle.js";
|
|
9
9
|
import type { HubTokenData } from "../types/token.js";
|
|
10
10
|
import type { Client, ContractFunctionParameters, ReadContractReturnType } from "viem";
|
|
11
11
|
|
|
12
|
+
export async function getOraclePrice(provider: Client, network: NetworkType, poolId: number): Promise<OraclePrice> {
|
|
13
|
+
const hubChain = getHubChain(network);
|
|
14
|
+
|
|
15
|
+
const oracleManager = getOracleManagerContract(provider, hubChain.oracleManagerAddress);
|
|
16
|
+
|
|
17
|
+
const { price, decimals } = await oracleManager.read.processPriceFeed([poolId]);
|
|
18
|
+
return { price: [price, 18], decimals };
|
|
19
|
+
}
|
|
20
|
+
|
|
12
21
|
export async function getOraclePrices(
|
|
13
22
|
provider: Client,
|
|
14
23
|
network: NetworkType,
|
package/src/index.ts
CHANGED
|
@@ -24,7 +24,7 @@ export { getSupportedMessageAdapters } from "./common/utils/adapter.js";
|
|
|
24
24
|
export { convertFromGenericAddress, convertToGenericAddress } from "./common/utils/address.js";
|
|
25
25
|
export { buildAccountId, buildLoanId } from "./common/utils/lending.js";
|
|
26
26
|
export { getAdapterAddress } from "./common/utils/chain.js";
|
|
27
|
-
export { toFAmount, toUnderlyingAmount } from "./common/utils/formulae.js";
|
|
27
|
+
export { toFAmount, toUnderlyingAmount, calcAssetDollarValue } from "./common/utils/formulae.js";
|
|
28
28
|
export { getCcipData, getWormholeData } from "./common/utils/gmp.js";
|
|
29
29
|
export { getOperationIdsByTransaction, waitOperationIds } from "./common/utils/messages.js";
|
|
30
30
|
export { waitTransaction } from "./common/utils/transaction.js";
|
|
@@ -11,6 +11,7 @@ import { FolksEvmGmp } from "../../chains/evm/spoke/modules/index.js";
|
|
|
11
11
|
import { getBridgeRouterSpokeContract } from "../../chains/evm/spoke/utils/contract.js";
|
|
12
12
|
import { ChainType } from "../../common/types/chain.js";
|
|
13
13
|
import { MessageDirection } from "../../common/types/gmp.js";
|
|
14
|
+
import { Action } from "../../common/types/message.js";
|
|
14
15
|
import {
|
|
15
16
|
assertAdapterSupportsCrossChainToken,
|
|
16
17
|
assertAdapterSupportsDataMessage,
|
|
@@ -57,6 +58,8 @@ export const prepare = {
|
|
|
57
58
|
) {
|
|
58
59
|
const folksChain = FolksCore.getSelectedFolksChain();
|
|
59
60
|
const payload = decodeMessagePayload(message.payload);
|
|
61
|
+
const messageDirection =
|
|
62
|
+
isHub || payload.action === Action.SendToken ? MessageDirection.HubToSpoke : MessageDirection.SpokeToHub;
|
|
60
63
|
|
|
61
64
|
const userAddress = getSignerGenericAddress({
|
|
62
65
|
signer: FolksCore.getFolksSigner().signer,
|
|
@@ -65,7 +68,7 @@ export const prepare = {
|
|
|
65
68
|
|
|
66
69
|
if (isHub) {
|
|
67
70
|
assertHubChainSelected(folksChain.folksChainId, folksChain.network);
|
|
68
|
-
assertRetryableAction(payload.action,
|
|
71
|
+
assertRetryableAction(payload.action, messageDirection);
|
|
69
72
|
|
|
70
73
|
const hubChain = getHubChain(folksChain.network);
|
|
71
74
|
const provider = FolksCore.getProvider<ChainType.EVM>(folksChain.folksChainId);
|
|
@@ -94,7 +97,7 @@ export const prepare = {
|
|
|
94
97
|
getHubChain(folksChain.network),
|
|
95
98
|
);
|
|
96
99
|
} else {
|
|
97
|
-
assertRetryableAction(payload.action,
|
|
100
|
+
assertRetryableAction(payload.action, messageDirection);
|
|
98
101
|
|
|
99
102
|
switch (folksChain.chainType) {
|
|
100
103
|
case ChainType.EVM: {
|
|
@@ -1,14 +1,25 @@
|
|
|
1
1
|
import { FolksHubOracle } from "../../chains/evm/hub/modules/index.js";
|
|
2
|
-
import { getHubTokensData } from "../../chains/evm/hub/utils/chain.js";
|
|
2
|
+
import { getHubTokenData, getHubTokensData } from "../../chains/evm/hub/utils/chain.js";
|
|
3
3
|
import { FolksCore } from "../core/folks-core.js";
|
|
4
4
|
|
|
5
|
-
import type { OraclePrices } from "../../chains/evm/hub/types/oracle.js";
|
|
5
|
+
import type { OraclePrice, OraclePrices } from "../../chains/evm/hub/types/oracle.js";
|
|
6
|
+
import type { FolksTokenId } from "../../common/types/token.js";
|
|
6
7
|
|
|
7
8
|
export const read = {
|
|
8
|
-
async
|
|
9
|
+
async oraclePrice(folksTokenId: FolksTokenId): Promise<OraclePrice> {
|
|
9
10
|
const network = FolksCore.getSelectedNetwork();
|
|
10
11
|
|
|
11
|
-
const
|
|
12
|
+
const { poolId } = getHubTokenData(folksTokenId, network);
|
|
13
|
+
|
|
14
|
+
return await FolksHubOracle.getOraclePrice(FolksCore.getHubProvider(), network, poolId);
|
|
15
|
+
},
|
|
16
|
+
|
|
17
|
+
async oraclePrices(folksTokenIds?: Array<FolksTokenId>): Promise<OraclePrices> {
|
|
18
|
+
const network = FolksCore.getSelectedNetwork();
|
|
19
|
+
|
|
20
|
+
const tokensData = folksTokenIds
|
|
21
|
+
? folksTokenIds.map((folksTokenId) => getHubTokenData(folksTokenId, network))
|
|
22
|
+
: Object.values(getHubTokensData(network));
|
|
12
23
|
|
|
13
24
|
return FolksHubOracle.getOraclePrices(FolksCore.getHubProvider(), network, tokensData);
|
|
14
25
|
},
|