Emit Oracle Price Message in Rates Adapter
This commit is contained in:
@@ -11,7 +11,9 @@ export type RatesEventMap = {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export abstract class BaseRates extends EventEmitter<RatesEventMap> {
|
export abstract class BaseRates<
|
||||||
|
T extends RatesEventMap = RatesEventMap,
|
||||||
|
> extends EventEmitter<T> {
|
||||||
/** Starts the given rates adapter so that it will emit events on price updates. */
|
/** Starts the given rates adapter so that it will emit events on price updates. */
|
||||||
public abstract start(): Promise<void>;
|
public abstract start(): Promise<void>;
|
||||||
|
|
||||||
|
|||||||
@@ -5,10 +5,17 @@ import {
|
|||||||
OraclePriceMessage,
|
OraclePriceMessage,
|
||||||
} from '@generalprotocols/oracle-client';
|
} from '@generalprotocols/oracle-client';
|
||||||
|
|
||||||
import { BaseRates } from './index.js';
|
import { type RatesEventMap, BaseRates } from './index.js';
|
||||||
|
|
||||||
|
// Add the Oracle Price Message to our Events for this Adapter.
|
||||||
|
export type RatesOracleEventMap = RatesEventMap & {
|
||||||
|
rateUpdated: {
|
||||||
|
oraclePriceMessage: OraclePriceMessage;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
// TODO: Add RatesHistorical trait since Oracles can provide historical rates.
|
// TODO: Add RatesHistorical trait since Oracles can provide historical rates.
|
||||||
export class RatesOracle extends BaseRates {
|
export class RatesOracle extends BaseRates<RatesOracleEventMap> {
|
||||||
/**
|
/**
|
||||||
* Create a new rates oracle.
|
* Create a new rates oracle.
|
||||||
*
|
*
|
||||||
@@ -153,6 +160,7 @@ export class RatesOracle extends BaseRates {
|
|||||||
numeratorUnitCode: oracle.SOURCE_NUMERATOR_UNIT_CODE,
|
numeratorUnitCode: oracle.SOURCE_NUMERATOR_UNIT_CODE,
|
||||||
denominatorUnitCode: oracle.SOURCE_DENOMINATOR_UNIT_CODE,
|
denominatorUnitCode: oracle.SOURCE_DENOMINATOR_UNIT_CODE,
|
||||||
price: priceValue,
|
price: priceValue,
|
||||||
|
oraclePriceMessage: message,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user