MCPcopy Create free account
hub / github.com/Modulus-Labs/RockyBot / handler

Function handler

ContractStarter/get_contract_data.ts:29–91  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

27import { getTokensQuery, TokenPriceSliceData } from '../DataAquisition/scripts/get_token_price';
28
29export 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),

Callers 1

Calls 4

getTokensQueryFunction · 0.90
currentAmountUSDCMethod · 0.80
currentAmountWEthMethod · 0.80
connectMethod · 0.65

Tested by

no test coverage detected