Git Product home page Git Product logo

math-harmonyjs's Introduction

math-harmony

Compile

npm run install
npm run serve

Harmony Web3 API

     /***
	 * login
	 * @return account {"address":"one1...","name":"cc1"}
	 */
	async login() {
		if (!window.harmony) {
			throw new Error("Please install the MathWallet first");
		}
		// Account
		const account = await window.harmony.getAccount();
		// Use address
		const { address, name } = account;

		return account;
	}
	/***
	 * Forget Identity
	 * @return true\false
	 */
	async forgetIdentity() {
		// sign out
		const success = await window.harmony.forgetIdentity();
		return success;
	}
	/***
	 * Transfer
	 * @param from from(bech32)
	 * @param to to(bech32)
	 * @param amount amount
	 * @return hash
	 */
	async transfer(from, to, amount) {
		const rpcUrl = "http://s0.b.hmny.io:9500";
		// Harmony config
		const config = {
			chainType: ChainType.Harmony,
			chainUrl: rpcUrl
		};
		// Blockchain
		const harmony = new Harmony(rpcUrl, config);
		
		// Shards
		const shardsResponse = await harmony.blockchain.getShardingStructure();
		const shards = shardsResponse.result;
		// result = [
		//	    {
		//	      shardID: 0,
		//	      http: 'http://localhost:9500',
		//	      ws: 'ws://localhost:9800',
		//	    },
		//	    {
		//	      shardID: 1,
		//	      http: 'http://localhost:9501',
		//	      ws: 'ws://localhost:9801',
		//	    },
		//	 ];
		
		// use first shard
		const useShard = shards[0];
		
		// Transaction
		const txnObject = {
			`${from}_${useShard.shardID}`,
			`${to}_${useShard.shardID}`,
			value: new harmony.utils.Unit(amount).asEther().toWei(),
			gasLimit: '210000',
			gasPrice: new harmony.utils.Unit('100').asGwei().toWei(),
		};

		const txn = harmony.transactions.newTx(txnObject,true);
		const signed = await window.harmony.signTransaction(txn);
		return signed.sendTransaction();
	}

Test

Download MathWallet Extesion

https://medishares-cn.oss-cn-hangzhou.aliyuncs.com/extension/mathwalletplus-v2.1.9.zip

math-harmonyjs's People

Contributors

yuzhiyou1990 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.