2022-06-28 15:54:09 +00:00
<!DOCTYPE html> < html lang = "en" > < head > < meta charSet = "utf-8" / > < meta http-equiv = "X-UA-Compatible" content = "IE=edge" / > < title > Price Example · bitcoin-s< / title > < meta name = "viewport" content = "width=device-width, initial-scale=1.0" / > < meta name = "generator" content = "Docusaurus" / > < meta name = "description" content = "## Requirements for example" / > < meta name = "docsearch:version" content = "1.9.1" / > < meta name = "docsearch:language" content = "en" / > < meta property = "og:title" content = "Price Example · bitcoin-s" / > < meta property = "og:type" content = "website" / > < meta property = "og:url" content = "https://bitcoin-s.org/" / > < meta property = "og:description" content = "## Requirements for example" / > < meta property = "og:image" content = "https://bitcoin-s.org/img/undraw_online.svg" / > < meta name = "twitter:card" content = "summary" / > < meta name = "twitter:image" content = "https://bitcoin-s.org/img/undraw_tweetstorm.svg" / > < link rel = "shortcut icon" href = "/img/favicon.ico" / > < link rel = "stylesheet" href = "https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css" / > < link rel = "stylesheet" href = "//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css" / > < script >
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-61958686-2', 'auto');
ga('send', 'pageview');
< / script > < link rel = "stylesheet" href = "/css/code-block-buttons.css" / > < script type = "text/javascript" src = "https://buttons.github.io/buttons.js" > < / script > < script type = "text/javascript" src = "https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js" > < / script > < script type = "text/javascript" src = "https://fonts.googleapis.com/css?family=Montserrat:500" > < / script > < script type = "text/javascript" src = "https://www.googletagmanager.com/gtag/js?id=UA-61958686-2" > < / script > < script type = "text/javascript" src = "/js/code-block-buttons.js" > < / script > < script src = "/js/scrollSpy.js" > < / script > < link rel = "stylesheet" href = "/css/main.css" / > < script src = "/js/codetabs.js" > < / script > < / head > < body class = "sideNavVisible separateOnPageNav" > < div class = "fixedHeaderContainer" > < div class = "headerWrapper wrapper" > < header > < a href = "/" > < img class = "logo" src = "/img/favicon.ico" alt = "bitcoin-s" / > < h2 class = "headerTitleWithLogo" > bitcoin-s< / h2 > < / a > < a href = "/versions" > < h3 > 1.9.1< / h3 > < / a > < div class = "navigationWrapper navigationSlider" > < nav class = "slidingNav" > < ul class = "nav-site nav-site-internal" > < li class = "siteNavGroupActive" > < a href = "/docs/1.9.1/core/core-intro" target = "_self" > Docs< / a > < / li > < li class = "" > < a href = "/download" target = "_self" > Download< / a > < / li > < li class = "" > < a href = "/api/org/bitcoins" target = "_self" > API< / a > < / li > < li class = "" > < a href = "/help" target = "_self" > Help< / a > < / li > < li class = "navSearchWrapper reactNavSearchWrapper" > < input type = "text" id = "search_input_react" placeholder = "Search" title = "Search" / > < / li > < / ul > < / nav > < / div > < / header > < / div > < / div > < div class = "navPusher" > < div class = "docMainWrapper wrapper" > < div class = "docsNavContainer" id = "docsNav" > < nav class = "toc" > < div class = "toggleNav" > < section class = "navWrapper wrapper" > < div class = "navBreadcrumb wrapper" > < div class = "navToggle" id = "navToggler" > < div class = "hamburger-menu" > < div class = "line1" > < / div > < div class = "line2" > < / div > < div class = "line3" > < / div > < / div > < / div > < h2 > < i > › < / i > < span > DLC Oracle< / span > < / h2 > < div class = "tocToggler" id = "tocToggler" > < i class = "icon-toc" > < / i > < / div > < / div > < div class = "navGroups" > < div class = "navGroup" > < h3 class = "navGroupCategoryTitle" > Getting Started< / h3 > < ul class = "" > < li class = "navListItem" > < a class = "navItem" href = "/docs/1.9.1/getting-started" > Intro and Getting Started< / a > < / li > < li class = "navListItem" > < a class = "navItem" href = "/docs/1.9.1/bips" > Supported BIPs< / a > < / li > < / ul > < / div > < div class = "navGroup" > < h3 class = "navGroupCategoryTitle" > Getting Setup< / h3 > < ul class = "" > < li class = "navListItem" > < a class = "navItem" href = "/docs/1.9.1/getting-setup" > Getting Bitcoin-S installed on your machine< / a > < / li > < li class = "navListItem" > < a class = "navItem" href = "/docs/1.9.1/ui-setup" > Installing the DLC Wallet UI< / a > < / li > < / ul > < / div > < div class = "navGroup" > < h3 class = "navGroupCategoryTitle" > Applications< / h3 > < ul class = "" > < li class = "navListItem" > < a class = "navItem" href = "/docs/1.9.1/applications/cli" > CLI< / a > < / li > < li class = "navListItem" > < a class = "navItem" href = "/docs/1.9.1/applications/server" > Application Server< / a > < / li > < li class = "navListItem" > < a class = "navItem" href = "/docs/1.9.1/applications/gui" > GUI< / a > < / li > < li class = "navListItem" > < a class = "navItem" href = "/docs/1.9.1/applications/server-systemd" > Systemd installation< / a > < / li > < / ul > < / div > < div class = "navGroup" > < h3 class = "navGroupCategoryTitle" > Chain< / h3 > < ul class = "" > < li class = "navListItem" > < a class = "navItem" href = "/docs/1.9.1/chain/chain" > Blockchain Verification< / a > < / li > < li class = "navListItem" > < a class = "navItem" href = "/docs/1.9.1/chain/filter-sync" > Syncing Blockfilters< / a > < / li > < li class = "navListItem" > < a class = "navItem" href = "/docs/1.9.1/chain/chain-query-api" > Chain Query API< / a > < / li > < / ul > < / div > < div class = "navGroup" > < h3 class = "navGroupCategoryTitle" > Configuration< / h3 > < ul class = "" > < li class = "navListItem" > < a class = "navItem" href = "/docs/1.9.1/config/configuration" > Application Configuration< / a > < / li > < / ul > < / div > < div class = "navGroup" > < h3 class = "navGroupCategoryTitle" > Core Module< / h3 > < ul class = "" > < li class = "navListItem" > < a class = "navItem" href = "/docs/1.9.1/core/core-intro" > Core Module< / a > < / li > < li class = "navListItem" > < a class = "navItem" href = "/docs/1.9.1/core/addresses" > Generating
var coll = document.getElementsByClassName('collapsible');
var checkActiveCategory = true;
for (var i = 0; i < coll.length ; i + + ) {
var links = coll[i].nextElementSibling.getElementsByTagName('*');
if (checkActiveCategory){
for (var j = 0; j < links.length ; j + + ) {
if (links[j].classList.contains('navListItemActive')){
coll[i].nextElementSibling.classList.toggle('hide');
coll[i].childNodes[1].classList.toggle('rotate');
checkActiveCategory = false;
break;
}
}
}
coll[i].addEventListener('click', function() {
var arrow = this.childNodes[1];
arrow.classList.toggle('rotate');
var content = this.nextElementSibling;
content.classList.toggle('hide');
});
}
document.addEventListener('DOMContentLoaded', function() {
createToggler('#navToggler', '#docsNav', 'docsSliderActive');
createToggler('#tocToggler', 'body', 'tocActive');
var headings = document.querySelector('.toc-headings');
headings & & headings.addEventListener('click', function(event) {
var el = event.target;
while(el !== headings){
if (el.tagName === 'A') {
document.body.classList.remove('tocActive');
break;
} else{
el = el.parentNode;
}
}
}, false);
function createToggler(togglerSelector, targetSelector, className) {
var toggler = document.querySelector(togglerSelector);
var target = document.querySelector(targetSelector);
if (!toggler) {
return;
}
toggler.onclick = function(event) {
event.preventDefault();
target.classList.toggle(className);
};
}
});
< / script > < / nav > < / div > < div class = "container mainContainer docsContainer" > < div class = "wrapper" > < div class = "post" > < header class = "postHeader" > < a class = "edit-page-link button" href = "https://github.com/bitcoin-s/bitcoin-s/blob/master/docs/oracle/oracle-price-example.md" target = "_blank" rel = "noreferrer noopener" > Edit< / a > < h1 id = "__docusaurus" class = "postHeaderTitle" > Price Example< / h1 > < / header > < article > < div > < span > < h2 > < a class = "anchor" aria-hidden = "true" id = "requirements-for-example" > < / a > < a href = "#requirements-for-example" aria-hidden = "true" class = "hash-link" > < svg class = "hash-link-icon" aria-hidden = "true" height = "16" version = "1.1" viewBox = "0 0 16 16" width = "16" > < path fill-rule = "evenodd" d = "M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z" > < / path > < / svg > < / a > Requirements for example< / h2 >
< p > You need to have a fully built oracle server. You can follow < a href = "/docs/1.9.1/oracle/build-oracle-server" > this guide< / a > to do this.< / p >
< p > You will also need a the < code > bitcoin-s-cli< / code > command line tool to interact with the server.
You can find how to build this < a href = "/docs/1.9.1/applications/cli" > here< / a > < / p >
< p > After building the oracle server, you will need to start it with< / p >
< pre > < code class = "hljs" > .< span class = "hljs-meta-keyword" > /app/< / span > oracle-server< span class = "hljs-meta-keyword" > /target/< / span > universal< span class = "hljs-meta-keyword" > /stage/< / span > bin/bitcoin-s-oracle-server
< / code > < / pre >
< h2 > < a class = "anchor" aria-hidden = "true" id = "signing-btcusd-price" > < / a > < a href = "#signing-btcusd-price" aria-hidden = "true" class = "hash-link" > < svg class = "hash-link-icon" aria-hidden = "true" height = "16" version = "1.1" viewBox = "0 0 16 16" width = "16" > < path fill-rule = "evenodd" d = "M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z" > < / path > < / svg > < / a > Signing BTC/USD price< / h2 >
< p > BTC/USD markets trade 24/7/365 around the world. Exchanges publish the market price
for the trading pair everytime a trade is matched in their matching engine.< / p >
< p > In this example, we will< / p >
< ol >
< li > Explain the < code > createnumericannouncement< / code > and < code > createdigitdecompannouncement< / code > rpc< / li >
< li > Set up an oracle that can sign the BTC/USD price at a maturation time< / li >
< li > Completing the announcement by signing the observed market price< / li >
< / ol >
< p > For this example our maturation time will be< / p >
< blockquote >
< p > 2021-02-04 00:00:00 UTC< / p >
< / blockquote >
< h2 > < a class = "anchor" aria-hidden = "true" id = "2-rpc-options" > < / a > < a href = "#2-rpc-options" aria-hidden = "true" class = "hash-link" > < svg class = "hash-link-icon" aria-hidden = "true" height = "16" version = "1.1" viewBox = "0 0 16 16" width = "16" > < path fill-rule = "evenodd" d = "M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z" > < / path > < / svg > < / a > 2 RPC Options< / h2 >
< p > When signing numbers, we need to use a < a href = "https://github.com/discreetlogcontracts/dlcspecs/blob/master/Oracle.md#version-0-digit_decomposition_event_descriptor" > digit decomposition announcement< / a > that can sign
each digit of a number.< / p >
< p > There are 2 different RPC options for making a digit decomposition announcement: < code > createnumericannouncement< / code > and < code > createdigitdecompannouncement< / code > .< / p >
< p > < code > createnumericannouncement< / code > is meant to be user-friendly with an easy to use api,
where < code > createdigitdecompannouncement< / code > is meant to give to be a more advanced api that gives more expressivity.< / p >
< p > Here we will give examples of each that result in the same announcement.< / p >
< h3 > < a class = "anchor" aria-hidden = "true" id = "createnumericannouncement-rpc" > < / a > < a href = "#createnumericannouncement-rpc" aria-hidden = "true" class = "hash-link" > < svg class = "hash-link-icon" aria-hidden = "true" height = "16" version = "1.1" viewBox = "0 0 16 16" width = "16" > < path fill-rule = "evenodd" d = "M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z" > < / path > < / svg > < / a > createnumericannouncement rpc< / h3 >
< p > The < code > createnumericannouncement< / code > takes 6 arguments< / p >
< ol >
< li > the name for the announcement (< code > bitcoin-s-price-example< / code > )< / li >
< li > maturation time in ISO 8601 format (< code > " 2021-02-04T00:00:00Z" < / code > )< / li >
< li > minimum value (< code > 0< / code > )< / li >
< li > maximum value (< code > 131071< / code > )< / li >
< li > units (< code > BTC/USD< / code > )< / li >
< li > precision (< code > base^precision * base^numdigits< / code > to get the actual outcome. This is useful for very small or large values)< / li >
< / ol >
< h3 > < a class = "anchor" aria-hidden = "true" id = "createdigitdecompannouncement-rpc" > < / a > < a href = "#createdigitdecompannouncement-rpc" aria-hidden = "true" class = "hash-link" > < svg class = "hash-link-icon" aria-hidden = "true" height = "16" version = "1.1" viewBox = "0 0 16 16" width = "16" > < path fill-rule = "evenodd" d = "M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z" > < / path > < / svg > < / a > createdigitdecompannouncement rpc< / h3 >
< p > It takes 6 arguments< / p >
< ol >
< li > the name for the announcement (< code > bitcoin-s-price-example< / code > )< / li >
< li > maturation time in seconds since the epoch (< code > 1612396800< / code > )< / li >
< li > base (< code > 2< / code > )< / li >
< li > number of digits (< code > 17< / code > )< / li >
< li > units (< code > BTC/USD< / code > )< / li >
< li > precision (< code > base^precision * base^numdigits< / code > to get the actual outcome. This is useful for very small or large values)< / li >
< / ol >
< h3 > < a class = "anchor" aria-hidden = "true" id = "understanding-createdigitdecompannouncement-parameters" > < / a > < a href = "#understanding-createdigitdecompannouncement-parameters" aria-hidden = "true" class = "hash-link" > < svg class = "hash-link-icon" aria-hidden = "true" height = "16" version = "1.1" viewBox = "0 0 16 16" width = "16" > < path fill-rule = "evenodd" d = "M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z" > < / path > < / svg > < / a > Understanding createdigitdecompannouncement parameters< / h3 >
< p > Most of these fields are self-explanatory, but one that might confuse new users
is the usage of < code > base< / code > and < code > number of digits< / code > . You need to set these two parameters
in such a way that your domain is contained within < code > base^numdigits< / code > .< / p >
< p > Our domain is BTC/USD price at < code > 2020-02-04 00:00:00 UTC< / code > . That means we need to
pick numDigits such that < code > 2^numDigits< / code > can contain the BTC/USD price at < code > 2020-02-04 00:00:00 UTC< / code > < / p >
< p > For this example, we will pick < code > numDigits=17< / code > . This means we can sign a BTC/USD price
in between < code > [0,2^17-1]< / code > or < code > [$0-$131,071]< / code > . If the BTC/USD price is outside of your
predetermined interval, you need to sign the min (< code > 0< / code > ) or the max (< code > $131,071< / code > ).< / p >
< h2 > < a class = "anchor" aria-hidden = "true" id = "setting-up-the-btcusd-oracle" > < / a > < a href = "#setting-up-the-btcusd-oracle" aria-hidden = "true" class = "hash-link" > < svg class = "hash-link-icon" aria-hidden = "true" height = "16" version = "1.1" viewBox = "0 0 16 16" width = "16" > < path fill-rule = "evenodd" d = "M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z" > < / path > < / svg > < / a > Setting up the BTC/USD oracle< / h2 >
< p > Given the parameters we specified above, we are ready to create our digit decompisition announcement!< / p >
< pre > < code class = "hljs" > ./bitcoin-s-cli createdigitdecompannouncement < span class = "hljs-string" > "bitcoin-s-price-example"< / span > < span class = "hljs-number" > 1612396800< / span > < span class = "hljs-number" > 2< / span > < span class = "hljs-number" > 17< / span > < span class = "hljs-string" > "BTC/USD"< / span > < span class = "hljs-number" > 0< / span >
fdd< span class = "hljs-number" > 824< / span > fd< span class = "hljs-number" > 02< / span > b< span class = "hljs-number" > 9659e890< / span > eef< span class = "hljs-number" > 1< / span > b< span class = "hljs-number" > 223< / span > ba< span class = "hljs-number" > 45< / span > < span class = "hljs-keyword" > c< / span > < span class = "hljs-number" > 9993< / span > f< span class = "hljs-number" > 88< / span > < span class = "hljs-keyword" > c< / span > < span class = "hljs-number" > 7997859302< / span > fd< span class = "hljs-number" > 5510< / span > ac< span class = "hljs-number" > 23< / span > f< span class = "hljs-number" > 4< / span > cac< span class = "hljs-number" > 0< / span > d< span class = "hljs-number" > 4< / span > ee< span class = "hljs-number" > 8232< / span > a< span class = "hljs-number" > 77< / span > ecbdf< span class = "hljs-number" > 50< / span > < span class = "hljs-keyword" > c< / span > < span class = "hljs-number" > 07< / span > f< span class = "hljs-number" > 093794370e6< / span > a< span class = "hljs-number" > 506< / span > a< span class = "hljs-number" > 836< / span > f< span class = "hljs-number" > 6< / span > b< span class = "hljs-number" > 0< / span > fb< span class = "hljs-number" > 54< / span > b< span class = "hljs-number" > 45< / span > f< span class = "hljs-number" > 1< / span > fb< span class = "hljs-number" > 662e1307166< / span > d< span class = "hljs-number" > 2e57030574< / span > f< span class = "hljs-number" > 77305826939< / span > fa< span class = "hljs-number" > 9124< / span > d< span class = "hljs-number" > 19< / span > bfa< span class = "hljs-number" > 8< / span > a< span class = "hljs-number" > 8< / span > b< span class = "hljs-number" > 2< / span > f< span class = "hljs-number" > 00< / span > f< span class = "hljs-number" > 000586< / span > b< span class = "hljs-number" > 8< / span > < span class = "hljs-keyword" > c< / span > < span class = "hljs-number" > 58< / span > < span class = "hljs-keyword" > c< / span > < span class = "hljs-number" > 79< / span > ee< span class = "hljs-number" > 8< / span > b< span class = "hljs-number" > 77969< / span > a< span class = "hljs-number" > 949< / span > fdd< span class = "hljs-number" > 822< / span > fd< span class = "hljs-number" > 025300114762< / span > < span class = "hljs-keyword" > c< / span > < span class = "hljs-number" > 188048< / span > a< span class = "hljs-number" > 953803< / span > f< span class = "hljs-number" > 0< / span > edeeeb< span class = "hljs-number" > 68< / span > < span class = "hljs-keyword" > c< / span > < span class = "hljs-number" > 69e6< / span > cdc< span class = "hljs-number" > 1< / span > d< span class = "hljs-number" > 371< / span > ba< span class = "hljs-number" > 8< / span > d< span class = "hljs-number" > 517003< / span > accfe< span class = "hljs-number" > 05< / span > afc< span class = "hljs-number" > 4< / span > d< span class = "hljs-number" > 6588< / span > < span class = "hljs-keyword" > c< / span > < span class = "hljs-number" > 3< / span > ea< span class = "hljs-number" > 326512< / span > bc< span class = "hljs-number" > 66< / span > < span class = "hljs-keyword" > c< / span > < span class = "hljs-number" > 26< / span > a< span class = "hljs-number" > 841< / span > adffa< span class = "hljs-number" > 68330< / span > b< span class = "hljs-number" > 8< / span > < span class = "hljs-keyword" > c< / span > < span class = "hljs-number" > 723< / span > da< span class = "hljs-number" > 442792e731< / span > fb< span class = "hljs-number" > 19< / span > fda< span class = "hljs-number" > 94274< / span > a< span class = "hljs-number" > 7766< / span > bb< span class = "hljs-number" > 48e520< / span > f< span class = "hljs-number" > 118< / span > < span class = "hljs-keyword" > c< / span > < span class = "hljs-number" > 100< / span > bbe< span class = "hljs-number" > 62< / span > dc< span class = "hljs-number" > 3806< / span > a< span class = "hljs-number" > 8< / span > d< span class = "hljs-number" > 05< / span > a< span class = "hljs-number" > 63< / span > d< span class = "hljs-number" > 92e23683< / span > a< span class = "hljs-number" > 04< / span > b< span class = "hljs-number" > 0< / span > b< span class = "hljs-number" > 8< / span > < span class = "hljs-keyword" > c< / span > < span class = "hljs-number" > 24148< / span > cd< span class = "hljs-number" > 166585< / span > a< span class = "hljs-number" > 6< / span > b< span class = "hljs-number" > 33< / span > b< span class = "hljs-number" > 995< / span > b< span class = "hljs-number" > 3< / span > d< span class = "hljs-number" > 6< / span > < span class = "hljs-keyword" > c< / span > < span class = "hljs-number" > 083523< / span > a< span class = "hljs-number" > 8435< / span > b< span class = "hljs-number" > 156< / span > < span class = "hljs-keyword" > c< / span > < span class = "hljs-number" > 05100< / span > d< span class = "hljs-number" > 88< / span > f< span class = "hljs-number" > 449< / span > f< span class = "hljs-number" > 4754310< / span > d< span class = "hljs-number" > 5574< / span > d< span clas
< / code > < / pre >
< p > Yay! The hex string returned is an oracle announcement.
You can submit this on a tool like the < a href = "https://oracle.suredbits.com" > suredbits oracle explorer< / a >
so others can find your oracle.< / p >
< p > If you are building infrastructure to automatically sign announcements, it is important to store two things< / p >
< ol >
< li > The oracle announcement above (< code > fdd824fd02b9659...< / code > )< / li >
< li > The timestamp that the announcement matures at (< code > 1612396800< / code > )< / li >
< / ol >
< p > Now you can schedule jobs to sign the announcement when the maturation time passes.< / p >
< h2 > < a class = "anchor" aria-hidden = "true" id = "signing-the-btcusd-price-for-the-oracle" > < / a > < a href = "#signing-the-btcusd-price-for-the-oracle" aria-hidden = "true" class = "hash-link" > < svg class = "hash-link-icon" aria-hidden = "true" height = "16" version = "1.1" viewBox = "0 0 16 16" width = "16" > < path fill-rule = "evenodd" d = "M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z" > < / path > < / svg > < / a > Signing the BTC/USD price for the oracle< / h2 >
< p > At the maturation time (< code > 2020-02-04 00:00:00 UTC< / code > ) you need to check the BTC/USD price.< / p >
< p > For the purposes of this example, we are going to assume the BTC/USD price was < code > $42,069< / code > BTC/USD.< / p >
< p > Now let's sign the announcement. To do this, we use the < code > signdigits< / code > rpc. It takes two parameters< / p >
< ol >
< li > The oracle announcement (< code > fdd824fd02b9659...< / code > )< / li >
< li > The outcome (< code > $42,069< / code > )< / li >
< / ol >
< pre > < code class = "hljs" > ./bitcoin-s-cli signdigits < span class = "hljs-string" > "bitcoin-s-price-example"< / span > < span class = "hljs-number" > 42069< / span >
fdd< span class = "hljs-number" > 868< / span > fd< span class = "hljs-number" > 049< / span > < span class = "hljs-keyword" > c< / span > < span class = "hljs-number" > 17626974636< / span > f< span class = "hljs-number" > 696e2< / span > d< span class = "hljs-number" > 732< / span > d< span class = "hljs-number" > 70726963652< / span > d< span class = "hljs-number" > 6578616< / span > d< span class = "hljs-number" > 706< / span > < span class = "hljs-keyword" > c< / span > < span class = "hljs-number" > 650574< / span > f< span class = "hljs-number" > 77305826939< / span > fa< span class = "hljs-number" > 9124< / span > d< span class = "hljs-number" > 19< / span > bfa< span class = "hljs-number" > 8< / span > a< span class = "hljs-number" > 8< / span > b< span class = "hljs-number" > 2< / span > f< span class = "hljs-number" > 00< / span > f< span class = "hljs-number" > 000586< / span > b< span class = "hljs-number" > 8< / span > < span class = "hljs-keyword" > c< / span > < span class = "hljs-number" > 58< / span > < span class = "hljs-keyword" > c< / span > < span class = "hljs-number" > 79< / span > ee< span class = "hljs-number" > 8< / span > b< span class = "hljs-number" > 77969< / span > a< span class = "hljs-number" > 94900114762< / span > < span class = "hljs-keyword" > c< / span > < span class = "hljs-number" > 188048< / span > a< span class = "hljs-number" > 953803< / span > f< span class = "hljs-number" > 0< / span > edeeeb< span class = "hljs-number" > 68< / span > < span class = "hljs-keyword" > c< / span > < span class = "hljs-number" > 69e6< / span > cdc< span class = "hljs-number" > 1< / span > d< span class = "hljs-number" > 371< / span > ba< span class = "hljs-number" > 8< / span > d< span class = "hljs-number" > 517003< / span > accfe< span class = "hljs-number" > 05< / span > afc< span class = "hljs-number" > 4< / span > d< span class = "hljs-number" > 6< / span > < span class = "hljs-keyword" > c< / span > < span class = "hljs-number" > 787< / span > b< span class = "hljs-number" > 447< / span > aef< span class = "hljs-number" > 7494301823< / span > b< span class = "hljs-number" > 1570453< / span > b< span class = "hljs-number" > 6< / span > a< span class = "hljs-number" > 84< / span > bdadb< span class = "hljs-number" > 4822< / span > < span class = "hljs-keyword" > cc< / span > < span class = "hljs-number" > 215< / span > b< span class = "hljs-number" > 057< / span > b< span class = "hljs-number" > 3< / span > ef< span class = "hljs-number" > 4969688< / span > f< span class = "hljs-number" > 588< / span > < span class = "hljs-keyword" > c< / span > < span class = "hljs-number" > 3< / span > ea< span class = "hljs-number" > 326512< / span > bc< span class = "hljs-number" > 66< / span > < span class = "hljs-keyword" > c< / span > < span class = "hljs-number" > 26< / span > a< span class = "hljs-number" > 841< / span > adffa< span class = "hljs-number" > 68330< / span > b< span class = "hljs-number" > 8< / span > < span class = "hljs-keyword" > c< / span > < span class = "hljs-number" > 723< / span > da< span class = "hljs-number" > 442792e731< / span > fb< span class = "hljs-number" > 19< / span > fda< span class = "hljs-number" > 94274< / span > f< span class = "hljs-number" > 8< / span > ce< span class = "hljs-number" > 423054< / span > eaccb< span class = "hljs-number" > 0e3< / span > eadd< span class = "hljs-number" > 81395< / span > efd< span class = "hljs-number" > 9< / span > a< span class = "hljs-number" > 1< / span > fe< span class = "hljs-number" > 6< / span > < span class = "hljs-keyword" > c< / span > < span class = "hljs-number" > 8< / span > < span class = "hljs-keyword" > c< / span > < span class = "hljs-number" > 70< / span > cdb< span class = "hljs-number" > 6< / span > ce< span class = "hljs-number" > 5< / span > ade< span class = "hljs-number" > 2515593< / span > < span class = "hljs-keyword" > c< / span > < span class = "hljs-number" > 0306< / span > ba< span class = "hljs-number" > 7766< / span > bb< span class = "hljs-number" > 48e520< / span > f< span class = "hljs-number" > 118< / span > < span class = "hljs-keyword" > c< / span > < span class = "hljs-number" > 100< / span > bbe< span class = "hljs-number" > 62< / span > dc< span class = "hljs-number" > 3806< / span > a< span class = "hljs-number" > 8< / span > d< span class = "hljs-number" > 05< / span > a< span class = "hljs-number" > 63< / span > d< span class = "hljs-number" > 92e23683< / span > a< span class = "hljs-number" > 04< / span > b< span class = "hljs-number" > 0< / span > b< span class = "hljs-number" > 8< / span > < span class = "hljs-keyword" > c< / span > < span class = "hljs-number" > 24148< / span > cd< span class = "hljs-number" > 2< / span > d< span class = "hljs-number" > 8< / span > d< span class = "hljs-number" > 787< / span > a< span class = "hljs-number" > 6280< / span > d< span class = "hljs-number" > 88188< / span > b< span class = "hljs-number" > 85< / span > f< span class = "hljs-number" > 8< / span > < span class = "hljs-keyword" > c< / span > < span cla
< / code > < / pre >
< p > Yay! Now bitcoin-s gives us an attestation that is represented by the hex string < code > fdd868fd049...< / code > < / p >
< p > If you submitted your announcement to the < a href = "https://oracle.suredbits.com" > suredbits oracle explorer< / a > above
you will also want to submit the attestation for your announcement so others can find it and settle their DLCs.< / p >
< p > If you use the < code > getannouncement< / code > rpc along the oracle announcement, you can see the announcement is now completed!< / p >
< pre > < code class = "hljs" > ./bitcoin-s-cli getannouncement < span class = "hljs-string" > "bitcoin-s-price-example"< / span >
{
< span class = "hljs-string" > "nonces"< / span > : [
< span class = "hljs-string" > "4762c188048a953803f0edeeeb68c69e6cdc1d371ba8d517003accfe05afc4d6"< / span > ,
< span class = "hljs-string" > "588c3ea326512bc66c26a841adffa68330b8c723da442792e731fb19fda94274"< / span > ,
< span class = "hljs-string" > "a7766bb48e520f118c100bbe62dc3806a8d05a63d92e23683a04b0b8c24148cd"< / span > ,
< span class = "hljs-string" > "166585a6b33b995b3d6c083523a8435b156c05100d88f449f4754310d5574d5e"< / span > ,
< span class = "hljs-string" > "88aad09af1b8ba942cfd305e728044ec6360d847254453ec05b1b518a36660e2"< / span > ,
< span class = "hljs-string" > "238360e02f3a004663a7f3a3534973d8b66a2646c1386779aa820672b6361b88"< / span > ,
< span class = "hljs-string" > "a8696395c0add87840b460dfd8a8c0d520017efc6bf58267d4c9d2a225c5d0e5"< / span > ,
< span class = "hljs-string" > "719068a7dda5d630d7432239b6c9d921d5f3842b584503460ca52612ac2e6433"< / span > ,
< span class = "hljs-string" > "7d299513690372e8f4770eb8a28080e8d7c29920ca32af470d65d6f916ee81e3"< / span > ,
< span class = "hljs-string" > "ac15ce02684ba6d2522a9ffea1de7e202b4b699ef7ec4f089dda07f3de5b7d1f"< / span > ,
< span class = "hljs-string" > "853b2c56471999be4efca82674a651c80f047ba3a2b9e6f9999f0cd4062c533d"< / span > ,
< span class = "hljs-string" > "1ae29cab2a5e33cbe98728b7b4271c67f7c5cd6e12e39128b9971e08496cbd84"< / span > ,
< span class = "hljs-string" > "cfa99c77c88867d33e73acef37022ba4422a5221776991d45416db71fb54bc6c"< / span > ,
< span class = "hljs-string" > "104f6a8e50e8905161709215104a7e7b97e866f32cf43233ffd615cab6669983"< / span > ,
< span class = "hljs-string" > "2ec607cf59c85a7f56fa957aa5f5d7ec9f46d84d5d4b777122d41ad76c6f4968"< / span > ,
< span class = "hljs-string" > "aeedca243f2030d4f502e58f4181130e9afb75309ac21637bcfd0717528bfb82"< / span > ,
< span class = "hljs-string" > "ffe1b6c9fadee6ba70357210990539184bcc913a0ec65837a736733a2fb6172d"< / span >
],
< span class = "hljs-string" > "eventName"< / span > : < span class = "hljs-string" > "bitcoin-s-price-example"< / span > ,
< span class = "hljs-string" > "signingVersion"< / span > : < span class = "hljs-string" > "DLCOracleV0SigningVersion"< / span > ,
< span class = "hljs-string" > "maturationTime"< / span > : < span class = "hljs-string" > "2021-02-04T00:00:00Z"< / span > ,
< span class = "hljs-string" > "announcementSignature"< / span > : < span class = "hljs-string" > "659e890eef1b223ba45c9993f88c7997859302fd5510ac23f4cac0d4ee8232a77ecbdf50c07f093794370e6a506a836f6b0fb54b45f1fb662e1307166d2e5703"< / span > ,
< span class = "hljs-string" > "eventDescriptorTLV"< / span > : < span class = "hljs-string" > "fdd80a11000200074254432f555344000000000011"< / span > ,
< span class = "hljs-string" > "eventTLV"< / span > : < span class = "hljs-string" > "fdd822fd025300114762c188048a953803f0edeeeb68c69e6cdc1d371ba8d517003accfe05afc4d6588c3ea326512bc66c26a841adffa68330b8c723da442792e731fb19fda94274a7766bb48e520f118c100bbe62dc3806a8d05a63d92e23683a04b0b8c24148cd166585a6b33b995b3d6c083523a8435b156c05100d88f449f4754310d5574d5e88aad09af1b8ba942cfd305e728044ec6360d847254453ec05b1b518a36660e2238360e02f3a004663a7f3a3534973d8b66a2646c1386779aa820672b6361b88a8696395c0add87840b460dfd8a8c0d520017efc6bf58267d4c9d2a225c5d0e5719068a7dda5d630d7432239b6c9d921d5f3842b584503460ca52612ac2e64337d299513690372e8f4770eb8a28080e8d7c29920ca32af470d65d6f916ee81e3ac15ce02684ba6d2522a9ffea1de7e202b4b699ef7ec4f089dda07f3de5b7d1f853b2c56471999be4efca82674a651c80f047ba3a2b9e6f9999f0cd4062c533d1ae29cab2a5e33cbe98728b7b4271c67f7c5cd6e12e39128b9971e08496cbd84cfa99c77c88867d33e73acef37022ba4422a5221776991d45416db71fb54bc6c104f6a8e50e8905161709215104a7e7b97e866f32cf43233ffd615cab66699832ec607cf59c85a7f56fa957aa5f5d7ec9f46d84d5d4b777122d41ad76c6f4968aeedca243f2030d4f502e58f4181130e9afb75309ac21637bcfd0717528bfb82ffe1b6c9fadee6ba70357210990539184bcc913a0ec65837a736733a2fb6172d601b3900fdd80a11000200074254432f55534400000000001117626974636f696e2d732d70726963652d6578616d706c65"< / span > ,
< span class = "hljs-string" > "announcementTLV"< / span > : < span class = "hljs-string" > "fdd824fd02b9659e890eef1b223ba45c9993f88c7997859302fd5510ac23f4cac0d4ee8232a77ecbdf50c07f093794370e6a506a836f6b0fb54b45f1fb662e1307166d2e57030574f77305826939fa9124d19bfa8a8b2f00f000586b8c58c79ee8b77969a949fdd822fd025300114762c188048a953803f0edeeeb68c69e6cdc1d371ba8d517003accfe05afc4d6588c3ea326512bc66c26a841adffa68330b8c723da442792e731fb19fda94274a7766bb48e520f118c100bbe62dc3806a8d05a63d92e23683a04b0b8c24148cd166585a6b33b995b3d6c083523a8435b156c05100d88f449f4754310d5574d5e88aad09af1b8ba942cfd305e728044ec6360d847254453ec05b1b518a36660e2238360e02f3a004663a7f3a3534973d8b66a2646c1386779aa820672b6361b88a8696395c0add87840b460dfd8a8c0d520017efc6bf58267d4c9d2a225c5d0e5719068a7dda5d630d7432239b6c9d921d5f3842b584503460ca52612ac2e64337d299513690372e8f4770eb8a28080e8d7c29920ca32af470d65d6f916ee81e3ac15ce02684ba6d2522a9ffea1de7e202b4b699ef7ec4f089dda07f3de5b7d1f853b2c56471999be4efca82674a651c80f047ba3a2b9e6f9999f0cd4062c533d1ae29cab2a5e33cbe98728b7b4271c67f7c5cd6e12e39128b9971e08496cbd84cfa99c77c88867d33e73acef37022ba4422a5221776991d45416db71fb54bc6c104f6a8e50e8905161709215104a7e7b97e866f32cf43233ffd615cab66699832ec607cf59c85a7f56fa957aa5f5d7ec9f46d84d5d4b777122d41ad76c6f4968aeedca243f2030d4f502e58f4181130e9afb75309ac21637bcfd0717528bfb82ffe1b6c9fadee6ba70357210990539184bcc913a0ec65837a736733a2fb6172d601b3900fdd80a11000200074254432f55534400000000001117626974636f696e2d732d70726963652d6578616d706c65"< / span > ,
< span class = "hljs-string" > "attestations"< / span > : [
< span class = "hljs-string" > "c787b447aef7494301823b1570453b6a84bdadb4822cc215b057b3ef4969688f"< / span > ,
< span class = "hljs-string" > "f8ce423054eaccb0e3eadd81395efd9a1fe6c8c70cdb6ce5ade2515593c0306b"< / span > ,
< span class = "hljs-string" > "2d8d787a6280d88188b85f8c1a8c2b4dc859b408e391037b27c30dd3c2fa1cbf"< / span > ,
< span class = "hljs-string" > "a403f06f5785e54e43ed84c4ecd73dcda752e0864d61bc406bd4f84495a1ce59"< / span > ,
< span class = "hljs-string" > "1e1114f3c577d8b7b954505038a9a7372b1546e04ea5c6315d3729c389faa022"< / span > ,
< span class = "hljs-string" > "b3b3e6babdf51b87edab5c22a7a017085488cb3abdabe09e780db34a8860f88e"< / span > ,
< span class = "hljs-string" > "ddab4419d6859eae05150160029de1065e895e434bddc6a4e0f547572dc661bb"< / span > ,
< span class = "hljs-string" > "a694633a7914f3f155148cceb901ffb81abcb6bc244ce6d28ad6c61c8c9fdd2f"< / span > ,
< span class = "hljs-string" > "bac60fa715ca02a3a801c71afd4d947c7436e05c558194ad7fdd1aeedb3e83ee"< / span > ,
< span class = "hljs-string" > "b515a7eedb33e4d1ad111c5e2c47b36eae320d5be505293026d4c237e7eac3bf"< / span > ,
< span class = "hljs-string" > "ccce9f582e55e7125bb202820fa4e4ec5ffc2da14c03c3b60d53a0a990d9766b"< / span > ,
< span class = "hljs-string" > "7530ec3fee05a8eeb4919569fa966b7da6960c9f2abf8d884f61c1f5f0895871"< / span > ,
< span class = "hljs-string" > "c339855ca09a01b9a52ef520f7f328ead330803ab37155d619d8499190ed435c"< / span > ,
< span class = "hljs-string" > "60d49fdec41fd2165c1c9fa8e880203034fab805b141cf22817d23ace14a0bd2"< / span > ,
< span class = "hljs-string" > "9493aba5ad6c0cb16c7d862b7cd9747418e0ffec7d3a4ec1ce394d23114bf765"< / span > ,
< span class = "hljs-string" > "8dc8a3114da0cbb7578f57635fcd9daaf1e47cf9214b6605b9a018c1337790cc"< / span > ,
< span class = "hljs-string" > "581ddc2f08d27b7fd895c7fb305dddba5f3bdb923b83c3fdc3560bad5b6044a8"< / span >
],
< span class = "hljs-string" > "signatures"< / span > : [
< span class = "hljs-string" > "4762c188048a953803f0edeeeb68c69e6cdc1d371ba8d517003accfe05afc4d6c787b447aef7494301823b1570453b6a84bdadb4822cc215b057b3ef4969688f"< / span > ,
< span class = "hljs-string" > "588c3ea326512bc66c26a841adffa68330b8c723da442792e731fb19fda94274f8ce423054eaccb0e3eadd81395efd9a1fe6c8c70cdb6ce5ade2515593c0306b"< / span > ,
< span class = "hljs-string" > "a7766bb48e520f118c100bbe62dc3806a8d05a63d92e23683a04b0b8c24148cd2d8d787a6280d88188b85f8c1a8c2b4dc859b408e391037b27c30dd3c2fa1cbf"< / span > ,
< span class = "hljs-string" > "166585a6b33b995b3d6c083523a8435b156c05100d88f449f4754310d5574d5ea403f06f5785e54e43ed84c4ecd73dcda752e0864d61bc406bd4f84495a1ce59"< / span > ,
< span class = "hljs-string" > "88aad09af1b8ba942cfd305e728044ec6360d847254453ec05b1b518a36660e21e1114f3c577d8b7b954505038a9a7372b1546e04ea5c6315d3729c389faa022"< / span > ,
< span class = "hljs-string" > "238360e02f3a004663a7f3a3534973d8b66a2646c1386779aa820672b6361b88b3b3e6babdf51b87edab5c22a7a017085488cb3abdabe09e780db34a8860f88e"< / span > ,
< span class = "hljs-string" > "a8696395c0add87840b460dfd8a8c0d520017efc6bf58267d4c9d2a225c5d0e5ddab4419d6859eae05150160029de1065e895e434bddc6a4e0f547572dc661bb"< / span > ,
< span class = "hljs-string" > "719068a7dda5d630d7432239b6c9d921d5f3842b584503460ca52612ac2e6433a694633a7914f3f155148cceb901ffb81abcb6bc244ce6d28ad6c61c8c9fdd2f"< / span > ,
< span class = "hljs-string" > "7d299513690372e8f4770eb8a28080e8d7c29920ca32af470d65d6f916ee81e3bac60fa715ca02a3a801c71afd4d947c7436e05c558194ad7fdd1aeedb3e83ee"< / span > ,
< span class = "hljs-string" > "ac15ce02684ba6d2522a9ffea1de7e202b4b699ef7ec4f089dda07f3de5b7d1fb515a7eedb33e4d1ad111c5e2c47b36eae320d5be505293026d4c237e7eac3bf"< / span > ,
< span class = "hljs-string" > "853b2c56471999be4efca82674a651c80f047ba3a2b9e6f9999f0cd4062c533dccce9f582e55e7125bb202820fa4e4ec5ffc2da14c03c3b60d53a0a990d9766b"< / span > ,
< span class = "hljs-string" > "1ae29cab2a5e33cbe98728b7b4271c67f7c5cd6e12e39128b9971e08496cbd847530ec3fee05a8eeb4919569fa966b7da6960c9f2abf8d884f61c1f5f0895871"< / span > ,
< span class = "hljs-string" > "cfa99c77c88867d33e73acef37022ba4422a5221776991d45416db71fb54bc6cc339855ca09a01b9a52ef520f7f328ead330803ab37155d619d8499190ed435c"< / span > ,
< span class = "hljs-string" > "104f6a8e50e8905161709215104a7e7b97e866f32cf43233ffd615cab666998360d49fdec41fd2165c1c9fa8e880203034fab805b141cf22817d23ace14a0bd2"< / span > ,
< span class = "hljs-string" > "2ec607cf59c85a7f56fa957aa5f5d7ec9f46d84d5d4b777122d41ad76c6f49689493aba5ad6c0cb16c7d862b7cd9747418e0ffec7d3a4ec1ce394d23114bf765"< / span > ,
< span class = "hljs-string" > "aeedca243f2030d4f502e58f4181130e9afb75309ac21637bcfd0717528bfb828dc8a3114da0cbb7578f57635fcd9daaf1e47cf9214b6605b9a018c1337790cc"< / span > ,
< span class = "hljs-string" > "ffe1b6c9fadee6ba70357210990539184bcc913a0ec65837a736733a2fb6172d581ddc2f08d27b7fd895c7fb305dddba5f3bdb923b83c3fdc3560bad5b6044a8"< / span >
],
< span class = "hljs-string" > "outcomes"< / span > : [
[
< span class = "hljs-string" > "0"< / span > ,
< span class = "hljs-string" > "1"< / span >
],
[
< span class = "hljs-string" > "0"< / span > ,
< span class = "hljs-string" > "1"< / span >
],
[
< span class = "hljs-string" > "0"< / span > ,
< span class = "hljs-string" > "1"< / span >
],
[
< span class = "hljs-string" > "0"< / span > ,
< span class = "hljs-string" > "1"< / span >
],
[
< span class = "hljs-string" > "0"< / span > ,
< span class = "hljs-string" > "1"< / span >
],
[
< span class = "hljs-string" > "0"< / span > ,
< span class = "hljs-string" > "1"< / span >
],
[
< span class = "hljs-string" > "0"< / span > ,
< span class = "hljs-string" > "1"< / span >
],
[
< span class = "hljs-string" > "0"< / span > ,
< span class = "hljs-string" > "1"< / span >
],
[
< span class = "hljs-string" > "0"< / span > ,
< span class = "hljs-string" > "1"< / span >
],
[
< span class = "hljs-string" > "0"< / span > ,
< span class = "hljs-string" > "1"< / span >
],
[
< span class = "hljs-string" > "0"< / span > ,
< span class = "hljs-string" > "1"< / span >
],
[
< span class = "hljs-string" > "0"< / span > ,
< span class = "hljs-string" > "1"< / span >
],
[
< span class = "hljs-string" > "0"< / span > ,
< span class = "hljs-string" > "1"< / span >
],
[
< span class = "hljs-string" > "0"< / span > ,
< span class = "hljs-string" > "1"< / span >
],
[
< span class = "hljs-string" > "0"< / span > ,
< span class = "hljs-string" > "1"< / span >
],
[
< span class = "hljs-string" > "0"< / span > ,
< span class = "hljs-string" > "1"< / span >
],
[
< span class = "hljs-string" > "0"< / span > ,
< span class = "hljs-string" > "1"< / span >
],
< span class = "hljs-string" > "signedOutcome"< / span > : < span class = "hljs-number" > 42069< / span >
]
}
< / code > < / pre >
2023-01-02 18:10:32 +00:00
< / span > < / div > < / article > < / div > < div class = "docLastUpdate" > < em > Last updated on 10/2/2021 by Chris Stewart< / em > < / div > < div class = "docs-prevnext" > < a class = "docs-prev button" href = "/docs/1.9.1/oracle/oracle-election-example" > < span class = "arrow-prev" > ← < / span > < span > Election Example< / span > < / a > < a class = "docs-next button" href = "/docs/1.9.1/oracle-explorer-client/oracle-explorer-client" > < span > Oracle Explorer Client< / span > < span class = "arrow-next" > →< / span > < / a > < / div > < / div > < / div > < nav class = "onPageNav" > < ul class = "toc-headings" > < li > < a href = "#requirements-for-example" > Requirements for example< / a > < / li > < li > < a href = "#signing-btcusd-price" > Signing BTC/USD price< / a > < / li > < li > < a href = "#2-rpc-options" > 2 RPC Options< / a > < ul class = "toc-headings" > < li > < a href = "#createnumericannouncement-rpc" > createnumericannouncement rpc< / a > < / li > < li > < a href = "#createdigitdecompannouncement-rpc" > createdigitdecompannouncement rpc< / a > < / li > < li > < a href = "#understanding-createdigitdecompannouncement-parameters" > Understanding createdigitdecompannouncement parameters< / a > < / li > < / ul > < / li > < li > < a href = "#setting-up-the-btcusd-oracle" > Setting up the BTC/USD oracle< / a > < / li > < li > < a href = "#signing-the-btcusd-price-for-the-oracle" > Signing the BTC/USD price for the oracle< / a > < / li > < / ul > < / nav > < / div > < footer class = "nav-footer" id = "footer" > < section class = "sitemap" > < a href = "/" class = "nav-home" > < img src = "/img/favicon.ico" alt = "bitcoin-s" width = "66" height = "58" / > < / a > < div > < h5 > Docs< / h5 > < a href = "/docs/en/getting-started" > Getting Started< / a > < a href = "/docs/en/core/core-intro" > Guides< / a > < a href = "/api/org/bitcoins" > API Reference< / a > < / div > < div > < h5 > Community< / h5 > < a href = "/en/users.html" > User Showcase< / a > < a href = "https://join.slack.com/t/suredbits/shared_invite/zt-eavycu0x-WQL7XOakzQo8tAy7jHHZUw" target = "_blank" rel = "noreferrer noopener" > Slack< / a > < a href = "https://gitter.im/bitcoin-s-core/" > Gitter chat< / a > < / div > < div > < h5 > More< / h5 > < a href = "https://github.com/bitcoin-s/bitcoin-s" > GitHub< / a > < a class = "github-button" href = "https://github.com/bitcoin-s/bitcoin-s" data-icon = "octicon-star" data-count-href = "/bitcoin-s/bitcoin-s-core/stargazers" data-show-count = "true" data-count-aria-label = "# stargazers on GitHub" aria-label = "Star this project on GitHub" > Star< / a > < / div > < / section > < section class = "copyright" > Copyright © 2023 Suredbits & the bitcoin-s developers< / section > < / footer > < / div > < script type = "text/javascript" src = "https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js" > < / script > < script >
2022-06-28 15:54:09 +00:00
document.addEventListener('keyup', function(e) {
if (e.target !== document.body) {
return;
}
// keyCode for '/' (slash)
if (e.keyCode === 191) {
const search = document.getElementById('search_input_react');
search & & search.focus();
}
});
< / script > < script >
var search = docsearch({
apiKey: '0a510688bf8448e19aeb380377d328d3',
indexName: 'bitcoin-s',
inputSelector: '#search_input_react'
});
< / script > < / body > < / html >