diff --git a/contracts/00-nns.manifest.json b/contracts/00-nns.manifest.json deleted file mode 100755 index e83ced466b..0000000000 --- a/contracts/00-nns.manifest.json +++ /dev/null @@ -1 +0,0 @@ -{"name":"NameService","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":32,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"addRecord","offset":3236,"parameters":[{"name":"name","type":"String"},{"name":"typ","type":"Integer"},{"name":"data","type":"String"}],"returntype":"Void","safe":false},{"name":"balanceOf","offset":976,"parameters":[{"name":"owner","type":"Hash160"}],"returntype":"Integer","safe":true},{"name":"decimals","offset":791,"parameters":[],"returntype":"Integer","safe":true},{"name":"deleteRecords","offset":3460,"parameters":[{"name":"name","type":"String"},{"name":"typ","type":"Integer"}],"returntype":"Void","safe":false},{"name":"getAllRecords","offset":3704,"parameters":[{"name":"name","type":"String"}],"returntype":"InteropInterface","safe":true},{"name":"getPrice","offset":1427,"parameters":[],"returntype":"Integer","safe":true},{"name":"getRecords","offset":3376,"parameters":[{"name":"name","type":"String"},{"name":"typ","type":"Integer"}],"returntype":"Array","safe":true},{"name":"isAvailable","offset":1461,"parameters":[{"name":"name","type":"String"}],"returntype":"Boolean","safe":true},{"name":"ownerOf","offset":813,"parameters":[{"name":"tokenID","type":"ByteArray"}],"returntype":"Hash160","safe":true},{"name":"properties","offset":883,"parameters":[{"name":"tokenID","type":"ByteArray"}],"returntype":"Map","safe":true},{"name":"register","offset":1722,"parameters":[{"name":"name","type":"String"},{"name":"owner","type":"Hash160"},{"name":"email","type":"String"},{"name":"refresh","type":"Integer"},{"name":"retry","type":"Integer"},{"name":"expire","type":"Integer"},{"name":"ttl","type":"Integer"}],"returntype":"Boolean","safe":false},{"name":"registerTLD","offset":2397,"parameters":[{"name":"name","type":"String"},{"name":"email","type":"String"},{"name":"refresh","type":"Integer"},{"name":"retry","type":"Integer"},{"name":"expire","type":"Integer"},{"name":"ttl","type":"Integer"}],"returntype":"Void","safe":false},{"name":"renew","offset":2610,"parameters":[{"name":"name","type":"String"}],"returntype":"Integer","safe":false},{"name":"resolve","offset":3642,"parameters":[{"name":"name","type":"String"},{"name":"typ","type":"Integer"}],"returntype":"Array","safe":true},{"name":"roots","offset":1321,"parameters":[],"returntype":"InteropInterface","safe":true},{"name":"setAdmin","offset":2821,"parameters":[{"name":"name","type":"String"},{"name":"admin","type":"Hash160"}],"returntype":"Void","safe":false},{"name":"setPrice","offset":1349,"parameters":[{"name":"price","type":"Integer"}],"returntype":"Void","safe":false},{"name":"setRecord","offset":2996,"parameters":[{"name":"name","type":"String"},{"name":"typ","type":"Integer"},{"name":"id","type":"Integer"},{"name":"data","type":"String"}],"returntype":"Void","safe":false},{"name":"symbol","offset":785,"parameters":[],"returntype":"String","safe":true},{"name":"tokens","offset":1052,"parameters":[],"returntype":"InteropInterface","safe":true},{"name":"tokensOf","offset":1081,"parameters":[{"name":"owner","type":"Hash160"}],"returntype":"InteropInterface","safe":true},{"name":"totalSupply","offset":797,"parameters":[],"returntype":"Integer","safe":true},{"name":"transfer","offset":1143,"parameters":[{"name":"to","type":"Hash160"},{"name":"tokenID","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Boolean","safe":false},{"name":"update","offset":698,"parameters":[{"name":"nef","type":"ByteArray"},{"name":"manifest","type":"String"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"updateSOA","offset":2731,"parameters":[{"name":"name","type":"String"},{"name":"email","type":"String"},{"name":"refresh","type":"Integer"},{"name":"retry","type":"Integer"},{"name":"expire","type":"Integer"},{"name":"ttl","type":"Integer"}],"returntype":"Void","safe":false},{"name":"version","offset":793,"parameters":[],"returntype":"Integer","safe":true}],"events":[{"name":"Transfer","parameters":[{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"tokenId","type":"ByteArray"}]}]},"features":{},"groups":[],"permissions":[{"contract":"0xfffdc93764dbaddd97c48f252a53ea4643faa3fd","methods":["update"]},{"contract":"*","methods":["onNEP11Payment"]}],"supportedstandards":["NEP-11"],"trusts":[],"extra":null} \ No newline at end of file diff --git a/contracts/00-nns.nef b/contracts/00-nns.nef deleted file mode 100755 index 793e7ad730..0000000000 Binary files a/contracts/00-nns.nef and /dev/null differ diff --git a/contracts/01-proxy.manifest.json b/contracts/01-proxy.manifest.json deleted file mode 100755 index cb27a21ea1..0000000000 --- a/contracts/01-proxy.manifest.json +++ /dev/null @@ -1 +0,0 @@ -{"name":"NeoFS Notary Proxy","abi":{"methods":[{"name":"_deploy","offset":0,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"onNEP17Payment","offset":314,"parameters":[{"name":"from","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"update","offset":472,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"verify","offset":601,"parameters":[],"returntype":"Boolean","safe":true},{"name":"version","offset":644,"parameters":[],"returntype":"Integer","safe":true}],"events":[]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update"]}],"supportedstandards":[],"trusts":[],"extra":null} \ No newline at end of file diff --git a/contracts/01-proxy.nef b/contracts/01-proxy.nef deleted file mode 100755 index 76be041d1a..0000000000 Binary files a/contracts/01-proxy.nef and /dev/null differ diff --git a/contracts/02-audit.manifest.json b/contracts/02-audit.manifest.json deleted file mode 100755 index 6a71f553d2..0000000000 --- a/contracts/02-audit.manifest.json +++ /dev/null @@ -1 +0,0 @@ -{"name":"NeoFS Audit","abi":{"methods":[{"name":"_deploy","offset":0,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"get","offset":832,"parameters":[{"name":"id","type":"ByteArray"}],"returntype":"ByteArray","safe":true},{"name":"list","offset":857,"parameters":[],"returntype":"Array","safe":true},{"name":"listByCID","offset":923,"parameters":[{"name":"epoch","type":"Integer"},{"name":"cid","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"listByEpoch","offset":891,"parameters":[{"name":"epoch","type":"Integer"}],"returntype":"Array","safe":true},{"name":"listByNode","offset":966,"parameters":[{"name":"epoch","type":"Integer"},{"name":"cid","type":"ByteArray"},{"name":"key","type":"PublicKey"}],"returntype":"Array","safe":true},{"name":"put","offset":685,"parameters":[{"name":"rawAuditResult","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"update","offset":556,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"version","offset":1044,"parameters":[],"returntype":"Integer","safe":true}],"events":[]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update"]}],"supportedstandards":[],"trusts":[],"extra":null} \ No newline at end of file diff --git a/contracts/02-audit.nef b/contracts/02-audit.nef deleted file mode 100755 index 2f2c15f909..0000000000 Binary files a/contracts/02-audit.nef and /dev/null differ diff --git a/contracts/03-netmap.manifest.json b/contracts/03-netmap.manifest.json deleted file mode 100755 index f72489e947..0000000000 --- a/contracts/03-netmap.manifest.json +++ /dev/null @@ -1 +0,0 @@ -{"name":"NeoFS Netmap","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":93,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"addPeer","offset":1782,"parameters":[{"name":"nodeInfo","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"addPeerIR","offset":1737,"parameters":[{"name":"nodeInfo","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"config","offset":3243,"parameters":[{"name":"key","type":"ByteArray"}],"returntype":"Any","safe":true},{"name":"epoch","offset":2423,"parameters":[],"returntype":"Integer","safe":true},{"name":"innerRingList","offset":1692,"parameters":[],"returntype":"Array","safe":true},{"name":"lastEpochBlock","offset":2462,"parameters":[],"returntype":"Integer","safe":false},{"name":"listConfig","offset":3329,"parameters":[],"returntype":"Array","safe":true},{"name":"netmap","offset":2501,"parameters":[],"returntype":"Array","safe":true},{"name":"netmapCandidates","offset":2583,"parameters":[],"returntype":"Array","safe":true},{"name":"newEpoch","offset":2132,"parameters":[{"name":"epochNum","type":"Integer"}],"returntype":"Void","safe":false},{"name":"setConfig","offset":3261,"parameters":[{"name":"id","type":"ByteArray"},{"name":"key","type":"ByteArray"},{"name":"val","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"snapshot","offset":2599,"parameters":[{"name":"diff","type":"Integer"}],"returntype":"Array","safe":true},{"name":"snapshotByEpoch","offset":3195,"parameters":[{"name":"epoch","type":"Integer"}],"returntype":"Array","safe":true},{"name":"subscribeForNewEpoch","offset":3411,"parameters":[{"name":"contract","type":"Hash160"}],"returntype":"Void","safe":false},{"name":"update","offset":1562,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"updateSnapshotCount","offset":2753,"parameters":[{"name":"count","type":"Integer"}],"returntype":"Void","safe":false},{"name":"updateState","offset":2027,"parameters":[{"name":"state","type":"Integer"},{"name":"publicKey","type":"PublicKey"}],"returntype":"Void","safe":false},{"name":"updateStateIR","offset":2103,"parameters":[{"name":"state","type":"Integer"},{"name":"publicKey","type":"PublicKey"}],"returntype":"Void","safe":false},{"name":"version","offset":3797,"parameters":[],"returntype":"Integer","safe":true}],"events":[{"name":"AddPeerSuccess","parameters":[{"name":"publicKey","type":"PublicKey"}]},{"name":"UpdateStateSuccess","parameters":[{"name":"publicKey","type":"PublicKey"},{"name":"state","type":"Integer"}]},{"name":"NewEpoch","parameters":[{"name":"epoch","type":"Integer"}]},{"name":"NewEpochSubscription","parameters":[{"name":"contract","type":"Hash160"}]}]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update","newEpoch"]}],"supportedstandards":[],"trusts":[],"extra":null} \ No newline at end of file diff --git a/contracts/03-netmap.nef b/contracts/03-netmap.nef deleted file mode 100755 index 7124384e83..0000000000 Binary files a/contracts/03-netmap.nef and /dev/null differ diff --git a/contracts/04-balance.manifest.json b/contracts/04-balance.manifest.json deleted file mode 100755 index d7b33b05d8..0000000000 --- a/contracts/04-balance.manifest.json +++ /dev/null @@ -1 +0,0 @@ -{"name":"NeoFS Balance","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":93,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"balanceOf","offset":1432,"parameters":[{"name":"account","type":"Hash160"}],"returntype":"Integer","safe":true},{"name":"burn","offset":1965,"parameters":[{"name":"from","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"txDetails","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"decimals","offset":1410,"parameters":[],"returntype":"Integer","safe":true},{"name":"lock","offset":1578,"parameters":[{"name":"txDetails","type":"ByteArray"},{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"until","type":"Integer"}],"returntype":"Void","safe":false},{"name":"mint","offset":1844,"parameters":[{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"txDetails","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"newEpoch","offset":1715,"parameters":[{"name":"epochNum","type":"Integer"}],"returntype":"Void","safe":false},{"name":"symbol","offset":1406,"parameters":[],"returntype":"String","safe":true},{"name":"totalSupply","offset":1414,"parameters":[],"returntype":"Integer","safe":true},{"name":"transfer","offset":1451,"parameters":[{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"data","type":"Any"}],"returntype":"Boolean","safe":false},{"name":"transferX","offset":1475,"parameters":[{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"details","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"update","offset":1275,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"version","offset":2116,"parameters":[],"returntype":"Integer","safe":true}],"events":[{"name":"Lock","parameters":[{"name":"txID","type":"ByteArray"},{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"until","type":"Integer"}]},{"name":"Transfer","parameters":[{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"}]},{"name":"TransferX","parameters":[{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"details","type":"ByteArray"}]}]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update","subscribeForNewEpoch"]}],"supportedstandards":["NEP-17"],"trusts":[],"extra":null} \ No newline at end of file diff --git a/contracts/04-balance.nef b/contracts/04-balance.nef deleted file mode 100755 index 4b4ce26fe8..0000000000 Binary files a/contracts/04-balance.nef and /dev/null differ diff --git a/contracts/05-reputation.manifest.json b/contracts/05-reputation.manifest.json deleted file mode 100755 index ae73a8f5c3..0000000000 --- a/contracts/05-reputation.manifest.json +++ /dev/null @@ -1 +0,0 @@ -{"name":"NeoFS Reputation","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":35,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"get","offset":914,"parameters":[{"name":"epoch","type":"Integer"},{"name":"peerID","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"getByID","offset":930,"parameters":[{"name":"id","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"listByEpoch","offset":1020,"parameters":[{"name":"epoch","type":"Integer"}],"returntype":"Array","safe":true},{"name":"put","offset":804,"parameters":[{"name":"epoch","type":"Integer"},{"name":"peerID","type":"ByteArray"},{"name":"value","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"update","offset":670,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"version","offset":1098,"parameters":[],"returntype":"Integer","safe":false}],"events":[]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update"]}],"supportedstandards":[],"trusts":[],"extra":null} \ No newline at end of file diff --git a/contracts/05-reputation.nef b/contracts/05-reputation.nef deleted file mode 100755 index fb46a1d26f..0000000000 Binary files a/contracts/05-reputation.nef and /dev/null differ diff --git a/contracts/06-neofsid.manifest.json b/contracts/06-neofsid.manifest.json deleted file mode 100755 index 02d2d78f3d..0000000000 --- a/contracts/06-neofsid.manifest.json +++ /dev/null @@ -1 +0,0 @@ -{"name":"NeoFS ID","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":35,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"addKey","offset":857,"parameters":[{"name":"owner","type":"ByteArray"},{"name":"keys","type":"Array"}],"returntype":"Void","safe":false},{"name":"key","offset":1269,"parameters":[{"name":"owner","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"removeKey","offset":1062,"parameters":[{"name":"owner","type":"ByteArray"},{"name":"keys","type":"Array"}],"returntype":"Void","safe":false},{"name":"update","offset":726,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"version","offset":1340,"parameters":[],"returntype":"Integer","safe":true}],"events":[]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update"]}],"supportedstandards":[],"trusts":[],"extra":null} \ No newline at end of file diff --git a/contracts/06-neofsid.nef b/contracts/06-neofsid.nef deleted file mode 100755 index 39f00c276b..0000000000 Binary files a/contracts/06-neofsid.nef and /dev/null differ diff --git a/contracts/07-container.manifest.json b/contracts/07-container.manifest.json deleted file mode 100755 index 387a77b723..0000000000 --- a/contracts/07-container.manifest.json +++ /dev/null @@ -1 +0,0 @@ -{"name":"NeoFS Container","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":83,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"alias","offset":3554,"parameters":[{"name":"cid","type":"ByteArray"}],"returntype":"String","safe":true},{"name":"containersOf","offset":3694,"parameters":[{"name":"owner","type":"ByteArray"}],"returntype":"InteropInterface","safe":true},{"name":"count","offset":3649,"parameters":[],"returntype":"Integer","safe":true},{"name":"delete","offset":3145,"parameters":[{"name":"containerID","type":"ByteArray"},{"name":"signature","type":"Signature"},{"name":"token","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"eACL","offset":4106,"parameters":[{"name":"containerID","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"get","offset":3441,"parameters":[{"name":"containerID","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"getContainerSize","offset":4366,"parameters":[{"name":"id","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"iterateAllContainerSizes","offset":4739,"parameters":[{"name":"epoch","type":"Integer"}],"returntype":"InteropInterface","safe":true},{"name":"iterateContainerSizes","offset":4641,"parameters":[{"name":"epoch","type":"Integer"},{"name":"cid","type":"Hash256"}],"returntype":"InteropInterface","safe":true},{"name":"list","offset":3748,"parameters":[{"name":"owner","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"listContainerSizes","offset":4480,"parameters":[{"name":"epoch","type":"Integer"}],"returntype":"Array","safe":true},{"name":"newEpoch","offset":4791,"parameters":[{"name":"epochNum","type":"Integer"}],"returntype":"Void","safe":false},{"name":"onNEP11Payment","offset":1670,"parameters":[{"name":"a","type":"Hash160"},{"name":"b","type":"Integer"},{"name":"c","type":"ByteArray"},{"name":"d","type":"Any"}],"returntype":"Void","safe":false},{"name":"owner","offset":3503,"parameters":[{"name":"containerID","type":"ByteArray"}],"returntype":"ByteArray","safe":true},{"name":"put","offset":2061,"parameters":[{"name":"container","type":"ByteArray"},{"name":"signature","type":"Signature"},{"name":"publicKey","type":"PublicKey"},{"name":"token","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"putContainerSize","offset":4164,"parameters":[{"name":"epoch","type":"Integer"},{"name":"cid","type":"ByteArray"},{"name":"usedSize","type":"Integer"},{"name":"pubKey","type":"PublicKey"}],"returntype":"Void","safe":false},{"name":"putNamed","offset":2077,"parameters":[{"name":"container","type":"ByteArray"},{"name":"signature","type":"Signature"},{"name":"publicKey","type":"PublicKey"},{"name":"token","type":"ByteArray"},{"name":"name","type":"String"},{"name":"zone","type":"String"}],"returntype":"Void","safe":false},{"name":"setEACL","offset":3844,"parameters":[{"name":"eACL","type":"ByteArray"},{"name":"signature","type":"Signature"},{"name":"publicKey","type":"PublicKey"},{"name":"token","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"startContainerEstimation","offset":4821,"parameters":[{"name":"epoch","type":"Integer"}],"returntype":"Void","safe":false},{"name":"stopContainerEstimation","offset":4902,"parameters":[{"name":"epoch","type":"Integer"}],"returntype":"Void","safe":false},{"name":"update","offset":1928,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"version","offset":4982,"parameters":[],"returntype":"Integer","safe":true}],"events":[{"name":"PutSuccess","parameters":[{"name":"containerID","type":"Hash256"},{"name":"publicKey","type":"PublicKey"}]},{"name":"DeleteSuccess","parameters":[{"name":"containerID","type":"ByteArray"}]},{"name":"SetEACLSuccess","parameters":[{"name":"containerID","type":"ByteArray"},{"name":"publicKey","type":"PublicKey"}]},{"name":"StartEstimation","parameters":[{"name":"epoch","type":"Integer"}]},{"name":"StopEstimation","parameters":[{"name":"epoch","type":"Integer"}]}]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update","addKey","transferX","register","registerTLD","addRecord","deleteRecords","subscribeForNewEpoch"]}],"supportedstandards":[],"trusts":[],"extra":null} \ No newline at end of file diff --git a/contracts/07-container.nef b/contracts/07-container.nef deleted file mode 100755 index 384241bba5..0000000000 Binary files a/contracts/07-container.nef and /dev/null differ diff --git a/contracts/08-alphabet.manifest.json b/contracts/08-alphabet.manifest.json deleted file mode 100755 index 3059096ee5..0000000000 --- a/contracts/08-alphabet.manifest.json +++ /dev/null @@ -1 +0,0 @@ -{"name":"NeoFS Alphabet","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":35,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"emit","offset":2810,"parameters":[],"returntype":"Void","safe":false},{"name":"gas","offset":2631,"parameters":[],"returntype":"Integer","safe":true},{"name":"name","offset":3441,"parameters":[],"returntype":"String","safe":true},{"name":"neo","offset":2645,"parameters":[],"returntype":"Integer","safe":true},{"name":"onNEP17Payment","offset":1127,"parameters":[{"name":"from","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"update","offset":2499,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"version","offset":3457,"parameters":[],"returntype":"Integer","safe":true},{"name":"vote","offset":3269,"parameters":[{"name":"epoch","type":"Integer"},{"name":"candidates","type":"Array"}],"returntype":"Void","safe":false}],"events":[]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update","transfer","vote"]}],"supportedstandards":[],"trusts":[],"extra":null} \ No newline at end of file diff --git a/contracts/08-alphabet.nef b/contracts/08-alphabet.nef deleted file mode 100755 index 387398427c..0000000000 Binary files a/contracts/08-alphabet.nef and /dev/null differ diff --git a/contracts/contracts.go b/contracts/contracts.go deleted file mode 100644 index 85548e2773..0000000000 --- a/contracts/contracts.go +++ /dev/null @@ -1,162 +0,0 @@ -/* -Package contracts embeds compiled Neo contracts and provides access to them. -*/ -package contracts - -import ( - "embed" - "encoding/json" - "errors" - "fmt" - "io/fs" - "sort" - "strconv" - "strings" - - "github.com/nspcc-dev/neo-go/pkg/io" - "github.com/nspcc-dev/neo-go/pkg/smartcontract/manifest" - "github.com/nspcc-dev/neo-go/pkg/smartcontract/nef" -) - -// Contract groups information about Neo contract stored in the current package. -type Contract struct { - NEF nef.File - Manifest manifest.Manifest -} - -//go:embed *.nef *.manifest.json -var _fs embed.FS - -// Read reads compiled contracts stored in the package sorted numerically. -// File schema: -// - compiled executables (NEF) are named by pattern 'N-C.nef' -// - JSON-encoded manifests are named by pattern 'N-C.manifest.json' -// -// where C is the contract name (a-z) and N is the serial number of the contract -// starting from 0. Leading zeros are ignored (except zero sequence -// corresponding to N=0). -// -// If NEF file exists, corresponding manifest file must exist. If manifest -// file is presented without corresponding NEF file, the contract is ignored. -// -// Read fails if contract files has invalid name or format. -func Read() ([]Contract, error) { - return read(_fs) -} - -const nefFileSuffix = ".nef" - -var ( - errInvalidFilename = errors.New("invalid file name") - errDuplicatedContract = errors.New("duplicated contract") - errInvalidNEF = errors.New("invalid NEF") - errInvalidManifest = errors.New("invalid manifest") -) - -type numberedContract struct { - i int - c Contract -} - -type numberedContracts []numberedContract - -func (x numberedContracts) Len() int { return len(x) } -func (x numberedContracts) Less(i, j int) bool { return x[i].i < x[j].i } -func (x numberedContracts) Swap(i, j int) { x[i], x[j] = x[j], x[i] } - -// read same as Read by allows to override source fs.FS. -func read(_fs fs.FS) ([]Contract, error) { - nefFiles, err := fs.Glob(_fs, "*"+nefFileSuffix) - if err != nil { - return nil, fmt.Errorf("match files with suffix %s", nefFileSuffix) - } - - cs := make(numberedContracts, 0, len(nefFiles)) - - for i := range nefFiles { - prefix := strings.TrimSuffix(nefFiles[i], nefFileSuffix) - if prefix == "" { - return nil, fmt.Errorf("%w: missing prefix '%s'", errInvalidFilename, nefFiles[i]) - } - - hyphenInd := strings.IndexByte(prefix, '-') - if hyphenInd < 0 { - return nil, fmt.Errorf("%w: missing hyphen '%s'", errInvalidFilename, nefFiles[i]) - } - - name := prefix[hyphenInd+1:] - if len(name) == 0 { - return nil, fmt.Errorf("%w: missing name '%s'", errInvalidFilename, nefFiles[i]) - } - - for i := range name { - if name[i] < 'a' || name[i] > 'z' { - return nil, fmt.Errorf("%w: unsupported char in name %c", errInvalidFilename, name[i]) - } - } - - var ind int - - if noZerosPrefix := strings.TrimLeft(prefix[:hyphenInd], "0"); len(noZerosPrefix) > 0 { - ind, err = strconv.Atoi(noZerosPrefix) - if err != nil { - return nil, fmt.Errorf("%w: invalid prefix of file name '%s' (expected serial number)", errInvalidFilename, nefFiles[i]) - } else if ind < 0 { - return nil, fmt.Errorf("%w: negative serial number in file name '%s'", errInvalidFilename, nefFiles[i]) - } - } - - for i := range cs { - if cs[i].i == ind { - return nil, fmt.Errorf("%w: more than one file with serial number #%d", errDuplicatedContract, ind) - } - } - - c, err := readContractFromFiles(_fs, prefix) - if err != nil { - return nil, fmt.Errorf("read contract #%d: %w", ind, err) - } - - cs = append(cs, numberedContract{ - i: ind, - c: c, - }) - } - - sort.Sort(cs) - - res := make([]Contract, len(cs)) - - for i := range cs { - res[i] = cs[i].c - } - - return res, nil -} - -func readContractFromFiles(_fs fs.FS, filePrefix string) (c Contract, err error) { - fNEF, err := _fs.Open(filePrefix + nefFileSuffix) - if err != nil { - return c, fmt.Errorf("open file containing contract NEF: %w", err) - } - defer fNEF.Close() - - fManifest, err := _fs.Open(filePrefix + ".manifest.json") - if err != nil { - return c, fmt.Errorf("open file containing contract NEF: %w", err) - } - defer fManifest.Close() - - bReader := io.NewBinReaderFromIO(fNEF) - c.NEF.DecodeBinary(bReader) - if bReader.Err != nil { - return c, fmt.Errorf("%w: %w", errInvalidNEF, bReader.Err) - } - - err = json.NewDecoder(fManifest).Decode(&c.Manifest) - if err != nil { - return c, fmt.Errorf("%w: %w", errInvalidManifest, err) - } - - return -} diff --git a/contracts/contracts_test.go b/contracts/contracts_test.go deleted file mode 100644 index afadb0e71f..0000000000 --- a/contracts/contracts_test.go +++ /dev/null @@ -1,130 +0,0 @@ -package contracts - -import ( - "crypto/rand" - "encoding/json" - "testing" - "testing/fstest" - - "github.com/nspcc-dev/neo-go/pkg/smartcontract/manifest" - "github.com/nspcc-dev/neo-go/pkg/smartcontract/nef" - "github.com/stretchr/testify/require" -) - -func TestReadRepo(t *testing.T) { - _, err := Read() - require.NoError(t, err) -} - -func TestReadOrder(t *testing.T) { - _nef0, bNEF0 := anyValidNEF(t) - _manifest0, jManifest0 := anyValidManifest(t, "first") - _nef1, bNEF1 := anyValidNEF(t) - _manifest1, jManifest1 := anyValidManifest(t, "second") - _nef11, bNEF11 := anyValidNEF(t) - _manifest11, jManifest11 := anyValidManifest(t, "twelfth") - - _fs := fstest.MapFS{ - "00-hello.nef": {Data: bNEF0}, - "00-hello.manifest.json": {Data: jManifest0}, - "01-world.nef": {Data: bNEF1}, - "01-world.manifest.json": {Data: jManifest1}, - "11-bye.nef": {Data: bNEF11}, - "11-bye.manifest.json": {Data: jManifest11}, - } - - cs, err := read(_fs) - require.NoError(t, err) - require.Len(t, cs, 3) - - require.Equal(t, _nef0, cs[0].NEF) - require.Equal(t, _manifest0, cs[0].Manifest) - require.Equal(t, _nef1, cs[1].NEF) - require.Equal(t, _manifest1, cs[1].Manifest) - require.Equal(t, _nef11, cs[2].NEF) - require.Equal(t, _manifest11, cs[2].Manifest) -} - -func TestReadInvalidFilenames(t *testing.T) { - _fs := fstest.MapFS{} - - _, err := read(_fs) - require.NoError(t, err) - - for _, invalidName := range []string{ - "hello.nef", - "-.nef", - "-0.nef", - "0-.nef", - "0-_.nef", - "0-1.nef", - ".nef", - } { - _fs[invalidName] = &fstest.MapFile{} - _, err = read(_fs) - require.ErrorIs(t, err, errInvalidFilename, invalidName) - delete(_fs, invalidName) - } -} - -func TestReadDuplicatedContract(t *testing.T) { - _, bNEF := anyValidNEF(t) - _, jManifest := anyValidManifest(t, "some name") - - _fs := fstest.MapFS{ - "01-hello.nef": {Data: bNEF}, - "01-hello.manifest.json": {Data: jManifest}, - "001-hello.nef": {Data: bNEF}, - "001-hello.manifest.json": {Data: jManifest}, - } - - _, err := read(_fs) - require.ErrorIs(t, err, errDuplicatedContract) -} - -func TestReadInvalidFormat(t *testing.T) { - _fs := fstest.MapFS{} - - _, validNEF := anyValidNEF(t) - _, validManifest := anyValidManifest(t, "zero") - - _fs["00-hello.nef"] = &fstest.MapFile{Data: validNEF} - _fs["00-hello.manifest.json"] = &fstest.MapFile{Data: validManifest} - - _, err := read(_fs) - require.NoError(t, err, errInvalidNEF) - - _fs["00-hello.nef"] = &fstest.MapFile{Data: []byte("not a NEF")} - _fs["00-hello.manifest.json"] = &fstest.MapFile{Data: validManifest} - - _, err = read(_fs) - require.ErrorIs(t, err, errInvalidNEF) - - _fs["00-hello.nef"] = &fstest.MapFile{Data: validNEF} - _fs["00-hello.manifest.json"] = &fstest.MapFile{Data: []byte("not a manifest")} - - _, err = read(_fs) - require.ErrorIs(t, err, errInvalidManifest) -} - -func anyValidNEF(tb testing.TB) (nef.File, []byte) { - script := make([]byte, 32) - rand.Read(script) - - _nef, err := nef.NewFile(script) - require.NoError(tb, err) - - bNEF, err := _nef.Bytes() - require.NoError(tb, err) - - return *_nef, bNEF -} - -func anyValidManifest(tb testing.TB, name string) (manifest.Manifest, []byte) { - _manifest := manifest.NewManifest(name) - - jManifest, err := json.Marshal(_manifest) - require.NoError(tb, err) - - return *_manifest, jManifest -} diff --git a/go.mod b/go.mod index b1df1f40c6..55f0e6049b 100644 --- a/go.mod +++ b/go.mod @@ -17,7 +17,7 @@ require ( github.com/nspcc-dev/locode-db v0.6.0 github.com/nspcc-dev/neo-go v0.106.2 github.com/nspcc-dev/neofs-api-go/v2 v2.14.1-0.20240305074711-35bc78d84dc4 - github.com/nspcc-dev/neofs-contract v0.19.2-0.20240506202632-e78d64ecdfc2 + github.com/nspcc-dev/neofs-contract v0.19.2-0.20240614095443-f16f0f4b0418 github.com/nspcc-dev/neofs-sdk-go v1.0.0-rc.12 github.com/nspcc-dev/tzhash v1.8.0 github.com/olekukonko/tablewriter v0.0.5 @@ -72,7 +72,7 @@ require ( github.com/multiformats/go-varint v0.0.7 // indirect github.com/nspcc-dev/dbft v0.2.0 // indirect github.com/nspcc-dev/go-ordered-json v0.0.0-20240301084351-0246b013f8b2 // indirect - github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20240521091047-78685785716d // indirect + github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20240521124852-5cbfe215a4e9 // indirect github.com/nspcc-dev/rfc6979 v0.2.1 // indirect github.com/pelletier/go-toml/v2 v2.1.1 // indirect github.com/pierrec/lz4 v2.6.1+incompatible // indirect diff --git a/go.sum b/go.sum index 68088f680e..24b9fc6bf8 100644 --- a/go.sum +++ b/go.sum @@ -130,12 +130,12 @@ github.com/nspcc-dev/locode-db v0.6.0 h1:EdRUug+sL0EMLZgucLETD6bnegKjyEZh+D5x4r5 github.com/nspcc-dev/locode-db v0.6.0/go.mod h1:mJLXdzlcRucr3AFUvf5fJH+rFv1bJuU85e1jtDHDTz8= github.com/nspcc-dev/neo-go v0.106.2 h1:KXSJ2J5Oacc7LrX3r4jvnC8ihKqHs5NB21q4f2S3r9o= github.com/nspcc-dev/neo-go v0.106.2/go.mod h1:Ojwfx3/lv0VTeEHMpQ17g0wTnXcCSoFQVq5GEeCZmGo= -github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20240521091047-78685785716d h1:Vcb7YkZuUSSIC+WF/xV3UDfHbAxZgyT2zGleJP3Ig5k= -github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20240521091047-78685785716d/go.mod h1:/vrbWSHc7YS1KSYhVOyyeucXW/e+1DkVBOgnBEXUCeY= +github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20240521124852-5cbfe215a4e9 h1:hyMWJslDNfcKoCY3Skr4ehl7FvclxRhTW3yaA+0VkbY= +github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20240521124852-5cbfe215a4e9/go.mod h1:/vrbWSHc7YS1KSYhVOyyeucXW/e+1DkVBOgnBEXUCeY= github.com/nspcc-dev/neofs-api-go/v2 v2.14.1-0.20240305074711-35bc78d84dc4 h1:arN0Ypn+jawZpu1BND7TGRn44InAVIqKygndsx0y2no= github.com/nspcc-dev/neofs-api-go/v2 v2.14.1-0.20240305074711-35bc78d84dc4/go.mod h1:7Tm1NKEoUVVIUlkVwFrPh7GG5+Lmta2m7EGr4oVpBd8= -github.com/nspcc-dev/neofs-contract v0.19.2-0.20240506202632-e78d64ecdfc2 h1:VT9/vs92xth7c2PIxiGt1NIK77VK2kjSFqLMWmMY/pc= -github.com/nspcc-dev/neofs-contract v0.19.2-0.20240506202632-e78d64ecdfc2/go.mod h1:5nBFjgF2/SNpEty5oZzfTLck3YCSHLgnL4Tlv2xo54c= +github.com/nspcc-dev/neofs-contract v0.19.2-0.20240614095443-f16f0f4b0418 h1:NJU8SJtkgBCZXSVjNqlhLLO9yrqnd+S6KFhkeB5qZIw= +github.com/nspcc-dev/neofs-contract v0.19.2-0.20240614095443-f16f0f4b0418/go.mod h1:w9twCSz3qQv9E1bafpdGr6GtF+3ln3kkyfP9P7QVJ/M= github.com/nspcc-dev/neofs-sdk-go v1.0.0-rc.12 h1:mdxtlSU2I4oVZ/7AXTLKyz8uUPbDWikZw4DM8gvrddA= github.com/nspcc-dev/neofs-sdk-go v1.0.0-rc.12/go.mod h1:JdsEM1qgNukrWqgOBDChcYp8oY4XUzidcKaxY4hNJvQ= github.com/nspcc-dev/rfc6979 v0.2.1 h1:8wWxkamHWFmO790GsewSoKUSJjVnL1fmdRpokU/RgRM= diff --git a/pkg/innerring/contracts.go b/pkg/innerring/contracts.go index 4568a956ee..f8af6a3f99 100644 --- a/pkg/innerring/contracts.go +++ b/pkg/innerring/contracts.go @@ -9,8 +9,8 @@ import ( "github.com/nspcc-dev/neo-go/pkg/neorpc" "github.com/nspcc-dev/neo-go/pkg/util" + embeddedcontracts "github.com/nspcc-dev/neofs-contract/contracts" "github.com/nspcc-dev/neofs-contract/deploy" - embeddedcontracts "github.com/nspcc-dev/neofs-node/contracts" "github.com/nspcc-dev/neofs-node/pkg/morph/client" "github.com/nspcc-dev/neofs-node/pkg/util/glagolitsa" "github.com/spf13/cast" @@ -207,7 +207,7 @@ func parseContract(ctx *nnsContext, _logger *zap.Logger, cfg *viper.Viper, morph } func readEmbeddedContracts(deployPrm *deploy.Prm) error { - cs, err := embeddedcontracts.Read() + cs, err := embeddedcontracts.GetFS() if err != nil { return fmt.Errorf("read embedded contracts: %w", err) }