Socket
Book a DemoInstallSign in
Socket

contract2object

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

contract2object

스마트 계약의 ABI와 [UPPERCASE의 OOP 기능](https://github.com/Hanul/UPPERCASE/blob/master/DOC/GUIDE/OOP.md)을 이용하여 스마트 계약을 JavaScript 객체로 만들어 줍니다.

latest
npmnpm
Version
0.0.4
Version published
Weekly downloads
0
Maintainers
1
Weekly downloads
 
Created
Source

Contract2Object

스마트 계약의 ABI와 UPPERCASE의 OOP 기능을 이용하여 스마트 계약을 JavaScript 객체로 만들어 줍니다.

License: MIT

UPPERCASE 환경

프로젝트의 DEPENDENCY 파일에 Hanul/Contract2Object를 추가합니다.

웹 브라우저 환경

Contract2Object는 UPPERCASE-CORE-COMMON에 의존적입니다. 따라서 UPPERCASE-CORE/COMMON.js 코드가 필요합니다.

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
	</head>
	<body>
	    <script src="UPPERCASE-CORE/COMMON.js"></script>
	    <script src="Contract2Object.js"></script>
	    <!-- main.js에 코드 입력 -->
	    <script src="main.js"></script>
	    <script>INIT_OBJECTS();</script>
	</body>
</html>

Node.js 환경

npm install contract2object
require('contract2object');

SomeContract = OBJECT({
	preset : () => {
		return Contract2Object;
	},
	...

사용 방법

SomeContract = OBJECT({
	preset : () => {
		return Contract2Object;
	},
	params : () => {
		return {
			abi : [{"constant":true,"inputs":...,
			address : '0x031Fa6bE087416386ab6b85fE97A0856164821c2'
		};
	}
});

예를 들어 스마트 계약에 다음과 같은 함수가 있다면,

function balanceOf(address user) external view returns (uint256 balance) {
	return balances[user];
}

다음과 같이 JavaScript 함수로 사용할 수 있습니다.

SomeContract.balancOf(user, (balance) => {
	...
});

너무 큰 숫자의 경우 JavaScript의 숫자 타입으로는 범위가 벗어나는 경우가 있으므로, 이를 방지하고자 숫자의 경우 다음과 같이 문자열로도 반환합니다.

SomeContract.balancOf(user, (balance, balanceStr) => {
	...
});

트랜잭션을 기다려야 하는 함수의 경우 트랜잭션이 끝나고 콜백이 실행됩니다.

SomeContract.approve({
	spender : spender,
	amount : amount
}, () => {
	...
});

만약 트랜잭션 주소를 가져와야 하는 경우에는 다음과 같이 콜백을 2개 지정합니다.

SomeContract.approve({
	spender : spender,
	amount : amount
}, {
	transactionAddress : (address) => {
		...
	},
	success : () => {
		...
	}
});

payable 함수를 실행하는 경우에는 파라미터에 ether를 추가할 수 있습니다.

SomeContract.buy({
	ether : 12,
	amount : amount
}, () => {
	...
});

사용 예시

라이센스

MIT

작성자

Young Jae Sim

FAQs

Package last updated on 30 Oct 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts