mirror of
https://github.com/fluencelabs/examples
synced 2025-04-25 10:42:16 +00:00
update to marine, marine-test, bump versions
This commit is contained in:
parent
3a6be62bde
commit
2d68a8eebd
@ -7,7 +7,7 @@ edition = "2018"
|
|||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
fluence = { version = "=0.6.2", features = ["logger"] }
|
fluence = { version = "=0.6.9", features = ["logger"] }
|
||||||
log = "0.4.14"
|
log = "0.4.14"
|
||||||
serde_json = "1.0.64"
|
serde_json = "1.0.64"
|
||||||
fstrings = "0.2.3"
|
fstrings = "0.2.3"
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
use crate::curl_request;
|
use crate::curl_request;
|
||||||
use fluence::fce;
|
use fluence::marine;
|
||||||
use fluence::MountedBinaryResult;
|
use fluence::MountedBinaryResult;
|
||||||
|
|
||||||
fn result_to_string(result: MountedBinaryResult) -> String {
|
fn result_to_string(result: MountedBinaryResult) -> String {
|
||||||
@ -25,7 +25,7 @@ fn result_to_string(result: MountedBinaryResult) -> String {
|
|||||||
String::from_utf8(result.stderr).expect("Found invalid UTF-8")
|
String::from_utf8(result.stderr).expect("Found invalid UTF-8")
|
||||||
}
|
}
|
||||||
|
|
||||||
#[fce]
|
#[marine]
|
||||||
pub fn get_latest_block(api_key: String) -> String {
|
pub fn get_latest_block(api_key: String) -> String {
|
||||||
let url =
|
let url =
|
||||||
f!("https://api.etherscan.io/api?module=proxy&action=eth_blockNumber&apikey={api_key}");
|
f!("https://api.etherscan.io/api?module=proxy&action=eth_blockNumber&apikey={api_key}");
|
||||||
@ -38,7 +38,7 @@ pub fn get_latest_block(api_key: String) -> String {
|
|||||||
serde_json::from_value(obj["result"].clone()).unwrap()
|
serde_json::from_value(obj["result"].clone()).unwrap()
|
||||||
}
|
}
|
||||||
|
|
||||||
#[fce]
|
#[marine]
|
||||||
pub fn get_block(api_key: String, block_number: u32) -> String {
|
pub fn get_block(api_key: String, block_number: u32) -> String {
|
||||||
let url = f!("https://api.etherscan.io/api?module=block&action=getblockreward&blockno={block_number}&apikey={api_key}");
|
let url = f!("https://api.etherscan.io/api?module=block&action=getblockreward&blockno={block_number}&apikey={api_key}");
|
||||||
let header = "-d \"\"";
|
let header = "-d \"\"";
|
||||||
|
@ -18,7 +18,7 @@ extern crate fstrings;
|
|||||||
|
|
||||||
use fluence::module_manifest;
|
use fluence::module_manifest;
|
||||||
use fluence::MountedBinaryResult;
|
use fluence::MountedBinaryResult;
|
||||||
use fluence::{fce, WasmLoggerBuilder};
|
use fluence::{marine, WasmLoggerBuilder};
|
||||||
|
|
||||||
mod eth_block_getters;
|
mod eth_block_getters;
|
||||||
|
|
||||||
@ -28,7 +28,7 @@ fn main() {
|
|||||||
WasmLoggerBuilder::new().build().ok();
|
WasmLoggerBuilder::new().build().ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
#[fce]
|
#[marine]
|
||||||
#[link(wasm_import_module = "curl_adapter")]
|
#[link(wasm_import_module = "curl_adapter")]
|
||||||
extern "C" {
|
extern "C" {
|
||||||
pub fn curl_request(curl_cmd: Vec<String>) -> MountedBinaryResult;
|
pub fn curl_request(curl_cmd: Vec<String>) -> MountedBinaryResult;
|
||||||
|
@ -10,6 +10,6 @@ path = "src/main.rs"
|
|||||||
name = "curl_adapter"
|
name = "curl_adapter"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
fluence = { version = "=0.6.2", features = ["logger"] }
|
fluence = { version = "=0.6.9", features = ["logger"] }
|
||||||
log = "0.4.14"
|
log = "0.4.14"
|
||||||
serde_json = "1.0.64"
|
serde_json = "1.0.64"
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
#![allow(improper_ctypes)]
|
#![allow(improper_ctypes)]
|
||||||
|
|
||||||
use fluence::fce;
|
use fluence::marine;
|
||||||
use fluence::module_manifest;
|
use fluence::module_manifest;
|
||||||
use fluence::MountedBinaryResult;
|
use fluence::MountedBinaryResult;
|
||||||
use fluence::WasmLoggerBuilder;
|
use fluence::WasmLoggerBuilder;
|
||||||
@ -26,14 +26,14 @@ fn main() {
|
|||||||
WasmLoggerBuilder::new().build().unwrap();
|
WasmLoggerBuilder::new().build().unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
#[fce]
|
#[marine]
|
||||||
pub fn curl_request(curl_cmd: Vec<String>) -> MountedBinaryResult {
|
pub fn curl_request(curl_cmd: Vec<String>) -> MountedBinaryResult {
|
||||||
let response = curl(curl_cmd);
|
let response = curl(curl_cmd);
|
||||||
response
|
response
|
||||||
}
|
}
|
||||||
|
|
||||||
// mounted_binaries are available to import like this:
|
// mounted_binaries are available to import like this:
|
||||||
#[fce]
|
#[marine]
|
||||||
#[link(wasm_import_module = "host")]
|
#[link(wasm_import_module = "host")]
|
||||||
extern "C" {
|
extern "C" {
|
||||||
pub fn curl(cmd: Vec<String>) -> MountedBinaryResult;
|
pub fn curl(cmd: Vec<String>) -> MountedBinaryResult;
|
||||||
|
@ -9,7 +9,7 @@ name = "ethqlite"
|
|||||||
path = "src/main.rs"
|
path = "src/main.rs"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
fluence = { version="0.6.2", features = ["logger"]}
|
fluence = { version="0.6.9", features = ["logger"]}
|
||||||
log = "0.4.8"
|
log = "0.4.8"
|
||||||
fce-sqlite-connector = "=0.4.0"
|
fce-sqlite-connector = "=0.4.0"
|
||||||
serde = {version = "1.0.118", features=["derive"]}
|
serde = {version = "1.0.118", features=["derive"]}
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -o errexit -o nounset -o pipefail
|
set -o errexit -o nounset -o pipefail
|
||||||
|
|
||||||
# This script builds all subprojects and puts all created Wasm modules in one dir
|
|
||||||
# cargo update
|
cargo update --aggressive
|
||||||
fce build --release
|
marine build --release
|
||||||
|
|
||||||
rm -f artifacts/*.wasm
|
rm -f artifacts/*.wasm
|
||||||
cp target/wasm32-wasi/release/ethqlite.wasm artifacts/
|
cp target/wasm32-wasi/release/ethqlite.wasm artifacts/
|
||||||
|
@ -14,9 +14,9 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use fluence::{fce, CallParameters};
|
|
||||||
use::fluence;
|
|
||||||
use crate::get_connection;
|
use crate::get_connection;
|
||||||
|
use ::fluence;
|
||||||
|
use fluence::{marine, CallParameters};
|
||||||
|
|
||||||
pub fn is_owner() -> bool {
|
pub fn is_owner() -> bool {
|
||||||
let meta = fluence::get_call_parameters();
|
let meta = fluence::get_call_parameters();
|
||||||
@ -26,7 +26,7 @@ pub fn is_owner() -> bool {
|
|||||||
caller == owner
|
caller == owner
|
||||||
}
|
}
|
||||||
|
|
||||||
#[fce]
|
#[marine]
|
||||||
pub fn am_i_owner() -> bool {
|
pub fn am_i_owner() -> bool {
|
||||||
is_owner()
|
is_owner()
|
||||||
}
|
}
|
@ -13,13 +13,12 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
use fluence::fce;
|
|
||||||
use fce_sqlite_connector;
|
use fce_sqlite_connector;
|
||||||
use fce_sqlite_connector::{Connection, Value};
|
use fce_sqlite_connector::{Connection, Value};
|
||||||
|
use fluence::marine;
|
||||||
|
|
||||||
use crate::get_connection;
|
|
||||||
use crate::auth::is_owner;
|
use crate::auth::is_owner;
|
||||||
|
use crate::get_connection;
|
||||||
|
|
||||||
pub fn create_table(conn: &Connection) -> std::result::Result<(), fce_sqlite_connector::Error> {
|
pub fn create_table(conn: &Connection) -> std::result::Result<(), fce_sqlite_connector::Error> {
|
||||||
let res = conn.execute(
|
let res = conn.execute(
|
||||||
@ -36,25 +35,30 @@ pub fn create_table(conn: &Connection) -> std::result::Result<(), fce_sqlite_con
|
|||||||
res
|
res
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[marine]
|
||||||
#[fce]
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub struct UpdateResult {
|
pub struct UpdateResult {
|
||||||
pub success: bool,
|
pub success: bool,
|
||||||
pub err_str: String,
|
pub err_str: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[fce]
|
#[marine]
|
||||||
pub fn update_reward_blocks(data_string: String) -> UpdateResult {
|
pub fn update_reward_blocks(data_string: String) -> UpdateResult {
|
||||||
if !is_owner() {
|
if !is_owner() {
|
||||||
return UpdateResult { success:false, err_str: "You are not the owner".into()};
|
return UpdateResult {
|
||||||
|
success: false,
|
||||||
|
err_str: "You are not the owner".into(),
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
let obj:serde_json::Value = serde_json::from_str(&data_string).unwrap();
|
let obj: serde_json::Value = serde_json::from_str(&data_string).unwrap();
|
||||||
let obj = obj["result"].clone();
|
let obj = obj["result"].clone();
|
||||||
|
|
||||||
if obj["blockNumber"] == serde_json::Value::Null {
|
if obj["blockNumber"] == serde_json::Value::Null {
|
||||||
return UpdateResult { success:false, err_str: "Empty reward block string".into()};
|
return UpdateResult {
|
||||||
|
success: false,
|
||||||
|
err_str: "Empty reward block string".into(),
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
let conn = get_connection();
|
let conn = get_connection();
|
||||||
@ -62,29 +66,42 @@ pub fn update_reward_blocks(data_string: String) -> UpdateResult {
|
|||||||
let insert = "insert or ignore into reward_blocks values(?, ?, ?, ?)";
|
let insert = "insert or ignore into reward_blocks values(?, ?, ?, ?)";
|
||||||
let mut ins_cur = conn.prepare(insert).unwrap().cursor();
|
let mut ins_cur = conn.prepare(insert).unwrap().cursor();
|
||||||
|
|
||||||
|
let insert = ins_cur.bind(&[
|
||||||
let insert = ins_cur.bind(
|
Value::Integer(i64::from_str_radix(obj["blockNumber"].as_str().unwrap(), 10).unwrap()),
|
||||||
&[Value::Integer(i64::from_str_radix(obj["blockNumber"].as_str().unwrap(), 10).unwrap()),
|
Value::Integer(i64::from_str_radix(obj["timeStamp"].as_str().unwrap(), 10).unwrap()),
|
||||||
Value::Integer(i64::from_str_radix(obj["timeStamp"].as_str().unwrap(), 10).unwrap()),
|
Value::String(obj["blockMiner"].to_string()),
|
||||||
Value::String(obj["blockMiner"].to_string()),
|
Value::Integer(
|
||||||
Value::Integer(i64::from_str_radix(obj["blockReward"].clone().as_str().unwrap(), 10).unwrap()),
|
i64::from_str_radix(obj["blockReward"].clone().as_str().unwrap(), 10).unwrap(),
|
||||||
]
|
),
|
||||||
);
|
]);
|
||||||
|
|
||||||
if insert.is_ok() {
|
if insert.is_ok() {
|
||||||
ins_cur.next().unwrap();
|
ins_cur.next().unwrap();
|
||||||
let mut select = conn.prepare("select * from reward_blocks").unwrap().cursor();
|
let mut select = conn
|
||||||
|
.prepare("select * from reward_blocks")
|
||||||
|
.unwrap()
|
||||||
|
.cursor();
|
||||||
while let Some(row) = select.next().unwrap() {
|
while let Some(row) = select.next().unwrap() {
|
||||||
println!("select row {:?}", row);
|
println!("select row {:?}", row);
|
||||||
println!("{}, {}", row[0].as_integer().unwrap(), row[2].as_string().unwrap());
|
println!(
|
||||||
|
"{}, {}",
|
||||||
|
row[0].as_integer().unwrap(),
|
||||||
|
row[2].as_string().unwrap()
|
||||||
|
);
|
||||||
}
|
}
|
||||||
return UpdateResult { success:true, err_str: "".into()};
|
return UpdateResult {
|
||||||
|
success: true,
|
||||||
|
err_str: "".into(),
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
UpdateResult { success:false, err_str: "Insert failed".into()}
|
UpdateResult {
|
||||||
|
success: false,
|
||||||
|
err_str: "Insert failed".into(),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[fce]
|
#[marine]
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub struct RewardBlock {
|
pub struct RewardBlock {
|
||||||
pub block_number: i64,
|
pub block_number: i64,
|
||||||
@ -111,10 +128,9 @@ impl RewardBlock {
|
|||||||
block_reward: String::from(""),
|
block_reward: String::from(""),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[fce]
|
#[marine]
|
||||||
pub fn get_latest_reward_block() -> RewardBlock {
|
pub fn get_latest_reward_block() -> RewardBlock {
|
||||||
// let db_path = "/tmp/db.sqlite";
|
// let db_path = "/tmp/db.sqlite";
|
||||||
let conn = get_connection();
|
let conn = get_connection();
|
||||||
@ -127,7 +143,7 @@ pub fn get_latest_reward_block() -> RewardBlock {
|
|||||||
while let Some(row) = select.next().unwrap() {
|
while let Some(row) = select.next().unwrap() {
|
||||||
println!("get_latest_reward_block: {:?}", row);
|
println!("get_latest_reward_block: {:?}", row);
|
||||||
reward_block = RewardBlock::from_row(row);
|
reward_block = RewardBlock::from_row(row);
|
||||||
};
|
}
|
||||||
return reward_block;
|
return reward_block;
|
||||||
}
|
}
|
||||||
Err(e) => reward_block,
|
Err(e) => reward_block,
|
||||||
@ -135,7 +151,7 @@ pub fn get_latest_reward_block() -> RewardBlock {
|
|||||||
result
|
result
|
||||||
}
|
}
|
||||||
|
|
||||||
#[fce]
|
#[marine]
|
||||||
pub fn get_reward_block(block_number: u32) -> RewardBlock {
|
pub fn get_reward_block(block_number: u32) -> RewardBlock {
|
||||||
let conn = get_connection();
|
let conn = get_connection();
|
||||||
|
|
||||||
@ -149,31 +165,31 @@ pub fn get_reward_block(block_number: u32) -> RewardBlock {
|
|||||||
while let Some(row) = select.next().unwrap() {
|
while let Some(row) = select.next().unwrap() {
|
||||||
println!("get_reward_block: {:?}", row);
|
println!("get_reward_block: {:?}", row);
|
||||||
reward_block = RewardBlock::from_row(row);
|
reward_block = RewardBlock::from_row(row);
|
||||||
};
|
}
|
||||||
return reward_block;
|
return reward_block;
|
||||||
}
|
}
|
||||||
Err(e) => reward_block
|
Err(e) => reward_block,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[fce]
|
#[marine]
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub struct MinerRewards {
|
pub struct MinerRewards {
|
||||||
pub miner_address: String,
|
pub miner_address: String,
|
||||||
pub rewards: Vec<String>
|
pub rewards: Vec<String>,
|
||||||
}
|
}
|
||||||
impl MinerRewards {
|
impl MinerRewards {
|
||||||
fn new(miner_address: String) -> Self {
|
fn new(miner_address: String) -> Self {
|
||||||
let rewards:Vec<String> = Vec::new();
|
let rewards: Vec<String> = Vec::new();
|
||||||
|
|
||||||
MinerRewards {
|
MinerRewards {
|
||||||
miner_address,
|
miner_address,
|
||||||
rewards
|
rewards,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[fce]
|
#[marine]
|
||||||
pub fn get_miner_rewards(miner_address: String) -> MinerRewards {
|
pub fn get_miner_rewards(miner_address: String) -> MinerRewards {
|
||||||
let conn = get_connection();
|
let conn = get_connection();
|
||||||
|
|
||||||
@ -187,8 +203,10 @@ pub fn get_miner_rewards(miner_address: String) -> MinerRewards {
|
|||||||
select.bind(&[Value::String(miner_address)]).unwrap();
|
select.bind(&[Value::String(miner_address)]).unwrap();
|
||||||
while let Some(row) = select.next().unwrap() {
|
while let Some(row) = select.next().unwrap() {
|
||||||
println!("reward row {:?}", row);
|
println!("reward row {:?}", row);
|
||||||
miner_rewards.rewards.push(row[0].as_integer().unwrap().to_string());
|
miner_rewards
|
||||||
};
|
.rewards
|
||||||
|
.push(row[0].as_integer().unwrap().to_string());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Err(e) => log::error!("suck it"), //(format!("{:?}",e))
|
Err(e) => log::error!("suck it"), //(format!("{:?}",e))
|
||||||
};
|
};
|
||||||
|
@ -14,70 +14,76 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use fluence::fce; ///, WasmLoggerBuilder};
|
|
||||||
use fluence;
|
|
||||||
use fluence::WasmLoggerBuilder;
|
|
||||||
use fce_sqlite_connector;
|
use fce_sqlite_connector;
|
||||||
use fce_sqlite_connector::{Connection, State, Value};
|
use fce_sqlite_connector::{Connection, State, Value};
|
||||||
|
///, WasmLoggerBuilder};
|
||||||
|
use fluence;
|
||||||
|
use fluence::marine;
|
||||||
|
use fluence::WasmLoggerBuilder;
|
||||||
|
|
||||||
|
|
||||||
use std::path::{Path, PathBuf};
|
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
use serde_json;
|
use serde_json;
|
||||||
|
use std::path::{Path, PathBuf};
|
||||||
|
|
||||||
use std::sync::atomic::{AtomicBool, Ordering};
|
use std::sync::atomic::{AtomicBool, Ordering};
|
||||||
|
|
||||||
use crate::crud::create_table;
|
|
||||||
use crate::auth::is_owner;
|
use crate::auth::is_owner;
|
||||||
|
use crate::crud::create_table;
|
||||||
|
|
||||||
const DB_PATH: &str = "/tmp/fluence_service_db.sqlite";
|
const DB_PATH: &str = "/tmp/fluence_service_db.sqlite";
|
||||||
|
|
||||||
|
|
||||||
mod crud;
|
|
||||||
mod auth;
|
mod auth;
|
||||||
|
mod crud;
|
||||||
|
|
||||||
pub static INIT: AtomicBool = AtomicBool::new(false);
|
pub static INIT: AtomicBool = AtomicBool::new(false);
|
||||||
|
|
||||||
fn main() {}
|
fn main() {}
|
||||||
|
|
||||||
|
|
||||||
fn get_connection() -> Connection {
|
fn get_connection() -> Connection {
|
||||||
Connection::open(DB_PATH).unwrap()
|
Connection::open(DB_PATH).unwrap()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[marine]
|
||||||
#[fce]
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub struct InitResult {
|
pub struct InitResult {
|
||||||
pub success: bool,
|
pub success: bool,
|
||||||
pub err_msg: String,
|
pub err_msg: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[fce]
|
#[fmarinece]
|
||||||
pub fn init_service() -> InitResult {
|
pub fn init_service() -> InitResult {
|
||||||
|
|
||||||
if !is_owner() {
|
if !is_owner() {
|
||||||
return InitResult {success: false, err_msg: "Not authorized to use this service".into()};
|
return InitResult {
|
||||||
|
success: false,
|
||||||
|
err_msg: "Not authorized to use this service".into(),
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
if INIT.load(Ordering::Relaxed) {
|
if INIT.load(Ordering::Relaxed) {
|
||||||
return InitResult {success: false, err_msg: "Service already initiated".into()};
|
return InitResult {
|
||||||
|
success: false,
|
||||||
|
err_msg: "Service already initiated".into(),
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
let conn = get_connection();
|
let conn = get_connection();
|
||||||
let res = create_table(&conn);
|
let res = create_table(&conn);
|
||||||
if res.is_err() {
|
if res.is_err() {
|
||||||
return InitResult {success: false, err_msg: "Failure to create tables".into()};
|
return InitResult {
|
||||||
|
success: false,
|
||||||
|
err_msg: "Failure to create tables".into(),
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: implement rollbacks
|
// TODO: implement rollbacks
|
||||||
|
|
||||||
INIT.store(true, Ordering::Relaxed);
|
INIT.store(true, Ordering::Relaxed);
|
||||||
InitResult {success: true, err_msg: "".into()}
|
InitResult {
|
||||||
|
success: true,
|
||||||
|
err_msg: "".into(),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[marine]
|
||||||
#[fce]
|
|
||||||
pub fn owner_nuclear_reset() -> bool {
|
pub fn owner_nuclear_reset() -> bool {
|
||||||
if !is_owner() {
|
if !is_owner() {
|
||||||
return false;
|
return false;
|
||||||
|
@ -7,6 +7,6 @@ edition = "2018"
|
|||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
fluence = { version = "=0.6.2", features = ["logger"] }
|
fluence = { version = "=0.6.9", features = ["logger"] }
|
||||||
log = "0.4.8"
|
log = "0.4.8"
|
||||||
serde_json = "1.0.64"
|
serde_json = "1.0.64"
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
use fluence::module_manifest;
|
use fluence::module_manifest;
|
||||||
use fluence::{fce, WasmLoggerBuilder};
|
use fluence::{marine, WasmLoggerBuilder};
|
||||||
use serde_json;
|
use serde_json;
|
||||||
|
|
||||||
module_manifest!();
|
module_manifest!();
|
||||||
@ -8,7 +8,7 @@ fn main() {
|
|||||||
WasmLoggerBuilder::new().build().ok();
|
WasmLoggerBuilder::new().build().ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
#[fce]
|
#[marine]
|
||||||
pub fn extract_miner_address(json_string: String) -> String {
|
pub fn extract_miner_address(json_string: String) -> String {
|
||||||
let obj = serde_json::from_str::<serde_json::Value>(&json_string);
|
let obj = serde_json::from_str::<serde_json::Value>(&json_string);
|
||||||
match obj {
|
match obj {
|
||||||
|
@ -4,9 +4,7 @@ version = "0.1.0"
|
|||||||
authors = ["boneyard93501 <4523011+boneyard93501@users.noreply.github.com>"]
|
authors = ["boneyard93501 <4523011+boneyard93501@users.noreply.github.com>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
fluence = { version = "=0.6.2", features = ["logger"] }
|
fluence = { version = "=0.6.9", features = ["logger"] }
|
||||||
log = "0.4.8"
|
log = "0.4.8"
|
||||||
serde_json = "1.0.64"
|
serde_json = "1.0.64"
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
use fluence::module_manifest;
|
use fluence::module_manifest;
|
||||||
use fluence::{fce, WasmLoggerBuilder};
|
use fluence::{marine, WasmLoggerBuilder};
|
||||||
use serde_json;
|
use serde_json;
|
||||||
|
|
||||||
module_manifest!();
|
module_manifest!();
|
||||||
@ -24,7 +24,7 @@ fn main() {
|
|||||||
WasmLoggerBuilder::new().build().ok();
|
WasmLoggerBuilder::new().build().ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
#[fce]
|
#[marine]
|
||||||
pub fn hex_to_int(data: String) -> u64 {
|
pub fn hex_to_int(data: String) -> u64 {
|
||||||
if data.starts_with("0x") {
|
if data.starts_with("0x") {
|
||||||
let res = u64::from_str_radix(&data[2..], 16);
|
let res = u64::from_str_radix(&data[2..], 16);
|
||||||
|
@ -1,24 +1,20 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -o errexit -o nounset -o pipefail
|
set -o errexit -o nounset -o pipefail
|
||||||
|
|
||||||
mkdir -p artifacts
|
|
||||||
|
|
||||||
cd curl_adapter
|
cd curl_adapter
|
||||||
fce build --release
|
marine build --release
|
||||||
cd ..
|
|
||||||
|
cd ../hex_converter
|
||||||
cd hex_converter
|
marine build --release
|
||||||
fce build --release
|
|
||||||
cd ..
|
cd ../block_getter
|
||||||
|
marine build --release
|
||||||
cd block_getter
|
|
||||||
fce build --release
|
cd ../extract_miner_address
|
||||||
cd ..
|
marine build --release
|
||||||
|
|
||||||
cd extract_miner_address
|
|
||||||
fce build --release
|
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
|
mkdir -p artifacts
|
||||||
rm -f artifacts/*.wasm
|
rm -f artifacts/*.wasm
|
||||||
|
|
||||||
cp curl_adapter/target/wasm32-wasi/release/curl_adapter.wasm artifacts/
|
cp curl_adapter/target/wasm32-wasi/release/curl_adapter.wasm artifacts/
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
use fluence::fce;
|
use fluence::marine;
|
||||||
use fluence::module_manifest;
|
use fluence::module_manifest;
|
||||||
|
|
||||||
module_manifest!();
|
module_manifest!();
|
||||||
|
|
||||||
fn main() {}
|
fn main() {}
|
||||||
|
|
||||||
#[fce]
|
#[marine]
|
||||||
fn simple_range_list(start: i64, step: u32, n: u32) -> Vec<i64> {
|
fn simple_range_list(start: i64, step: u32, n: u32) -> Vec<i64> {
|
||||||
let mut result: Vec<i64> = Vec::new();
|
let mut result: Vec<i64> = Vec::new();
|
||||||
let stop = start - n as i64;
|
let stop = start - n as i64;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user