GithubHelp home page GithubHelp logo

quanta-erc20's Introduction

Quanta Token Generation

Deployment Flow

  • Deploy QuantaToken.sol. The listing can be done by a standard private key or a multi-sig key, which is the owner of the contract. The Quanta token, inheriting from custom PausableToken, gets deployed by this contract. An admin account address and the total amount of tokens are passed and used to initialize the Quanta token. Token transfers are initially only allowed for the owner of the contract and admin account.

  • The pre-minted tokens are initially assigned to the owner's account. The admin account may also transfer tokens initially. No other public account can send/receive during this period.

  • The admin address should distribute the tokens to individual contributor accounts during this period.

  • At some time T1, token.pause(false, false) may be called which will enable transfers of the zilliqa token for everyone.

  • At some time in the future, token.pause(true, true) may be called by the owner. This would stop all transfers for everyone (public, admin and owner). Only token burning would be allowed at this stage.

Deployment Steps

Deploy using truffle:

To test on the Ropsten network, execute truffle migrate --network ropsten which uses the existing API keys in /truffle.js.

To deploy on mainnet, execute truffle migrate.

Testing

Install https://github.com/trufflesuite/ganache

truffle test --network develop

Per module description

The system has 1 main module - the token module.

Token

Implemented in QuantaToken.sol. The token is fully compatible with ERC20 standard, with some additions:

  1. It has a burning functionality that allows user to burn their tokens. To optimize gas cost, an auxiliary burnFrom function was also implemented. This function allows sender to burn tokens that were approved by a spender.

  2. Only the owner and admin accounts are allowed to transfer tokens before the transfer period starts. No token transfer would be allowed after calling pause(true, true) in the future.

Pause States

There are 2 flags, pausedPublic and pausedOwnerAdmin.

  1. In the initial stage, pausedPublic is true and pausedOwnerAdmin is false. This means only the owner and admin can transfer tokens.

  2. In the second stage, pausedPublic and pausedOwnerAdmin both are false. Everybody can transfer tokens in this stage.

  3. In the final stage (lock up), pausedPublic and pausedOwnerAdmin both are true. Nobody can now transfer tokens.

  4. Tokens can be burnt at any time by anyone.

  5. Only the owner and admin accounts are allowed to transfer tokens before the transfer period starts. No token transfer would be allowed after calling pause(true, true) in the future.

Use of zeppelin code

We use open-zepplin code for SafeMath, Ownable, StandardToken and Pausable logic.

Debug codes:

QuantaToken.deployed().then ( (e) => e.allowance("0x0833030c730792fdd9b77cc54f43d7921c356bf1","0xba420ef5d725361d8fdc58cb1e4fa62eda9ec990"));

QuantaToken.deployed().then ( (e) => e.approve("0xba420ef5d725361d8fdc58cb1e4fa62eda9ec990", 100000 * (10 ** 12)));

Bytecode

{
	"linkReferences": {},
	"object": "60606040526003805460a860020a60ff021960a060020a60ff0219909116740100000000000000000000000000000000000000001716905567058d15e176280000600555341561004e57600080fd5b60038054600160a060020a03338116600160a060020a0319928316811793849055600480549093169390911692909217905560055460008181558281526001602052604080822083905590917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915190815260200160405180910390a3610dd4806100da6000396000f3006060604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461010b578063095ea7b31461019557806318160ddd146101cb57806323b872dd146101f057806324bb7c26146102185780632ff2e9dc1461022b578063313ce5671461023e57806364779ad714610267578063661884631461027a57806370a082311461029c5780638da5cb5b146102bb5780638f283970146102ea57806395d89b411461030b578063a9059cbb1461031e578063d73dd62314610340578063dd62ed3e14610362578063ddeb509414610387578063f2fde38b146103a4578063f851a440146103c3575b600080fd5b341561011657600080fd5b61011e6103d6565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561015a578082015183820152602001610142565b50505050905090810190601f1680156101875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101a057600080fd5b6101b7600160a060020a036004351660243561040d565b604051901515815260200160405180910390f35b34156101d657600080fd5b6101de61047c565b60405190815260200160405180910390f35b34156101fb57600080fd5b6101b7600160a060020a0360043581169060243516604435610482565b341561022357600080fd5b6101b76104f3565b341561023657600080fd5b6101de610503565b341561024957600080fd5b610251610509565b60405160ff909116815260200160405180910390f35b341561027257600080fd5b6101b761050e565b341561028557600080fd5b6101b7600160a060020a036004351660243561051e565b34156102a757600080fd5b6101de600160a060020a0360043516610586565b34156102c657600080fd5b6102ce6105a1565b604051600160a060020a03909116815260200160405180910390f35b34156102f557600080fd5b610309600160a060020a03600435166105b0565b005b341561031657600080fd5b61011e610636565b341561032957600080fd5b6101b7600160a060020a036004351660243561066d565b341561034b57600080fd5b6101b7600160a060020a03600435166024356106d5565b341561036d57600080fd5b6101de600160a060020a036004358116906024351661073d565b341561039257600080fd5b61030960043515156024351515610768565b34156103af57600080fd5b610309600160a060020a0360043516610856565b34156103ce57600080fd5b6102ce6108f1565b60408051908101604052600681527f5155414e54410000000000000000000000000000000000000000000000000000602082015281565b60035460009060a060020a900460ff161561046b5760035460a860020a900460ff1615156101065760045433600160a060020a0390811691161480610460575060035433600160a060020a039081169116145b151561046b57600080fd5b6104758383610900565b9392505050565b60005481565b60035460009060a060020a900460ff16156104e05760035460a860020a900460ff1615156101065760045433600160a060020a03908116911614806104d5575060035433600160a060020a039081169116145b15156104e057600080fd5b6104eb84848461096c565b949350505050565b60035460a060020a900460ff1681565b60055481565b600981565b60035460a860020a900460ff1681565b60035460009060a060020a900460ff161561057c5760035460a860020a900460ff1615156101065760045433600160a060020a0390811691161480610571575060035433600160a060020a039081169116145b151561057c57600080fd5b6104758383610aee565b600160a060020a031660009081526001602052604090205490565b600354600160a060020a031681565b60035433600160a060020a039081169116146105cb57600080fd5b600454600160a060020a0380831691167ff8ccb027dfcd135e000e9d45e6cc2d662578a8825d4c45b5e32e0adf67e79ec660405160405180910390a36004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60408051908101604052600481527f5144455800000000000000000000000000000000000000000000000000000000602082015281565b60035460009060a060020a900460ff16156106cb5760035460a860020a900460ff1615156101065760045433600160a060020a03908116911614806106c0575060035433600160a060020a039081169116145b15156106cb57600080fd5b6104758383610be8565b60035460009060a060020a900460ff16156107335760035460a860020a900460ff1615156101065760045433600160a060020a0390811691161480610728575060035433600160a060020a039081169116145b151561073357600080fd5b6104758383610ce3565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60035433600160a060020a0390811691161461078357600080fd5b8115801561079357506001811515145b1561079d57600080fd5b6003805474ff0000000000000000000000000000000000000000191660a060020a841515021775ff000000000000000000000000000000000000000000191660a860020a831515021790557fa14d191ca4f53bfcf003c65d429362010a2d3d68bc0c50cce4bdc0fccf661fb082604051901515815260200160405180910390a17fc77636fc4a62a1fa193ef538c0b7993a1313a0d9c0a9173058cebcd3239ef7b581604051901515815260200160405180910390a15050565b60035433600160a060020a0390811691161461087157600080fd5b600160a060020a038116151561088657600080fd5b600354600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600454600160a060020a031681565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b6000600160a060020a038316151561098357600080fd5b600160a060020a0384166000908152600160205260409020548211156109a857600080fd5b600160a060020a03808516600090815260026020908152604080832033909416835292905220548211156109db57600080fd5b600160a060020a038416600090815260016020526040902054610a04908363ffffffff610d8716565b600160a060020a038086166000908152600160205260408082209390935590851681522054610a39908363ffffffff610d9916565b600160a060020a03808516600090815260016020908152604080832094909455878316825260028152838220339093168252919091522054610a81908363ffffffff610d8716565b600160a060020a03808616600081815260026020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b600160a060020a03338116600090815260026020908152604080832093861683529290529081205480831115610b4b57600160a060020a033381166000908152600260209081526040808320938816835292905290812055610b82565b610b5b818463ffffffff610d8716565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b6000600160a060020a0383161515610bff57600080fd5b600160a060020a033316600090815260016020526040902054821115610c2457600080fd5b600160a060020a033316600090815260016020526040902054610c4d908363ffffffff610d8716565b600160a060020a033381166000908152600160205260408082209390935590851681522054610c82908363ffffffff610d9916565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b600160a060020a033381166000908152600260209081526040808320938616835292905290812054610d1b908363ffffffff610d9916565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600082821115610d9357fe5b50900390565b60008282018381101561047557fe00a165627a7a72305820721b5ed5afab457ce2b36f78ad5add2a83b8c4d57530f0fae614e0e5b1d390890029",
	"opcodes": "PUSH1 0x60 PUSH1 0x40 MSTORE PUSH1 0x3 DUP1 SLOAD PUSH1 0xA8 PUSH1 0x2 EXP PUSH1 0xFF MUL NOT PUSH1 0xA0 PUSH1 0x2 EXP PUSH1 0xFF MUL NOT SWAP1 SWAP2 AND PUSH21 0x10000000000000000000000000000000000000000 OR AND SWAP1 SSTORE PUSH8 0x58D15E176280000 PUSH1 0x5 SSTORE CALLVALUE ISZERO PUSH2 0x4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB CALLER DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP4 DUP5 SWAP1 SSTORE PUSH1 0x4 DUP1 SLOAD SWAP1 SWAP4 AND SWAP4 SWAP1 SWAP2 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SSTORE PUSH1 0x5 SLOAD PUSH1 0x0 DUP2 DUP2 SSTORE DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP4 SWAP1 SSTORE SWAP1 SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xDD4 DUP1 PUSH2 0xDA PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x60 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1CB JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1F0 JUMPI DUP1 PUSH4 0x24BB7C26 EQ PUSH2 0x218 JUMPI DUP1 PUSH4 0x2FF2E9DC EQ PUSH2 0x22B JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23E JUMPI DUP1 PUSH4 0x64779AD7 EQ PUSH2 0x267 JUMPI DUP1 PUSH4 0x66188463 EQ PUSH2 0x27A JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x29C JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0x8F283970 EQ PUSH2 0x2EA JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x30B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x31E JUMPI DUP1 PUSH4 0xD73DD623 EQ PUSH2 0x340 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x362 JUMPI DUP1 PUSH4 0xDDEB5094 EQ PUSH2 0x387 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3A4 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x3C3 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE ISZERO PUSH2 0x116 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x11E PUSH2 0x3D6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 SWAP1 DUP2 ADD DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x15A JUMPI DUP1 DUP3 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x142 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x187 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x1A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x40D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x1D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DE PUSH2 0x47C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x1FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x482 JUMP JUMPDEST CALLVALUE ISZERO PUSH2 0x223 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B7 PUSH2 0x4F3 JUMP JUMPDEST CALLVALUE ISZERO PUSH2 0x236 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DE PUSH2 0x503 JUMP JUMPDEST CALLVALUE ISZERO PUSH2 0x249 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x251 PUSH2 0x509 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x272 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B7 PUSH2 0x50E JUMP JUMPDEST CALLVALUE ISZERO PUSH2 0x285 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x51E JUMP JUMPDEST CALLVALUE ISZERO PUSH2 0x2A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x586 JUMP JUMPDEST CALLVALUE ISZERO PUSH2 0x2C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2CE PUSH2 0x5A1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x2F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x309 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x5B0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE ISZERO PUSH2 0x316 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x11E PUSH2 0x636 JUMP JUMPDEST CALLVALUE ISZERO PUSH2 0x329 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x66D JUMP JUMPDEST CALLVALUE ISZERO PUSH2 0x34B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x6D5 JUMP JUMPDEST CALLVALUE ISZERO PUSH2 0x36D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x73D JUMP JUMPDEST CALLVALUE ISZERO PUSH2 0x392 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x309 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH1 0x24 CALLDATALOAD ISZERO ISZERO PUSH2 0x768 JUMP JUMPDEST CALLVALUE ISZERO PUSH2 0x3AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x309 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x856 JUMP JUMPDEST CALLVALUE ISZERO PUSH2 0x3CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2CE PUSH2 0x8F1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x6 DUP2 MSTORE PUSH32 0x5155414E54410000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 SWAP1 PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x46B JUMPI PUSH1 0x3 SLOAD PUSH1 0xA8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x106 JUMPI PUSH1 0x4 SLOAD CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND EQ DUP1 PUSH2 0x460 JUMPI POP PUSH1 0x3 SLOAD CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x46B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x475 DUP4 DUP4 PUSH2 0x900 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 SWAP1 PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x4E0 JUMPI PUSH1 0x3 SLOAD PUSH1 0xA8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x106 JUMPI PUSH1 0x4 SLOAD CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND EQ DUP1 PUSH2 0x4D5 JUMPI POP PUSH1 0x3 SLOAD CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x4E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4EB DUP5 DUP5 DUP5 PUSH2 0x96C JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x9 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xA8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 SWAP1 PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x57C JUMPI PUSH1 0x3 SLOAD PUSH1 0xA8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x106 JUMPI PUSH1 0x4 SLOAD CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND EQ DUP1 PUSH2 0x571 JUMPI POP PUSH1 0x3 SLOAD CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x57C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x475 DUP4 DUP4 PUSH2 0xAEE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND EQ PUSH2 0x5CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND PUSH32 0xF8CCB027DFCD135E000E9D45E6CC2D662578A8825D4C45B5E32E0ADF67E79EC6 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x4 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x4 DUP2 MSTORE PUSH32 0x5144455800000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 SWAP1 PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x6CB JUMPI PUSH1 0x3 SLOAD PUSH1 0xA8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x106 JUMPI PUSH1 0x4 SLOAD CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND EQ DUP1 PUSH2 0x6C0 JUMPI POP PUSH1 0x3 SLOAD CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x6CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x475 DUP4 DUP4 PUSH2 0xBE8 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 SWAP1 PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x733 JUMPI PUSH1 0x3 SLOAD PUSH1 0xA8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x106 JUMPI PUSH1 0x4 SLOAD CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND EQ DUP1 PUSH2 0x728 JUMPI POP PUSH1 0x3 SLOAD CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x733 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x475 DUP4 DUP4 PUSH2 0xCE3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND EQ PUSH2 0x783 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ISZERO DUP1 ISZERO PUSH2 0x793 JUMPI POP PUSH1 0x1 DUP2 ISZERO ISZERO EQ JUMPDEST ISZERO PUSH2 0x79D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH21 0xFF0000000000000000000000000000000000000000 NOT AND PUSH1 0xA0 PUSH1 0x2 EXP DUP5 ISZERO ISZERO MUL OR PUSH22 0xFF000000000000000000000000000000000000000000 NOT AND PUSH1 0xA8 PUSH1 0x2 EXP DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE PUSH32 0xA14D191CA4F53BFCF003C65D429362010A2D3D68BC0C50CCE4BDC0FCCF661FB0 DUP3 PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH32 0xC77636FC4A62A1FA193EF538C0B7993A1313A0D9C0A9173058CEBCD3239EF7B5 DUP2 PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND EQ PUSH2 0x871 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x886 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x3 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB CALLER DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE DUP1 DUP3 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 SWAP3 SWAP2 SWAP1 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP1 DUP6 SWAP1 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND ISZERO ISZERO PUSH2 0x983 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 GT ISZERO PUSH2 0x9A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER SWAP1 SWAP5 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD DUP3 GT ISZERO PUSH2 0x9DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xA04 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0xD87 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP6 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xA39 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0xD99 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP8 DUP4 AND DUP3 MSTORE PUSH1 0x2 DUP2 MSTORE DUP4 DUP3 KECCAK256 CALLER SWAP1 SWAP4 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0xA81 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0xD87 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP7 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 DUP6 SWAP1 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB CALLER DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP7 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE SWAP1 DUP2 KECCAK256 SLOAD DUP1 DUP4 GT ISZERO PUSH2 0xB4B JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB CALLER DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP9 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE SWAP1 DUP2 KECCAK256 SSTORE PUSH2 0xB82 JUMP JUMPDEST PUSH2 0xB5B DUP2 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD87 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB CALLER DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP10 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB CALLER DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP10 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 SLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND ISZERO ISZERO PUSH2 0xBFF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB CALLER AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 GT ISZERO PUSH2 0xC24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB CALLER AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xC4D SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0xD87 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB CALLER DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP6 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xC82 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0xD99 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP2 CALLER SWAP1 SWAP2 AND SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 DUP6 SWAP1 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB CALLER DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP7 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE SWAP1 DUP2 KECCAK256 SLOAD PUSH2 0xD1B SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0xD99 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB CALLER DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP10 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE SWAP2 SWAP3 SWAP1 SWAP2 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 SWAP1 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO PUSH2 0xD93 JUMPI INVALID JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x475 JUMPI INVALID STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 PUSH19 0x1B5ED5AFAB457CE2B36F78AD5ADD2A83B8C4D5 PUSH22 0x30F0FAE614E0E5B1D390890029000000000000000000 ",
	"sourceMap": "9431:718:0:-;;;7569:31;;;-1:-1:-1;;;;;;;;;;;;7569:31:0;;;;;7604:36;;;9642:37;9610:69;;9686:203;;;;;;;;6739:5;:18;;-1:-1:-1;;;;;6747:10:0;6739:18;;-1:-1:-1;;;;;;6739:18:0;;;;;;;;;9724:5;:13;;;;;9732:5;;;;9724:13;;;;;;9761:14;;6739:5;9747:28;;;9785:20;;;6739:18;9785:20;;;;;;:37;;;6739:5;;9832:50;;;;;;;;;;;;;;;9431:718;;;;;;"
}

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.