@soma-finance/core-contracts
Version:
SOMA Finance core contracts
333 lines (332 loc) • 17.2 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "DeflatingERC20",
"sourceName": "contracts/soma/SomaSwap/test/DeflatingERC20.sol",
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "_totalSupply",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [],
"name": "DOMAIN_SEPARATOR",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "PERMIT_TYPEHASH",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "nonces",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "permit",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x608060405234801561001057600080fd5b50604051610b51380380610b5183398101604081905261002f916101e2565b604080518082018252601481527f4465666c6174696e67205465737420546f6b656e0000000000000000000000006020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527ff89e31130e6fd3d87d62a1ac2770fba58bed5a06c47ce70fa97f8218b1b2743a818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015246608082018190523060a0808401919091528451808403909101815260c0909201909352805191012060035561011f3383610126565b505061021c565b61013f816000546101cd60201b6105231790919060201c565b60009081556001600160a01b0383168152600160209081526040909120546101709183906105236101cd821b17901c565b6001600160a01b0383166000818152600160205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906101c19085815260200190565b60405180910390a35050565b60006101d982846101fb565b90505b92915050565b6000602082840312156101f457600080fd5b5051919050565b808201808211156101dc57634e487b7160e01b600052601160045260246000fd5b6109268061022b6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b41146101f4578063a9059cbb14610216578063d505accf14610229578063dd62ed3e1461023e57600080fd5b80633644e515146101ab57806370a08231146101b45780637ecebe00146101d457600080fd5b806306fdde03146100d4578063095ea7b31461011d57806318160ddd1461014057806323b872dd1461015757806330adf81f1461016a578063313ce56714610191575b600080fd5b610107604051806040016040528060148152602001732232b33630ba34b733902a32b9ba102a37b5b2b760611b81525081565b6040516101149190610711565b60405180910390f35b61013061012b36600461077b565b610269565b6040519015158152602001610114565b61014960005481565b604051908152602001610114565b6101306101653660046107a5565b610280565b6101497f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b610199601281565b60405160ff9091168152602001610114565b61014960035481565b6101496101c23660046107e1565b60016020526000908152604090205481565b6101496101e23660046107e1565b60046020526000908152604090205481565b6101076040518060400160405280600381526020016211151560ea1b81525081565b61013061022436600461077b565b610314565b61023c6102373660046107fc565b610321565b005b61014961024c36600461086f565b600260209081526000928352604080842090915290825290205481565b6000610276338484610536565b5060015b92915050565b6001600160a01b0383166000908152600260209081526040808320338452909152812054600019146102ff576001600160a01b03841660009081526002602090815260408083203384529091529020546102da9083610597565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b61030a8484846105a3565b5060019392505050565b60006102763384846105a3565b428410156103605760405162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b60448201526064015b60405180910390fd5b6003546001600160a01b038816600090815260046020526040812080549192917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918b918b918b9190876103b3836108b8565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e0016040516020818303038152906040528051906020012060405160200161042c92919061190160f01b81526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015610497573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906104cd5750886001600160a01b0316816001600160a01b0316145b61050d5760405162461bcd60e51b8152602060048201526011602482015270494e56414c49445f5349474e415455524560781b6044820152606401610357565b610518898989610536565b505050505050505050565b600061052f82846108d1565b9392505050565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061052f82846108e4565b60006105b06064836108f7565b90506105bc8482610680565b60006105c88383610597565b6001600160a01b0386166000908152600160205260409020549091506105ee9082610597565b6001600160a01b03808716600090815260016020526040808220939093559086168152205461061d9082610523565b6001600160a01b0380861660008181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106719085815260200190565b60405180910390a35050505050565b6001600160a01b0382166000908152600160205260409020546106a39082610597565b6001600160a01b038316600090815260016020526040812091909155546106ca9082610597565b60009081556040518281526001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600060208083528351808285015260005b8181101561073e57858101830151858201604001528201610722565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461077657600080fd5b919050565b6000806040838503121561078e57600080fd5b6107978361075f565b946020939093013593505050565b6000806000606084860312156107ba57600080fd5b6107c38461075f565b92506107d16020850161075f565b9150604084013590509250925092565b6000602082840312156107f357600080fd5b61052f8261075f565b600080600080600080600060e0888a03121561081757600080fd5b6108208861075f565b965061082e6020890161075f565b95506040880135945060608801359350608088013560ff8116811461085257600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561088257600080fd5b61088b8361075f565b91506108996020840161075f565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b6000600182016108ca576108ca6108a2565b5060010190565b8082018082111561027a5761027a6108a2565b8181038181111561027a5761027a6108a2565b60008261091457634e487b7160e01b600052601260045260246000fd5b50049056fea164736f6c6343000812000a",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b41146101f4578063a9059cbb14610216578063d505accf14610229578063dd62ed3e1461023e57600080fd5b80633644e515146101ab57806370a08231146101b45780637ecebe00146101d457600080fd5b806306fdde03146100d4578063095ea7b31461011d57806318160ddd1461014057806323b872dd1461015757806330adf81f1461016a578063313ce56714610191575b600080fd5b610107604051806040016040528060148152602001732232b33630ba34b733902a32b9ba102a37b5b2b760611b81525081565b6040516101149190610711565b60405180910390f35b61013061012b36600461077b565b610269565b6040519015158152602001610114565b61014960005481565b604051908152602001610114565b6101306101653660046107a5565b610280565b6101497f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b610199601281565b60405160ff9091168152602001610114565b61014960035481565b6101496101c23660046107e1565b60016020526000908152604090205481565b6101496101e23660046107e1565b60046020526000908152604090205481565b6101076040518060400160405280600381526020016211151560ea1b81525081565b61013061022436600461077b565b610314565b61023c6102373660046107fc565b610321565b005b61014961024c36600461086f565b600260209081526000928352604080842090915290825290205481565b6000610276338484610536565b5060015b92915050565b6001600160a01b0383166000908152600260209081526040808320338452909152812054600019146102ff576001600160a01b03841660009081526002602090815260408083203384529091529020546102da9083610597565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b61030a8484846105a3565b5060019392505050565b60006102763384846105a3565b428410156103605760405162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b60448201526064015b60405180910390fd5b6003546001600160a01b038816600090815260046020526040812080549192917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918b918b918b9190876103b3836108b8565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e0016040516020818303038152906040528051906020012060405160200161042c92919061190160f01b81526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015610497573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906104cd5750886001600160a01b0316816001600160a01b0316145b61050d5760405162461bcd60e51b8152602060048201526011602482015270494e56414c49445f5349474e415455524560781b6044820152606401610357565b610518898989610536565b505050505050505050565b600061052f82846108d1565b9392505050565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061052f82846108e4565b60006105b06064836108f7565b90506105bc8482610680565b60006105c88383610597565b6001600160a01b0386166000908152600160205260409020549091506105ee9082610597565b6001600160a01b03808716600090815260016020526040808220939093559086168152205461061d9082610523565b6001600160a01b0380861660008181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106719085815260200190565b60405180910390a35050505050565b6001600160a01b0382166000908152600160205260409020546106a39082610597565b6001600160a01b038316600090815260016020526040812091909155546106ca9082610597565b60009081556040518281526001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600060208083528351808285015260005b8181101561073e57858101830151858201604001528201610722565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461077657600080fd5b919050565b6000806040838503121561078e57600080fd5b6107978361075f565b946020939093013593505050565b6000806000606084860312156107ba57600080fd5b6107c38461075f565b92506107d16020850161075f565b9150604084013590509250925092565b6000602082840312156107f357600080fd5b61052f8261075f565b600080600080600080600060e0888a03121561081757600080fd5b6108208861075f565b965061082e6020890161075f565b95506040880135945060608801359350608088013560ff8116811461085257600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561088257600080fd5b61088b8361075f565b91506108996020840161075f565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b6000600182016108ca576108ca6108a2565b5060010190565b8082018082111561027a5761027a6108a2565b8181038181111561027a5761027a6108a2565b60008261091457634e487b7160e01b600052601260045260246000fd5b50049056fea164736f6c6343000812000a",
"linkReferences": {},
"deployedLinkReferences": {}
}