()
| 27 | import { getTokensQuery, TokenPriceSliceData } from '../DataAquisition/scripts/get_token_price'; |
| 28 | |
| 29 | export async function handler (): Promise<void> { |
| 30 | const provider = new ethers.providers.AlchemyProvider("mainnet", "-HC6HC2R9crhQe3tcu4h4Qq2nYfCRc9t"); |
| 31 | const RfB = RockafellerBotL1__factory.connect(config.L1_CONTRACT_ADDRESS, provider); |
| 32 | /*const sn_keypair = ec.getKeyPair(number.toBN(config.SN_PRIVATE_KEY)); |
| 33 | const account_address = config.SN_ACCOUNT_ADDRESS; |
| 34 | |
| 35 | const sn_provider = new Provider(); |
| 36 | const sn_account = new Account(sn_provider, account_address, sn_keypair); |
| 37 | |
| 38 | const L2Contract = new Contract(sn_abi as Abi, config.SN_CONTRACT_ADDRESS, sn_account);*/ |
| 39 | |
| 40 | var enddate: Date = new Date(Date.now()); |
| 41 | |
| 42 | var startdate: Date = new Date(enddate.getTime() - 60*60*1000*36) |
| 43 | |
| 44 | var data = await getTokensQuery("WETH", WETH_ADDRESS, startdate, enddate); |
| 45 | |
| 46 | var dataPost = data.map((item: TokenPriceSliceData) => {return Math.trunc((data[0].price - item.price)*(10**8))}); |
| 47 | |
| 48 | if(dataPost.length != 36) throw `Data gotten from TheGraph is not of sufficient length: Should be 36; actually ${dataPost.length}`; |
| 49 | var remaining_usdc = await RfB.currentAmountUSDC(); |
| 50 | var remaining_weth = await RfB.currentAmountWEth(); |
| 51 | var curr_price = data[0].price; |
| 52 | var price_ratio = Math.trunc((1/curr_price)*(10**12)) |
| 53 | |
| 54 | const body = { price_ratio: price_ratio, remaining_usdc: remaining_usdc.toString(), remaining_weth: remaining_weth.toString(), data_len: dataPost.length, data: dataPost, |
| 55 | a_num_rows: mw.a_num_rows, a_num_cols: mw.a_num_cols, a_data_ptr_len: mw.a_data_ptr_len, a_data_ptr: mw.a_data_ptr, a_bias_ptr_len: mw.a_bias_ptr_len, a_bias_ptr: mw.a_bias_ptr, |
| 56 | b_num_rows: mw.b_num_rows, b_num_cols: mw.b_num_cols, b_data_ptr_len: mw.b_data_ptr_len, b_data_ptr: mw.b_data_ptr, b_bias_ptr_len: mw.b_bias_ptr_len, b_bias_ptr: mw.b_bias_ptr, |
| 57 | c_num_rows: mw.c_num_rows, c_num_cols: mw.c_num_cols, c_data_ptr_len: mw.c_data_ptr_len, c_data_ptr: mw.c_data_ptr, c_bias_ptr_len: mw.c_bias_ptr_len, c_bias_ptr: mw.c_bias_ptr,} |
| 58 | |
| 59 | //var s3 = new aws.S3({apiVersion:'latest'}) |
| 60 | |
| 61 | const now = new Date(); |
| 62 | |
| 63 | var filepath = join(process.env.environment ?? 'dev', LOAD_DIR, `current_modeldata.json`); |
| 64 | |
| 65 | //const detailsPath = join(process.env.environment ?? 'dev', LOAD_DIR, 'current.json') |
| 66 | |
| 67 | const detailsBody = JSON.stringify({dateTime: now.toISOString(), pathPrefix: process.env.environment ?? 'dev', fileName: now.toISOString() + '_modeldata.json'}); |
| 68 | |
| 69 | // const details_file = await s3.upload({ |
| 70 | // Bucket: 'rocky-modeldatabucket', |
| 71 | // Key: detailsPath, |
| 72 | // Body: detailsBody |
| 73 | // }).promise(); |
| 74 | |
| 75 | |
| 76 | // const data_file = await s3.upload({ |
| 77 | // Bucket: 'rocky-modeldatabucket', |
| 78 | // Key: filepath, |
| 79 | // Body: JSON.stringify(body) |
| 80 | // }).promise(); |
| 81 | |
| 82 | fs.writeFileSync(filepath, JSON.stringify(body)); |
| 83 | |
| 84 | //L2Contract.calculateStrategy(remaining_weth, remaining_usdc, weth_price_ratio, ) |
| 85 | /*var result = await L2Contract.three_layer_nn(dataPost, mw.a_num_rows, mw.a_num_cols, removeNegatives(mw.a_data_ptr), removeNegatives(mw.a_bias_ptr), |
| 86 | mw.b_num_rows, mw.b_num_cols, removeNegatives(mw.b_data_ptr), removeNegatives(mw.b_bias_ptr), |
no test coverage detected