code.vegaprotocol.io/vega@v0.79.0/core/integration/docs/oracles.md (about) 1 ## Using oracles 2 3 Sending oracle data for any oracle is done using the property name, and the public key as set up previously in the test. How oracles are set up is covered [in the markets documentation](markets.md#Data-source-configuration). 4 5 The public key, in all setup steps is the value specified as _[...] from "0xCAFECAFE1"_. The public key, then, is `0xCAFECAFE1`. 6 7 ### Sending simple signal 8 9 In its simplest form, an oracle can be triggered to send a data signal using the following step: 10 11 ```cucumber 12 When the oracles broadcast data signed with "0xCAFECAFE1": 13 | name | value | eth-block-time | 14 | prices.ETH.value | 23456789 | 1725643814 | 15 ``` 16 17 Where the fields are defined as follows: 18 19 ``` 20 | name | string | 21 | value | string (compatible with PropertyKey_Type) | 22 | eth-block-time | timestamp - optional | 23 ``` 24 25 Details on the [`PropertyKey_Type` type](types.md#PropertyKey_Type). 26 27 For settlement data, the eth-block-time doesn't matter too much. This value, however, is useful for perpetual markets where the time-weighted average values matter a lot. 28 29 It is possible to broadcast the same data using multiple keys (e.g. where 2 markets are configured using the same property key, but with different signers). In the keys can simply be comma-separated in the step: 30 31 ```cucumber 32 When the oracles broadcast data signed with "0xCAFECAFE1,0xCAFECAFE2,0xCAFECAFE3": 33 | name | value | eth-block-time | 34 | prices.ETH.value | 23456789 | 1725643814 | 35 ``` 36 37 ### Sending a signal relative to the current block time 38 39 For perpetual markets, specifically funding payments, we want to be able to control when (relative to the current block time in the test), certain data-points were received like so: 40 41 ```cucumber 42 When the oracles broadcast data with block time signed with "0xCAFECAFE1": 43 | name | value | time offset | 44 | perp.funding.cue | 1511924180 | -100s | 45 | perp.ETH.value | 975 | -2s | 46 | perp.ETH.value | 977 | -1s | 47 ``` 48 49 Other than that, the step works similarly to the previous one discussed fields are defined as follows: 50 51 ``` 52 | name | string | 53 | value | string (compatible with PropertyKey_Type) | 54 | time offset | duration | 55 | eth-block-time | timestamp - optional | 56 ```