UNPKG

@functionx_io/contracts

Version:
553 lines (552 loc) 27.5 kB
{ "_format": "hh-sol-artifact-1", "contractName": "StakingTest", "sourceName": "contracts/test/StakingTest.sol", "abi": [ { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "string", "name": "validator", "type": "string" }, { "indexed": false, "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "ApproveShares", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "delegator", "type": "address" }, { "indexed": false, "internalType": "string", "name": "validator", "type": "string" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "DelegateV2", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "string", "name": "valSrc", "type": "string" }, { "indexed": false, "internalType": "string", "name": "valDst", "type": "string" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "completionTime", "type": "uint256" } ], "name": "RedelegateV2", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "string", "name": "validator", "type": "string" }, { "indexed": false, "internalType": "uint256", "name": "shares", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "token", "type": "uint256" } ], "name": "TransferShares", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "string", "name": "validator", "type": "string" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "completionTime", "type": "uint256" } ], "name": "UndelegateV2", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "string", "name": "validator", "type": "string" }, { "indexed": false, "internalType": "uint256", "name": "reward", "type": "uint256" } ], "name": "Withdraw", "type": "event" }, { "inputs": [], "name": "STAKING_ADDRESS", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_val", "type": "string" }, { "internalType": "address", "name": "_owner", "type": "address" }, { "internalType": "address", "name": "_spender", "type": "address" } ], "name": "allowanceShares", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_val", "type": "string" }, { "internalType": "address", "name": "_spender", "type": "address" }, { "internalType": "uint256", "name": "_shares", "type": "uint256" } ], "name": "approveShares", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_val", "type": "string" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "delegateV2", "outputs": [ { "internalType": "bool", "name": "_result", "type": "bool" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_val", "type": "string" }, { "internalType": "address", "name": "_del", "type": "address" } ], "name": "delegation", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_val", "type": "string" }, { "internalType": "address", "name": "_del", "type": "address" } ], "name": "delegationRewards", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_valSrc", "type": "string" }, { "internalType": "string", "name": "_valDst", "type": "string" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "redelegateV2", "outputs": [ { "internalType": "bool", "name": "_result", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_val", "type": "string" } ], "name": "slashingInfo", "outputs": [ { "internalType": "bool", "name": "_jailed", "type": "bool" }, { "internalType": "uint256", "name": "_missed", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_val", "type": "string" }, { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_shares", "type": "uint256" } ], "name": "transferFromShares", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_val", "type": "string" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_shares", "type": "uint256" } ], "name": "transferShares", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_val", "type": "string" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "undelegateV2", "outputs": [ { "internalType": "bool", "name": "_result", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "enum IStaking.ValidatorSortBy", "name": "_sortBy", "type": "uint8" } ], "name": "validatorList", "outputs": [ { "internalType": "string[]", "name": "", "type": "string[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "", "type": "string" } ], "name": "validatorShares", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_val", "type": "string" } ], "name": "withdraw", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b50610f6e806100206000396000f3fe6080604052600436106100dd5760003560e01c80637b625c0f1161007f578063d5c498eb11610059578063d5c498eb1461029b578063dc6ffc7d146102bb578063de2b3451146102db578063ee226c66146102fb57600080fd5b80637b625c0f146102155780638c20570b14610235578063bf98d7721461026357600080fd5b806349da433e116100bb57806349da433e1461017b5780634e94633a146101ab57806351af513a146101e25780636d7880351461020257600080fd5b8063029c0a51146100e2578063161298c11461011857806331fb67c21461014d575b600080fd5b3480156100ee57600080fd5b506101026100fd366004610841565b61031b565b60405161010f91906108be565b60405180910390f35b34801561012457600080fd5b50610138610133366004610a01565b61038e565b6040805192835260208301919091520161010f565b34801561015957600080fd5b5061016d610168366004610a58565b61040a565b60405190815260200161010f565b34801561018757600080fd5b5061019b610196366004610a01565b610475565b604051901515815260200161010f565b3480156101b757600080fd5b506101cb6101c6366004610a58565b6104ec565b60408051921515835260208301919091520161010f565b3480156101ee57600080fd5b5061016d6101fd366004610a8d565b61055f565b61019b610210366004610adb565b6105d1565b34801561022157600080fd5b5061016d610230366004610b20565b610688565b34801561024157600080fd5b5061024b61100381565b6040516001600160a01b03909116815260200161010f565b34801561026f57600080fd5b5061016d61027e366004610a58565b805160208183018101805160008252928201919093012091525481565b3480156102a757600080fd5b506101386102b6366004610a8d565b6106f5565b3480156102c757600080fd5b506101386102d6366004610b7e565b61076c565b3480156102e757600080fd5b5061019b6102f6366004610adb565b6107eb565b34801561030757600080fd5b5061019b610316366004610be4565b610815565b60405163029c0a5160e01b81526060906110039063029c0a5190610343908590600401610c51565b600060405180830381865afa158015610360573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103889190810190610c79565b92915050565b60405163161298c160e01b815260009081906110039063161298c1906103bc90889088908890600401610d78565b60408051808303816000875af11580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190610da6565b91509150935093915050565b6040516318fdb3e160e11b8152600090611003906331fb67c290610432908590600401610dca565b6020604051808303816000875af1158015610451573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103889190610ddd565b6040516324ed219f60e11b8152600090611003906349da433e906104a190879087908790600401610d78565b6020604051808303816000875af11580156104c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e49190610e06565b949350505050565b60405163274a319d60e11b8152600090819061100390634e94633a90610516908690600401610dca565b6040805180830381865afa158015610532573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105569190610e21565b91509150915091565b6040516328d7a89d60e11b8152600090611003906351af513a906105899086908690600401610e4d565b602060405180830381865afa1580156105a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ca9190610ddd565b9392505050565b60008147101561061e5760405162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015260640160405180910390fd5b604051636d78803560e01b815261100390636d788035906106459086908690600401610e77565b6020604051808303816000875af1158015610664573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ca9190610e06565b604051637b625c0f60e01b815260009061100390637b625c0f906106b490879087908790600401610e99565b602060405180830381865afa1580156106d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e49190610ddd565b60405163d5c498eb60e01b815260009081906110039063d5c498eb906107219087908790600401610e4d565b6040805180830381865afa15801561073d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107619190610da6565b915091509250929050565b60405163dc6ffc7d60e01b815260009081906110039063dc6ffc7d9061079c908990899089908990600401610ecc565b60408051808303816000875af11580156107ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107de9190610da6565b9150915094509492505050565b60405163de2b345160e01b81526000906110039063de2b3451906106459086908690600401610e77565b604051637711363360e11b81526000906110039063ee226c66906104a190879087908790600401610f02565b60006020828403121561085357600080fd5b8135600281106105ca57600080fd5b60005b8381101561087d578181015183820152602001610865565b8381111561088c576000848401525b50505050565b600081518084526108aa816020860160208601610862565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561091357603f19888603018452610901858351610892565b945092850192908501906001016108e5565b5092979650505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561095f5761095f610920565b604052919050565b600067ffffffffffffffff82111561098157610981610920565b50601f01601f191660200190565b600082601f8301126109a057600080fd5b81356109b36109ae82610967565b610936565b8181528460208386010111156109c857600080fd5b816020850160208301376000918101602001919091529392505050565b80356001600160a01b03811681146109fc57600080fd5b919050565b600080600060608486031215610a1657600080fd5b833567ffffffffffffffff811115610a2d57600080fd5b610a398682870161098f565b935050610a48602085016109e5565b9150604084013590509250925092565b600060208284031215610a6a57600080fd5b813567ffffffffffffffff811115610a8157600080fd5b6104e48482850161098f565b60008060408385031215610aa057600080fd5b823567ffffffffffffffff811115610ab757600080fd5b610ac38582860161098f565b925050610ad2602084016109e5565b90509250929050565b60008060408385031215610aee57600080fd5b823567ffffffffffffffff811115610b0557600080fd5b610b118582860161098f565b95602094909401359450505050565b600080600060608486031215610b3557600080fd5b833567ffffffffffffffff811115610b4c57600080fd5b610b588682870161098f565b935050610b67602085016109e5565b9150610b75604085016109e5565b90509250925092565b60008060008060808587031215610b9457600080fd5b843567ffffffffffffffff811115610bab57600080fd5b610bb78782880161098f565b945050610bc6602086016109e5565b9250610bd4604086016109e5565b9396929550929360600135925050565b600080600060608486031215610bf957600080fd5b833567ffffffffffffffff80821115610c1157600080fd5b610c1d8783880161098f565b94506020860135915080821115610c3357600080fd5b50610c408682870161098f565b925050604084013590509250925092565b6020810160028310610c7357634e487b7160e01b600052602160045260246000fd5b91905290565b60006020808385031215610c8c57600080fd5b825167ffffffffffffffff80821115610ca457600080fd5b818501915085601f830112610cb857600080fd5b815181811115610cca57610cca610920565b8060051b610cd9858201610936565b9182528381018501918581019089841115610cf357600080fd5b86860192505b83831015610d6b57825185811115610d115760008081fd5b8601603f81018b13610d235760008081fd5b878101516040610d356109ae83610967565b8281528d82848601011115610d4a5760008081fd5b610d59838c8301848701610862565b85525050509186019190860190610cf9565b9998505050505050505050565b606081526000610d8b6060830186610892565b6001600160a01b039490941660208301525060400152919050565b60008060408385031215610db957600080fd5b505080516020909101519092909150565b6020815260006105ca6020830184610892565b600060208284031215610def57600080fd5b5051919050565b805180151581146109fc57600080fd5b600060208284031215610e1857600080fd5b6105ca82610df6565b60008060408385031215610e3457600080fd5b610e3d83610df6565b9150602083015190509250929050565b604081526000610e606040830185610892565b905060018060a01b03831660208301529392505050565b604081526000610e8a6040830185610892565b90508260208301529392505050565b606081526000610eac6060830186610892565b6001600160a01b0394851660208401529290931660409091015292915050565b608081526000610edf6080830187610892565b6001600160a01b0395861660208401529390941660408201526060015292915050565b606081526000610f156060830186610892565b8281036020840152610f278186610892565b91505082604083015294935050505056fea2646970667358221220756ba390fb4953d2c26df981906ead54309e044e7636088b27f878eeea9ed80e64736f6c634300080a0033", "deployedBytecode": "0x6080604052600436106100dd5760003560e01c80637b625c0f1161007f578063d5c498eb11610059578063d5c498eb1461029b578063dc6ffc7d146102bb578063de2b3451146102db578063ee226c66146102fb57600080fd5b80637b625c0f146102155780638c20570b14610235578063bf98d7721461026357600080fd5b806349da433e116100bb57806349da433e1461017b5780634e94633a146101ab57806351af513a146101e25780636d7880351461020257600080fd5b8063029c0a51146100e2578063161298c11461011857806331fb67c21461014d575b600080fd5b3480156100ee57600080fd5b506101026100fd366004610841565b61031b565b60405161010f91906108be565b60405180910390f35b34801561012457600080fd5b50610138610133366004610a01565b61038e565b6040805192835260208301919091520161010f565b34801561015957600080fd5b5061016d610168366004610a58565b61040a565b60405190815260200161010f565b34801561018757600080fd5b5061019b610196366004610a01565b610475565b604051901515815260200161010f565b3480156101b757600080fd5b506101cb6101c6366004610a58565b6104ec565b60408051921515835260208301919091520161010f565b3480156101ee57600080fd5b5061016d6101fd366004610a8d565b61055f565b61019b610210366004610adb565b6105d1565b34801561022157600080fd5b5061016d610230366004610b20565b610688565b34801561024157600080fd5b5061024b61100381565b6040516001600160a01b03909116815260200161010f565b34801561026f57600080fd5b5061016d61027e366004610a58565b805160208183018101805160008252928201919093012091525481565b3480156102a757600080fd5b506101386102b6366004610a8d565b6106f5565b3480156102c757600080fd5b506101386102d6366004610b7e565b61076c565b3480156102e757600080fd5b5061019b6102f6366004610adb565b6107eb565b34801561030757600080fd5b5061019b610316366004610be4565b610815565b60405163029c0a5160e01b81526060906110039063029c0a5190610343908590600401610c51565b600060405180830381865afa158015610360573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103889190810190610c79565b92915050565b60405163161298c160e01b815260009081906110039063161298c1906103bc90889088908890600401610d78565b60408051808303816000875af11580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190610da6565b91509150935093915050565b6040516318fdb3e160e11b8152600090611003906331fb67c290610432908590600401610dca565b6020604051808303816000875af1158015610451573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103889190610ddd565b6040516324ed219f60e11b8152600090611003906349da433e906104a190879087908790600401610d78565b6020604051808303816000875af11580156104c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e49190610e06565b949350505050565b60405163274a319d60e11b8152600090819061100390634e94633a90610516908690600401610dca565b6040805180830381865afa158015610532573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105569190610e21565b91509150915091565b6040516328d7a89d60e11b8152600090611003906351af513a906105899086908690600401610e4d565b602060405180830381865afa1580156105a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ca9190610ddd565b9392505050565b60008147101561061e5760405162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015260640160405180910390fd5b604051636d78803560e01b815261100390636d788035906106459086908690600401610e77565b6020604051808303816000875af1158015610664573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ca9190610e06565b604051637b625c0f60e01b815260009061100390637b625c0f906106b490879087908790600401610e99565b602060405180830381865afa1580156106d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e49190610ddd565b60405163d5c498eb60e01b815260009081906110039063d5c498eb906107219087908790600401610e4d565b6040805180830381865afa15801561073d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107619190610da6565b915091509250929050565b60405163dc6ffc7d60e01b815260009081906110039063dc6ffc7d9061079c908990899089908990600401610ecc565b60408051808303816000875af11580156107ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107de9190610da6565b9150915094509492505050565b60405163de2b345160e01b81526000906110039063de2b3451906106459086908690600401610e77565b604051637711363360e11b81526000906110039063ee226c66906104a190879087908790600401610f02565b60006020828403121561085357600080fd5b8135600281106105ca57600080fd5b60005b8381101561087d578181015183820152602001610865565b8381111561088c576000848401525b50505050565b600081518084526108aa816020860160208601610862565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561091357603f19888603018452610901858351610892565b945092850192908501906001016108e5565b5092979650505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561095f5761095f610920565b604052919050565b600067ffffffffffffffff82111561098157610981610920565b50601f01601f191660200190565b600082601f8301126109a057600080fd5b81356109b36109ae82610967565b610936565b8181528460208386010111156109c857600080fd5b816020850160208301376000918101602001919091529392505050565b80356001600160a01b03811681146109fc57600080fd5b919050565b600080600060608486031215610a1657600080fd5b833567ffffffffffffffff811115610a2d57600080fd5b610a398682870161098f565b935050610a48602085016109e5565b9150604084013590509250925092565b600060208284031215610a6a57600080fd5b813567ffffffffffffffff811115610a8157600080fd5b6104e48482850161098f565b60008060408385031215610aa057600080fd5b823567ffffffffffffffff811115610ab757600080fd5b610ac38582860161098f565b925050610ad2602084016109e5565b90509250929050565b60008060408385031215610aee57600080fd5b823567ffffffffffffffff811115610b0557600080fd5b610b118582860161098f565b95602094909401359450505050565b600080600060608486031215610b3557600080fd5b833567ffffffffffffffff811115610b4c57600080fd5b610b588682870161098f565b935050610b67602085016109e5565b9150610b75604085016109e5565b90509250925092565b60008060008060808587031215610b9457600080fd5b843567ffffffffffffffff811115610bab57600080fd5b610bb78782880161098f565b945050610bc6602086016109e5565b9250610bd4604086016109e5565b9396929550929360600135925050565b600080600060608486031215610bf957600080fd5b833567ffffffffffffffff80821115610c1157600080fd5b610c1d8783880161098f565b94506020860135915080821115610c3357600080fd5b50610c408682870161098f565b925050604084013590509250925092565b6020810160028310610c7357634e487b7160e01b600052602160045260246000fd5b91905290565b60006020808385031215610c8c57600080fd5b825167ffffffffffffffff80821115610ca457600080fd5b818501915085601f830112610cb857600080fd5b815181811115610cca57610cca610920565b8060051b610cd9858201610936565b9182528381018501918581019089841115610cf357600080fd5b86860192505b83831015610d6b57825185811115610d115760008081fd5b8601603f81018b13610d235760008081fd5b878101516040610d356109ae83610967565b8281528d82848601011115610d4a5760008081fd5b610d59838c8301848701610862565b85525050509186019190860190610cf9565b9998505050505050505050565b606081526000610d8b6060830186610892565b6001600160a01b039490941660208301525060400152919050565b60008060408385031215610db957600080fd5b505080516020909101519092909150565b6020815260006105ca6020830184610892565b600060208284031215610def57600080fd5b5051919050565b805180151581146109fc57600080fd5b600060208284031215610e1857600080fd5b6105ca82610df6565b60008060408385031215610e3457600080fd5b610e3d83610df6565b9150602083015190509250929050565b604081526000610e606040830185610892565b905060018060a01b03831660208301529392505050565b604081526000610e8a6040830185610892565b90508260208301529392505050565b606081526000610eac6060830186610892565b6001600160a01b0394851660208401529290931660409091015292915050565b608081526000610edf6080830187610892565b6001600160a01b0395861660208401529390941660408201526060015292915050565b606081526000610f156060830186610892565b8281036020840152610f278186610892565b91505082604083015294935050505056fea2646970667358221220756ba390fb4953d2c26df981906ead54309e044e7636088b27f878eeea9ed80e64736f6c634300080a0033", "linkReferences": {}, "deployedLinkReferences": {} }