1"use strict";(globalThis.webpackChunkredstone_docs||=[]).push([[7846],{8449(e,n,r){r.r(n),r.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>t,metadata:()=>a,toc:()=>i});const a=JSON.parse('{"id":"technical-reference/non-evm-chains/solana/price-adapter","title":"RedStone Solana Price Adapter","description":"- The PriceAdapter contract is updated from one or more off-chain processes.","source":"@site/docs/technical-reference/non-evm-chains/solana/price-adapter.md","sourceDirName":"technical-reference/non-evm-chains/solana","slug":"/technical-reference/non-evm-chains/solana/price-adapter","permalink":"/docs/technical-reference/non-evm-chains/solana/price-adapter","draft":false,"unlisted":false,"editUrl":"https://github.com/redstone-finance/redstone-docs/tree/main/docs/technical-reference/non-evm-chains/solana/price-adapter.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1,"sidebar_label":"Price Adapter"},"sidebar":"tutorialSidebar","previous":{"title":"Solana","permalink":"/docs/technical-reference/non-evm-chains/solana/"},"next":{"title":"Price Feed Account","permalink":"/docs/technical-reference/non-evm-chains/solana/price-feed-account"}}');var c=r(4848),s=r(8453);const t={sidebar_position:1,sidebar_label:"Price Adapter"},o="RedStone Solana Price Adapter",d={},i=[{value:"Already deployed addresses",id:"already-deployed-addresses",level:2}];function l(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(n.header,{children:(0,c.jsx)(n.h1,{id:"redstone-solana-price-adapter",children:"RedStone Solana Price Adapter"})}),"\n",(0,c.jsxs)(n.ul,{children:["\n",(0,c.jsxs)(n.li,{children:["The ",(0,c.jsx)(n.a,{href:"https://github.com/redstone-finance/redstone-oracles-monorepo/tree/main/packages/solana-connector/deployments/solanaMultiFeed/programs/redstone-solana-price-adapter/README.md",children:"PriceAdapter"})," contract is updated from one or more off-chain processes."]}),"\n",(0,c.jsxs)(n.li,{children:["The data is written to a ",(0,c.jsx)(n.a,{href:"/docs/technical-reference/non-evm-chains/solana/price-feed-account#structure",children:(0,c.jsx)(n.code,{children:"PriceData"})})," structure in an account created per each feed id"]}),"\n",(0,c.jsxs)(n.li,{children:["The contract can be read by one of ",(0,c.jsx)(n.code,{children:"view"})," functions."]}),"\n",(0,c.jsxs)(n.li,{children:["The parameters/logic update requires changing the code.","\n",(0,c.jsxs)(n.ul,{children:["\n",(0,c.jsxs)(n.li,{children:["Still, ",(0,c.jsxs)(n.strong,{children:["the ",(0,c.jsx)(n.a,{href:"/docs/technical-reference/non-evm-chains/solana/price-feed-account#deriving-account-addresses",children:"Price Feed Account Address"})," remains unchanged"]}),"\nand is readable forever."]}),"\n"]}),"\n"]}),"\n",(0,c.jsxs)(n.li,{children:["The IDL files are available in the ",(0,c.jsx)(n.a,{href:"https://github.com/redstone-finance/redstone-oracles-monorepo/tree/main/packages/solana-connector/src/_autogenerated",children:"monorepo directory"}),".","\n",(0,c.jsxs)(n.ul,{children:["\n",(0,c.jsx)(n.li,{children:"The address field there is empty \u2014 use the deployed one."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,c.jsx)(n.h2,{id:"already-deployed-addresses",children:"Already deployed addresses"}),"\n",(0,c.jsxs)(n.ul,{children:["\n",(0,c.jsxs)(n.li,{children:["Mainnet: ",(0,c.jsx)(n.a,{href:"https://solscan.io/account/REDSTBDUecGjwXd6YGPzHSvEUBHQqVRfCcjUVgPiHsr",children:(0,c.jsx)(n.code,{children:"REDSTBDUecGjwXd6YGPzHSvEUBHQqVRfCcjUVgPiHsr"})})]}),"\n",(0,c.jsxs)(n.li,{children:["Testnet: ",(0,c.jsx)(n.a,{href:"https://solscan.io/account/rds8J7VKqLQgzDr7vS59dkQga3B1BotgFy8F7LSLC74?cluster=testnet",children:(0,c.jsx)(n.code,{children:"rds8J7VKqLQgzDr7vS59dkQga3B1BotgFy8F7LSLC74"})})]}),"\n",(0,c.jsxs)(n.li,{children:["Devnet: ",(0,c.jsx)(n.a,{href:"https://solscan.io/account/REDuYsnEucMweattdv4xQCYdU1i8Q2W92kdayrpY9rA?cluster=devnet",children:(0,c.jsx)(n.code,{children:"REDuYsnEucMweattdv4xQCYdU1i8Q2W92kdayrpY9rA"})})]}),"\n"]}),"\n",(0,c.jsxs)(n.blockquote,{children:["\n",(0,c.jsx)(n.p,{children:"\u26a0\ufe0f The Testnet and Devnet contracts are deployed by using RedStone dev infrastru
1cture and may contain some gaps in data when it's being upgraded"}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,c.jsx)(n,{...e,children:(0,c.jsx)(l,{...e})}):l(e)}},8453(e,n,r){r.d(n,{R:()=>t,x:()=>o});var a=r(6540);const c={},s=a.createContext(c);function t(e){const n=a.useContext(s);return a.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:t(e.components),a.createElement(s.Provider,{value:n},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.