El OSM (acrónimo de "Oracle Security Module" o Módulo de Seguridad del Oráculo) asegura que los nuevos valores de precios difundidos por los Oráculos no son tomados por el sistema hasta que un retraso específico haya pasado. Los valores se leen desde el contrato DSValue designado (o cualquier contrato que tenga las interfaces read()
y peek()
) mediante el método poke()
; los métodos read()
y peek()
darán el valor actual de la alimentación de precios y otros contratos deben estar en la whitelist (lista blanca) para poder llamarlos. Un contrato OSM solo puede leer desde un sola fuente de alimentación de precios, así que en la práctica se debe implementar un contrato OSM por tipo de colateral.
stopped
: bandera (uint256
) que deshabilita las actualizaciones de alimentación de precios si es distinta a cero .src
: address
(“dirección”) del DSValue del que leerá el OSM .ONE_HOUR
: 3600 segundos (uint16(3600)
).hop
: tiempo de retraso entre las llamadas poke
(uint16
); por defecto es ONE_HOUR
(“una hora”).zzz
: hora de la última actualización (redondeando hacia abajo al múltiplo más cercano de hop
).cur
: estructura Feed
que contiene el valor del precio actual.nxt
: estructura Feed
que contiene el próximo valor del precio.bud
: mapeo de address
a uint256
; lectores de fuentes de alimentación de whitelists.