DeploySEALED
▒#▓~●█╲~▒▫%&~●$^^^▓%■●@◇◇@●○&○!!●^!&╳◇?▓?@◆●@▓~▪╳▪▒$#^@*╳╲◇◆*■#@
Transaction ID
Execution Fee
0.00000599 FLOWTransaction Summary
DeployContract deployment
Contract deployment
Script Arguments
0nameString
PriceOracle
1codeString
/// PriceOracle: Interface for price feed oracles
///
/// This interface defines the standard for price oracles used in DCA execution.
/// Implementations can use Pyth Network, Chainlink, DIA, or custom price feeds.
///
access(all) contract interface PriceOracle {
/// Price data structure (must be defined in implementing contracts)
/// Note: Structs cannot be nested in contract interfaces, so implementations
/// should define their own PriceData struct matching this structure:
/// - symbol: String
/// - price: UFix64
/// - timestamp: UFix64
/// - confidence: UFix64?
/// Oracle resource that provides price feeds
access(all) resource interface Oracle {
/// Get current price for a token symbol
/// Returns a struct with: symbol, price, timestamp, confidence
access(all) fun getPrice(symbol: String): AnyStruct?
/// Get price with maximum age tolerance (in seconds)
/// Returns nil if the latest price is older than maxAge
access(all) fun getPriceWithMaxAge(symbol: String, maxAge: UFix64): AnyStruct?
/// Check if oracle supports a specific token
access(all) fun supportsToken(symbol: String): Bool
/// Get list of supported tokens
access(all) fun getSupportedTokens(): [String]
}
/// Event emitted when price is updated
access(all) event PriceUpdated(symbol: String, price: UFix64, timestamp: UFix64)
/// Event emitted when price feed becomes stale
access(all) event PriceFeedStale(symbol: String, lastUpdate: UFix64)
}
Cadence Script
1transaction(name: String, code: String ) {
2 prepare(signer: auth(AddContract) &Account) {
3 signer.contracts.add(name: name, code: code.utf8 )
4 }
5 }